| //--------------------------------------------------------  | 
| //    [Author]:           YYL  | 
| //    [  Date ]:           Monday, August 4, 2025  | 
| //--------------------------------------------------------  | 
|   | 
| using System.Collections.Generic;  | 
| using System;  | 
| using UnityEngine;  | 
| using LitJson;  | 
|   | 
| public partial class NPCConfig : ConfigBase<int, NPCConfig>  | 
| {  | 
|     static NPCConfig()  | 
|     {  | 
|         dic.Clear();  | 
|     }  | 
|   | 
|     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);  | 
|         }  | 
|     }  | 
| }  |