| Core/GameEngine/Model/Config/CrossServerBossConfig.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Core/GameEngine/Model/Config/CrossServerBossConfig.cs.meta | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| Core/GameEngine/Model/ConfigManager.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| System/CrossServerBoss/CrossServerBossModel.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
Core/GameEngine/Model/Config/CrossServerBossConfig.cs
New file @@ -0,0 +1,52 @@ //-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Saturday, January 05, 2019 //-------------------------------------------------------- using UnityEngine; using System; namespace TableConfig { public partial class CrossServerBossConfig : ConfigBase { public int NPCID { get ; private set ; } public int MonsterType { get ; private set ; } public int[] RareItemID; public string PortraitID { get ; private set; } public override string getKey() { return NPCID.ToString(); } public override void Parse() { try { NPCID=IsNumeric(rawContents[0]) ? int.Parse(rawContents[0]):0; MonsterType=IsNumeric(rawContents[1]) ? int.Parse(rawContents[1]):0; string[] RareItemIDStringArray = rawContents[2].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries); RareItemID = new int[RareItemIDStringArray.Length]; for (int i=0;i<RareItemIDStringArray.Length;i++) { int.TryParse(RareItemIDStringArray[i],out RareItemID[i]); } PortraitID = rawContents[3].Trim(); } catch (Exception ex) { DebugEx.Log(ex); } } } } Core/GameEngine/Model/Config/CrossServerBossConfig.cs.meta
New file @@ -0,0 +1,12 @@ fileFormatVersion: 2 guid: 25f738f8dea153a42a5f05b4c7748da8 timeCreated: 1546666991 licenseType: Pro MonoImporter: serializedVersion: 2 defaultReferences: [] executionOrder: 0 icon: {instanceID: 0} userData: assetBundleName: assetBundleVariant: Core/GameEngine/Model/ConfigManager.cs
@@ -219,6 +219,7 @@ AddAsyncTask<GatherSoulComposeConfig>(); AddAsyncTask<KingTreasureConfig>(); AddAsyncTask<KingTreasureItemConfig>(); AddAsyncTask<CrossServerBossConfig>(); while (!AllCompleted()) { System/CrossServerBoss/CrossServerBossModel.cs
@@ -1,12 +1,22 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; using TableConfig; namespace Snxxz.UI { [XLua.LuaCallCSharp] public class CrossServerBossModel : Model { public const int DATA_MAPID = 0; public const int REDPOINT = 77002; List<int> sortedBossIds = new List<int>(); Dictionary<int, CrossServerBossData> bosses = new Dictionary<int, CrossServerBossData>(); public int bigBoxNpcId = 0; public int smallBoxNpcId = 0; public List<int> eliteMonsters = new List<int>(); public override void Init() { @@ -17,7 +27,83 @@ } public bool IsAtCrossServerBossMap() { return PlayerDatas.Instance.baseData.ExAttr5 == 1 && PlayerDatas.Instance.baseData.MapID == DATA_MAPID; } public void RequestEnter() { } public bool CanEnter(out int error) { error = 0; return true; } public void ProcessEnterError(int error) { } public void RequestExit() { } private void ParseConfig() { var configs = Config.Instance.GetAllValues<CrossServerBossConfig>(); foreach (var config in configs) { switch (config.MonsterType) { case 1: bigBoxNpcId = config.NPCID; break; case 2: smallBoxNpcId = config.NPCID; break; case 3: eliteMonsters.Add(config.NPCID); break; case 4: bosses[config.NPCID] = new CrossServerBossData(config.NPCID); sortedBossIds.Add(config.NPCID); break; } } sortedBossIds.Sort(CrossServerBossData.LevelCompare); } } public class CrossServerBossData { public int id { get; private set; } public bool isUnLocked { get { return true; } } public CrossServerBossData(int _id) { this.id = _id; } public static int LevelCompare(int a, int b) { var configA = Config.Instance.Get<NPCConfig>(a); var configB = Config.Instance.Get<NPCConfig>(b); return configA.NPCLV < configB.NPCLV ? -1 : 1; } } }