少年修仙传客户端代码仓库
client_Wu Xijin
2019-01-05 0a719b7f6867a2c17f76e6fee448c618e594de2e
3335 添加跨服boss配置
2个文件已添加
2个文件已修改
151 ■■■■■ 已修改文件
Core/GameEngine/Model/Config/CrossServerBossConfig.cs 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/Config/CrossServerBossConfig.cs.meta 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Core/GameEngine/Model/ConfigManager.cs 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
System/CrossServerBoss/CrossServerBossModel.cs 86 ●●●●● 补丁 | 查看 | 原始文档 | 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;
        }
    }
}