少年修仙传客户端代码仓库
client_Wu Xijin
2019-02-13 4dc88e1540d2fea7635eb2c376da8ec6c141e4be
Core/GameEngine/Model/Config/NPCConfig.cs
@@ -13,66 +13,66 @@
{
    public readonly int NPCID;
   public readonly int NPCType;
   public readonly string MODE;
   public readonly string charName;
   public readonly int NPCLV;
   public readonly float ModleHeight;
   public readonly float ModelRadius;
   public readonly float ModeProportion;
   public readonly Vector3 UIModeLOffset;
   public readonly float UIModeLProportion;
   public readonly Vector3 UIModelRotation;
   public readonly int CanDeadFly;
   public readonly int Country;
   public readonly int MinAtk;
   public readonly int MaxAtk;
   public readonly int Def;
   public readonly int Realm;
   public readonly int PoisionAtk;
   public readonly int FireAtk;
   public readonly int IceAtk;
   public readonly int PoisionDef;
   public readonly int IceDef;
   public readonly int AtkInterval;
   public readonly int Hit;
   public readonly int MissRate;
   public readonly int SuperHiteRate;
   public readonly int OrgSpeed;
   public readonly int MoveType;
   public readonly int AtkDist;
   public readonly int Skill1;
   public readonly int Skill2;
   public readonly int Skill3;
   public readonly int Skill4;
   public readonly int Skill5;
   public readonly int Skill6;
   public readonly int Skill7;
   public readonly int Skill8;
   public readonly int AtkType;
   public readonly int Sight;
   public readonly int MoveArea;
   public readonly int DHP;
   public readonly int MaxHPEx;
   public readonly int IsBoss;
   public readonly int SP;
   public readonly int AIType;
   public readonly int CanAttack;
   public readonly float weight;
   public readonly string HeadPortrait;
   public readonly int Show;
   public readonly int AtkFeedback;
   public readonly int hurtFeedback;
   public readonly int AutomaticFace;
   public readonly int Dig;
   public readonly int[] Sounds;
   public readonly int LifeBarCount;
   public readonly int NPCEffect;
   public readonly int NPCSpeakID;
   public readonly int ClientRealm;
   public readonly string Equips;
    public readonly int NPCType;
    public readonly string MODE;
    public readonly string charName;
    public readonly int NPCLV;
    public readonly float ModleHeight;
    public readonly float ModelRadius;
    public readonly float ModeProportion;
    public readonly Vector3 UIModeLOffset;
    public readonly float UIModeLProportion;
    public readonly Vector3 UIModelRotation;
    public readonly int CanDeadFly;
    public readonly int Country;
    public readonly int MinAtk;
    public readonly int MaxAtk;
    public readonly int Def;
    public readonly int Realm;
    public readonly int PoisionAtk;
    public readonly int FireAtk;
    public readonly int IceAtk;
    public readonly int PoisionDef;
    public readonly int IceDef;
    public readonly int AtkInterval;
    public readonly int Hit;
    public readonly int MissRate;
    public readonly int SuperHiteRate;
    public readonly int OrgSpeed;
    public readonly int MoveType;
    public readonly int AtkDist;
    public readonly int Skill1;
    public readonly int Skill2;
    public readonly int Skill3;
    public readonly int Skill4;
    public readonly int Skill5;
    public readonly int Skill6;
    public readonly int Skill7;
    public readonly int Skill8;
    public readonly int AtkType;
    public readonly int Sight;
    public readonly int MoveArea;
    public readonly int DHP;
    public readonly int MaxHPEx;
    public readonly int IsBoss;
    public readonly int SP;
    public readonly int AIType;
    public readonly int CanAttack;
    public readonly float weight;
    public readonly string HeadPortrait;
    public readonly int Show;
    public readonly int AtkFeedback;
    public readonly int hurtFeedback;
    public readonly int AutomaticFace;
    public readonly int Dig;
    public readonly int[] Sounds;
    public readonly int LifeBarCount;
    public readonly int NPCEffect;
    public readonly int NPCSpeakID;
    public readonly int ClientRealm;
    public readonly string Equips;
   public NPCConfig()
    public NPCConfig()
    {
    }
@@ -82,128 +82,128 @@
        {
            var tables = input.Split('\t');
            int.TryParse(tables[0],out NPCID);
            int.TryParse(tables[0], out NPCID);
         int.TryParse(tables[1],out NPCType);
            int.TryParse(tables[1], out NPCType);
         MODE = tables[2];
            MODE = tables[2];
         charName = tables[3];
            charName = tables[3];
         int.TryParse(tables[4],out NPCLV);
            int.TryParse(tables[4], out NPCLV);
         float.TryParse(tables[5],out ModleHeight);
            float.TryParse(tables[5], out ModleHeight);
         float.TryParse(tables[6],out ModelRadius);
            float.TryParse(tables[6], out ModelRadius);
         float.TryParse(tables[7],out ModeProportion);
            float.TryParse(tables[7], out ModeProportion);
         UIModeLOffset=tables[8].Vector3Parse();
            UIModeLOffset = tables[8].Vector3Parse();
         float.TryParse(tables[9],out UIModeLProportion);
            float.TryParse(tables[9], out UIModeLProportion);
         UIModelRotation=tables[10].Vector3Parse();
            UIModelRotation = tables[10].Vector3Parse();
         int.TryParse(tables[11],out CanDeadFly);
            int.TryParse(tables[11], out CanDeadFly);
         int.TryParse(tables[12],out Country);
            int.TryParse(tables[12], out Country);
         int.TryParse(tables[13],out MinAtk);
            int.TryParse(tables[13], out MinAtk);
         int.TryParse(tables[14],out MaxAtk);
            int.TryParse(tables[14], out MaxAtk);
         int.TryParse(tables[15],out Def);
            int.TryParse(tables[15], out Def);
         int.TryParse(tables[16],out Realm);
            int.TryParse(tables[16], out Realm);
         int.TryParse(tables[17],out PoisionAtk);
            int.TryParse(tables[17], out PoisionAtk);
         int.TryParse(tables[18],out FireAtk);
            int.TryParse(tables[18], out FireAtk);
         int.TryParse(tables[19],out IceAtk);
            int.TryParse(tables[19], out IceAtk);
         int.TryParse(tables[20],out PoisionDef);
            int.TryParse(tables[20], out PoisionDef);
         int.TryParse(tables[21],out IceDef);
            int.TryParse(tables[21], out IceDef);
         int.TryParse(tables[22],out AtkInterval);
            int.TryParse(tables[22], out AtkInterval);
         int.TryParse(tables[23],out Hit);
            int.TryParse(tables[23], out Hit);
         int.TryParse(tables[24],out MissRate);
            int.TryParse(tables[24], out MissRate);
         int.TryParse(tables[25],out SuperHiteRate);
            int.TryParse(tables[25], out SuperHiteRate);
         int.TryParse(tables[26],out OrgSpeed);
            int.TryParse(tables[26], out OrgSpeed);
         int.TryParse(tables[27],out MoveType);
            int.TryParse(tables[27], out MoveType);
         int.TryParse(tables[28],out AtkDist);
            int.TryParse(tables[28], out AtkDist);
         int.TryParse(tables[29],out Skill1);
            int.TryParse(tables[29], out Skill1);
         int.TryParse(tables[30],out Skill2);
            int.TryParse(tables[30], out Skill2);
         int.TryParse(tables[31],out Skill3);
            int.TryParse(tables[31], out Skill3);
         int.TryParse(tables[32],out Skill4);
            int.TryParse(tables[32], out Skill4);
         int.TryParse(tables[33],out Skill5);
            int.TryParse(tables[33], out Skill5);
         int.TryParse(tables[34],out Skill6);
            int.TryParse(tables[34], out Skill6);
         int.TryParse(tables[35],out Skill7);
            int.TryParse(tables[35], out Skill7);
         int.TryParse(tables[36],out Skill8);
            int.TryParse(tables[36], out Skill8);
         int.TryParse(tables[37],out AtkType);
            int.TryParse(tables[37], out AtkType);
         int.TryParse(tables[38],out Sight);
            int.TryParse(tables[38], out Sight);
         int.TryParse(tables[39],out MoveArea);
            int.TryParse(tables[39], out MoveArea);
         int.TryParse(tables[40],out DHP);
            int.TryParse(tables[40], out DHP);
         int.TryParse(tables[41],out MaxHPEx);
            int.TryParse(tables[41], out MaxHPEx);
         int.TryParse(tables[42],out IsBoss);
            int.TryParse(tables[42], out IsBoss);
         int.TryParse(tables[43],out SP);
            int.TryParse(tables[43], out SP);
         int.TryParse(tables[44],out AIType);
            int.TryParse(tables[44], out AIType);
         int.TryParse(tables[45],out CanAttack);
            int.TryParse(tables[45], out CanAttack);
         float.TryParse(tables[46],out weight);
            float.TryParse(tables[46], out weight);
         HeadPortrait = tables[47];
            HeadPortrait = tables[47];
         int.TryParse(tables[48],out Show);
            int.TryParse(tables[48], out Show);
         int.TryParse(tables[49],out AtkFeedback);
            int.TryParse(tables[49], out AtkFeedback);
         int.TryParse(tables[50],out hurtFeedback);
            int.TryParse(tables[50], out hurtFeedback);
         int.TryParse(tables[51],out AutomaticFace);
            int.TryParse(tables[51], out AutomaticFace);
         int.TryParse(tables[52],out Dig);
            int.TryParse(tables[52], out Dig);
         string[] SoundsStringArray = tables[53].Trim().Split(StringUtility.splitSeparator,StringSplitOptions.RemoveEmptyEntries);
         Sounds = new int[SoundsStringArray.Length];
         for (int i=0;i<SoundsStringArray.Length;i++)
         {
             int.TryParse(SoundsStringArray[i],out Sounds[i]);
         }
            string[] SoundsStringArray = tables[53].Trim().Split(StringUtility.splitSeparator, StringSplitOptions.RemoveEmptyEntries);
            Sounds = new int[SoundsStringArray.Length];
            for (int i = 0; i < SoundsStringArray.Length; i++)
            {
                int.TryParse(SoundsStringArray[i], out Sounds[i]);
            }
         int.TryParse(tables[54],out LifeBarCount);
            int.TryParse(tables[54], out LifeBarCount);
         int.TryParse(tables[55],out NPCEffect);
            int.TryParse(tables[55], out NPCEffect);
         int.TryParse(tables[56],out NPCSpeakID);
            int.TryParse(tables[56], out NPCSpeakID);
         int.TryParse(tables[57],out ClientRealm);
            int.TryParse(tables[57], out ClientRealm);
         Equips = tables[58];
            Equips = tables[58];
        }
        catch (Exception ex)
        {
@@ -213,13 +213,13 @@
    static Dictionary<string, NPCConfig> configs = new Dictionary<string, NPCConfig>();
    public static NPCConfig Get(string id)
    {
      if (!inited)
    {
        if (!inited)
        {
            Debug.Log("NPCConfig 还未完成初始化。");
            return null;
        }
        if (configs.ContainsKey(id))
        {
            return configs[id];
@@ -235,7 +235,7 @@
        return config;
    }
   public static NPCConfig Get(int id)
    public static NPCConfig Get(int id)
    {
        return Get(id.ToString());
    }
@@ -262,32 +262,32 @@
        return values;
    }
   public static bool Has(string id)
    public static bool Has(string id)
    {
        return configs.ContainsKey(id) || rawDatas.ContainsKey(id);
    }
   public static bool Has(int id)
    public static bool Has(int id)
    {
        return Has(id.ToString());
    }
   public static bool inited { get; private set; }
    public static bool inited { get; private set; }
    protected static Dictionary<string, string> rawDatas = new Dictionary<string, string>();
    public static void Init(bool sync=false)
    public static void Init(bool sync = false)
    {
       inited = false;
      var path = string.Empty;
        inited = false;
        var path = string.Empty;
        if (AssetSource.refdataFromEditor)
        {
            path = ResourcesPath.CONFIG_FODLER +"/NPC.txt";
            path = ResourcesPath.CONFIG_FODLER + "/NPC.txt";
        }
        else
        {
            path = AssetVersionUtility.GetAssetFilePath("config/NPC.txt");
        }
      var tempConfig = new NPCConfig();
        var tempConfig = new NPCConfig();
        var preParse = tempConfig is IConfigPostProcess;
        if (sync)
@@ -305,38 +305,42 @@
                if (preParse)
                {
                    configs[id] = new NPCConfig(line);
                    var config = new NPCConfig(line);
                    configs[id] = config;
                    (config as IConfigPostProcess).OnConfigParseCompleted();
                }
                else
                {
                    rawDatas[id] = line;
                }
            }
         inited = true;
            inited = true;
        }
        else
        {
            ThreadPool.QueueUserWorkItem((object _object) =>
            {
                var lines = File.ReadAllLines(path);
            if (!preParse)
            {
               rawDatas = new Dictionary<string, string>(lines.Length - 3);
            }
                if (!preParse)
                {
                    rawDatas = new Dictionary<string, string>(lines.Length - 3);
                }
                for (int i = 3; i < lines.Length; i++)
                {
                    var line = lines[i];
                    var index = line.IndexOf("\t");
                    var id = line.Substring(0, index);
               if (preParse)
               {
                  configs[id] = new NPCConfig(line);
               }
               else
               {
                  rawDatas[id] = line;
               }
                    if (preParse)
                    {
                        var config = new NPCConfig(line);
                        configs[id] = config;
                        (config as IConfigPostProcess).OnConfigParseCompleted();
                    }
                    else
                    {
                        rawDatas[id] = line;
                    }
                }
                inited = true;