Core/GameEngine/Model/Config/SceneReplaceConfig.cs
New file @@ -0,0 +1,47 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Friday, January 18, 2019 //-------------------------------------------------------- using UnityEngine; using System; namespace TableConfig { public partial class SceneReplaceConfig : ConfigBase { public int id { get ; private set ; } public string objectPath { get ; private set; } public string folder { get ; private set; } public string resourceName { get ; private set; } public override string getKey() { return id.ToString(); } public override void Parse() { try { id=IsNumeric(rawContents[0]) ? int.Parse(rawContents[0]):0; objectPath = rawContents[1].Trim(); folder = rawContents[2].Trim(); resourceName = rawContents[3].Trim(); } catch (Exception ex) { DebugEx.Log(ex); } } } } Core/GameEngine/Model/Config/SceneReplaceConfig.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 16f2983a4c91c6244ad11b4a75876f1f timeCreated: 1547778246 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Core/GameEngine/Model/ConfigManager.cs
@@ -224,6 +224,8 @@ AddAsyncTask<FashionDressCabinetConfig>(); AddAsyncTask<FashionDressConfig>(); AddAsyncTask<WeekPartyPointConfig>(); AddAsyncTask<SceneReplaceConfig>(); while (!AllCompleted()) { var completedCount = 0; Core/GameEngine/Model/Player/PlayerDatas.cs
@@ -599,6 +599,8 @@ var sendInfo = new CA108_tagCMRefreshMainServerRole(); GameNetSystem.Instance.SendInfo(sendInfo); baseData.MapID = baseData.mainServerMapIdRecord; baseData.dungeonLineId = 0; DTCA127_tagMCStartChangeMap.LineID = 0; ModelCenter.Instance.GetModel<DungeonModel>().ResetBufData(); StageManager.Instance.Load<DungeonStage>(baseData.MapID, GameNetSystem.SocketType.CrossSever, true); extersion.pkState = 0; Core/NetworkPackage/DTCFile/ServerPack/H04_Scene/DTC0401_tagPlayerMapInit.cs
@@ -38,6 +38,7 @@ _hero.OnPathFindStop += MapTransferUtility.Instance.OnHeroStopPathFind; if (PreFightMission.Instance.IsFinished()) { _hero.Pos = new Vector3((vNetData.PosX - GA_Hero.MapOffset.x) * .5f, _hero.Pos.y, (vNetData.PosY - GA_Hero.MapOffset.z) * .5f); _hero.InitBornPos(vNetData.PosX, vNetData.PosY); } } Core/NetworkPackage/DTCFile/ServerPack/HA1_Sys/DTCA127_tagMCStartChangeMap.cs
@@ -37,10 +37,11 @@ { return Config.Instance.Get<MapResourcesConfig>(_id); } Debug.LogFormat("无法获取当前地图资源数据, MapID: {0},LineID: {1}", PlayerDatas.Instance.baseData.MapID, PlayerDatas.Instance.baseData.dungeonLineId); return null; else { LineID = 0; return GetMapResourcesConfig(_realMapDataID, LineID); } } public override void Done(GameNetPackBasic vNetPack) Core/NetworkPackage/ServerPack/HC0_CrossRealm/HC003_tagGCCrossRealmPKOverInfo.cs
@@ -1,37 +1,40 @@ using UnityEngine; using System.Collections; // C0 03 跨服PK战斗结果 #tagGCCrossRealmPKOverInfo public class HC003_tagGCCrossRealmPKOverInfo : GameNetPackBasic { public string TimeStr; // 结算时间,格式 yyyy-MM-dd HH:mm:ss public byte OverType; // 0-正常,1-有人离线 public uint WinnerID; // 胜方ID public byte RoundCount; // PK回合数 public uint[] RoundWinnerID; // 回合获胜ID列表 public ushort AddScore; // 本场加分 public ushort Score; // 当前积分 public byte DanLV; // 当前段位 public ushort CWinCnt; // 当前连胜数 public byte TagNameLen; public string TagName; public HC003_tagGCCrossRealmPKOverInfo () { _cmd = (ushort)0xC003; } public override void ReadFromBytes (byte[] vBytes) { TransBytes (out TimeStr, vBytes, NetDataType.Chars, 19); TransBytes (out OverType, vBytes, NetDataType.BYTE); TransBytes (out WinnerID, vBytes, NetDataType.DWORD); TransBytes (out RoundCount, vBytes, NetDataType.BYTE); TransBytes (out RoundWinnerID, vBytes, NetDataType.DWORD, RoundCount); TransBytes (out AddScore, vBytes, NetDataType.WORD); TransBytes (out Score, vBytes, NetDataType.WORD); TransBytes (out DanLV, vBytes, NetDataType.BYTE); TransBytes (out CWinCnt, vBytes, NetDataType.WORD); TransBytes (out TagNameLen, vBytes, NetDataType.BYTE); TransBytes (out TagName, vBytes, NetDataType.Chars, TagNameLen); } } using UnityEngine; using System.Collections; // C0 03 跨服PK战斗结果 #tagGCCrossRealmPKOverInfo public class HC003_tagGCCrossRealmPKOverInfo : GameNetPackBasic { public string TimeStr; // 结算时间,格式 yyyy-MM-dd HH:mm:ss public byte OverType; // 0-正常,1-有人离线 public uint WinnerID; // 胜方ID public byte RoundCount; // PK回合数 public uint[] RoundWinnerID; // 回合获胜ID列表 public ushort AddScore; // 本场加分 public uint Score; // 当前积分 public byte DanLV; // 当前段位 public ushort CWinCnt; // 当前连胜数 public byte TagNameLen; public string TagName; public HC003_tagGCCrossRealmPKOverInfo() { _cmd = (ushort)0xC003; } public override void ReadFromBytes(byte[] vBytes) { TransBytes(out TimeStr, vBytes, NetDataType.Chars, 19); TransBytes(out OverType, vBytes, NetDataType.BYTE); TransBytes(out WinnerID, vBytes, NetDataType.DWORD); TransBytes(out RoundCount, vBytes, NetDataType.BYTE); TransBytes(out RoundWinnerID, vBytes, NetDataType.DWORD, RoundCount); TransBytes(out AddScore, vBytes, NetDataType.WORD); TransBytes(out Score, vBytes, NetDataType.DWORD); TransBytes(out DanLV, vBytes, NetDataType.BYTE); TransBytes(out CWinCnt, vBytes, NetDataType.WORD); TransBytes(out TagNameLen, vBytes, NetDataType.BYTE); TransBytes(out TagName, vBytes, NetDataType.Chars, TagNameLen); } } Core/ResModule/SceneLoader.cs
New file @@ -0,0 +1,33 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; public class SceneLoader { public static Texture2D LoadTexture(string folder, string name) { Texture2D texture2D = null; if (AssetSource.sceneFromEditor) { #if UNITY_EDITOR var path = StringUtility.Contact(ResourcesPath.ResourcesOutAssetPath, "Scene/", folder, "/", name, ".png"); texture2D = UnityEditor.AssetDatabase.LoadAssetAtPath<Texture2D>(path); #endif } else { var assetInfo = new AssetInfo(StringUtility.Contact("maps/", folder), name); texture2D = AssetBundleUtility.Instance.Sync_LoadAsset(assetInfo) as Texture2D; } if (texture2D == null) { DebugEx.LogErrorFormat("SceneLoader.LoadTexture() => 加载不到资源: {0}.", name); } return texture2D; } } Core/ResModule/SceneLoader.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 9965235d149da744dbefdf8340b2b351 timeCreated: 1547718608 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Fight/Stage/Dungeon/DungeonStage.cs
@@ -401,4 +401,31 @@ break; } } void SceneResourcesReplace() { switch (PlayerDatas.Instance.baseData.MapID) { case 10010: SceneResourceReplace10010(); break; default: break; } } private void SceneResourceReplace10010() { var config = Config.Instance.Get<SceneReplaceConfig>(100101); if (config != null) { var groundTexture = SceneLoader.LoadTexture(config.folder, config.resourceName); var @object = GameObject.Find(config.objectPath); var renderer = @object.GetComponent<Renderer>(); renderer.material.SetTexture("_MainTex", groundTexture); } } } System/AssetVersion/AssetVersionUtility.cs
@@ -185,6 +185,10 @@ { var dataMapId = 0; var mapConfig = Config.Instance.Get<MapConfig>(mapId); if (mapConfig == null) { return false; } if (mapConfig.MapFBType != 0) { @@ -193,6 +197,7 @@ } else { lineId = 0; dataMapId = mapId; } System/CrossServerOneVsOne/CrossServerOneVsOnePkResult.cs
@@ -38,7 +38,7 @@ this.RoundCount = pKOverInfo.RoundCount; this.RoundWinnerIDs = pKOverInfo.RoundWinnerID; this.AddScore = pKOverInfo.AddScore; this.CurScore = pKOverInfo.Score; this.CurScore = (int)pKOverInfo.Score; this.DanLV = pKOverInfo.DanLV; this.WinStreak = pKOverInfo.CWinCnt; this.VsPlayerName = pKOverInfo.TagName; System/GatheringSoul/GatheringSoulModel.cs
@@ -1643,37 +1643,27 @@ } } } GatherSoulItem coreItem; if (TryGetItem(coreHole, out coreItem) && SatisfyLevelUp(coreItem, out error)) levelUpRedpointHole = -1; var cost = 0; for (int i = 0; i < count; i++) { levelUpRedpointHole = coreHole; levelUpRedpoint.state = RedPointState.Simple; } else { levelUpRedpointHole = -1; var cost = 0; for (int i = 0; i < count; i++) GatherSoulItem holeItem; if (TryGetItem(i, out holeItem)) { GatherSoulItem holeItem; if (TryGetItem(i, out holeItem)) if (SatisfyLevelUp(holeItem, out error)) { if (SatisfyLevelUp(holeItem, out error)) if (RequireLevelUpCost(holeItem) < cost || cost == 0) { if (RequireLevelUpCost(holeItem) < cost || cost == 0) { cost = RequireLevelUpCost(holeItem); levelUpRedpointHole = i; } cost = RequireLevelUpCost(holeItem); levelUpRedpointHole = i; } } } if (levelUpRedpointHole != -1) { levelUpRedpoint.state = RedPointState.Simple; } } if (levelUpRedpointHole != -1) { levelUpRedpoint.state = RedPointState.Simple; } } #endregion