| //-------------------------------------------------------- | 
| //    [Author]:           YYL | 
| //    [  Date ]:           Friday, June 27, 2025 | 
| //-------------------------------------------------------- | 
|   | 
| using System.Collections.Generic; | 
| using System.IO; | 
| using System.Threading; | 
| using System; | 
| using UnityEngine; | 
| using LitJson; | 
|   | 
| public partial class NPCConfig : ConfigBase<int, NPCConfig> | 
| { | 
|   | 
|     public int NPCID; | 
|     public int NPCType; | 
|     public string MODE; | 
|     public string charName; | 
|     public int NPCLV; | 
|     public float ModleHeight; | 
|     public float ModelRadius; | 
|     public float ModeProportion; | 
|     public Vector3 UIModeLOffset; | 
|     public float UIModeLProportion; | 
|     public Vector3 UIModelRotation; | 
|     public int CanDeadFly; | 
|     public int Country; | 
|     public int MinAtk; | 
|     public int MaxAtk; | 
|     public int Def; | 
|     public int Realm; | 
|     public int PoisionAtk; | 
|     public int FireAtk; | 
|     public int IceAtk; | 
|     public int PoisionDef; | 
|     public int IceDef; | 
|     public int ThunderDef; | 
|     public int AtkInterval; | 
|     public int Hit; | 
|     public int MissRate; | 
|     public int SuperHiteRate; | 
|     public int OrgSpeed; | 
|     public int MoveType; | 
|     public int AtkDist; | 
|     public int Skill1; | 
|     public int Skill2; | 
|     public int Skill3; | 
|     public int Skill4; | 
|     public int Skill5; | 
|     public int Skill6; | 
|     public int Skill7; | 
|     public int Skill8; | 
|     public int AtkType; | 
|     public int Sight; | 
|     public int MoveArea; | 
|     public int DHP; | 
|     public int MaxHPEx; | 
|     public int IsBoss; | 
|     public int SP; | 
|     public int AIType; | 
|     public int CanAttack; | 
|     public float weight; | 
|     public string HeadPortrait; | 
|     public int Show; | 
|     public int AtkFeedback; | 
|     public int hurtFeedback; | 
|     public int AutomaticFace; | 
|     public int Dig; | 
|     public int[] Sounds; | 
|     public int LifeBarCount; | 
|     public int NPCEffect; | 
|     public int NPCSpeakID; | 
|     public string Equips; | 
|   | 
|     public override int LoadKey(string _key) | 
|     { | 
|         int key = GetKey(_key); | 
|         return key; | 
|     } | 
|   | 
|     public override void LoadConfig(string input) | 
|     { | 
|         try { | 
|         string[] tables = input.Split('\t'); | 
|         int.TryParse(tables[0],out NPCID);  | 
|   | 
|             int.TryParse(tables[1],out NPCType);  | 
|   | 
|             MODE = tables[2]; | 
|   | 
|             charName = tables[3]; | 
|   | 
|             int.TryParse(tables[4],out NPCLV);  | 
|   | 
|             float.TryParse(tables[5],out ModleHeight);  | 
|   | 
|             float.TryParse(tables[6],out ModelRadius);  | 
|   | 
|             float.TryParse(tables[7],out ModeProportion);  | 
|   | 
|             UIModeLOffset=tables[8].Vector3Parse(); | 
|   | 
|             float.TryParse(tables[9],out UIModeLProportion);  | 
|   | 
|             UIModelRotation=tables[10].Vector3Parse(); | 
|   | 
|             int.TryParse(tables[11],out CanDeadFly);  | 
|   | 
|             int.TryParse(tables[12],out Country);  | 
|   | 
|             int.TryParse(tables[13],out MinAtk);  | 
|   | 
|             int.TryParse(tables[14],out MaxAtk);  | 
|   | 
|             int.TryParse(tables[15],out Def);  | 
|   | 
|             int.TryParse(tables[16],out Realm);  | 
|   | 
|             int.TryParse(tables[17],out PoisionAtk);  | 
|   | 
|             int.TryParse(tables[18],out FireAtk);  | 
|   | 
|             int.TryParse(tables[19],out IceAtk);  | 
|   | 
|             int.TryParse(tables[20],out PoisionDef);  | 
|   | 
|             int.TryParse(tables[21],out IceDef);  | 
|   | 
|             int.TryParse(tables[22],out ThunderDef);  | 
|   | 
|             int.TryParse(tables[23],out AtkInterval);  | 
|   | 
|             int.TryParse(tables[24],out Hit);  | 
|   | 
|             int.TryParse(tables[25],out MissRate);  | 
|   | 
|             int.TryParse(tables[26],out SuperHiteRate);  | 
|   | 
|             int.TryParse(tables[27],out OrgSpeed);  | 
|   | 
|             int.TryParse(tables[28],out MoveType);  | 
|   | 
|             int.TryParse(tables[29],out AtkDist);  | 
|   | 
|             int.TryParse(tables[30],out Skill1);  | 
|   | 
|             int.TryParse(tables[31],out Skill2);  | 
|   | 
|             int.TryParse(tables[32],out Skill3);  | 
|   | 
|             int.TryParse(tables[33],out Skill4);  | 
|   | 
|             int.TryParse(tables[34],out Skill5);  | 
|   | 
|             int.TryParse(tables[35],out Skill6);  | 
|   | 
|             int.TryParse(tables[36],out Skill7);  | 
|   | 
|             int.TryParse(tables[37],out Skill8);  | 
|   | 
|             int.TryParse(tables[38],out AtkType);  | 
|   | 
|             int.TryParse(tables[39],out Sight);  | 
|   | 
|             int.TryParse(tables[40],out MoveArea);  | 
|   | 
|             int.TryParse(tables[41],out DHP);  | 
|   | 
|             int.TryParse(tables[42],out MaxHPEx);  | 
|   | 
|             int.TryParse(tables[43],out IsBoss);  | 
|   | 
|             int.TryParse(tables[44],out SP);  | 
|   | 
|             int.TryParse(tables[45],out AIType);  | 
|   | 
|             int.TryParse(tables[46],out CanAttack);  | 
|   | 
|             float.TryParse(tables[47],out weight);  | 
|   | 
|             HeadPortrait = tables[48]; | 
|   | 
|             int.TryParse(tables[49],out Show);  | 
|   | 
|             int.TryParse(tables[50],out AtkFeedback);  | 
|   | 
|             int.TryParse(tables[51],out hurtFeedback);  | 
|   | 
|             int.TryParse(tables[52],out AutomaticFace);  | 
|   | 
|             int.TryParse(tables[53],out Dig);  | 
|   | 
|             if (tables[54].Contains("[")) | 
|             { | 
|                 Sounds = JsonMapper.ToObject<int[]>(tables[54]); | 
|             } | 
|             else | 
|             { | 
|                 string[] SoundsStringArray = tables[54].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[55],out LifeBarCount);  | 
|   | 
|             int.TryParse(tables[56],out NPCEffect);  | 
|   | 
|             int.TryParse(tables[57],out NPCSpeakID);  | 
|   | 
|             Equips = tables[58]; | 
|         } | 
|         catch (Exception exception) | 
|         { | 
|             Debug.LogError(exception); | 
|         } | 
|     } | 
| } |