using System.Collections.Generic; using TinyJSON; using System.IO; using System; using System.Runtime.Serialization.Formatters.Binary; using System.Runtime.Serialization; public class DKSkill_Ability_DLowData { [Serializable] public class DataInfo { public uint Id; public int Type; public byte ActionType; public string BuffIcon; public uint Des; public byte ApplyTarget; public byte NonTarget; public byte TargetLimit; public byte Range; public byte ProjectilePosition; public byte ProjectileEffectStartPoint; public byte ProjectileEffectEndPoint; public string Projectile; public uint ProjectileSpeed; public int Value; public uint ValueAddPer; public byte ValuePerType; public byte ValueRregister; public uint AttributeValue; public uint SkillSuccess; public uint SkillSuccessPer; public byte SkillSuccessPerType; public uint SkillSuccessPerValue; public uint Sound; public string StartEffect; public uint LifeTime; public uint InvokeAbilityId; public uint PerLevelValueUp; public uint PerLevelValueAddPer; public uint PerLevelSkillSuccessUp; public uint PerLevelLifeTimeUp; } public static Dictionary DataInfoDic = new Dictionary (); static public void LoadLowData() { try { if (LowDataMgr.instance.bLoadByJson) { Variant jsonData = JsonLoader.instance.LoadJsonFile("DKSkill_Ability_D.json"); Variant data = jsonData["data"]; foreach( var item in data as ProxyArray) { DataInfo dataInfo = new DataInfo(); JSON.MakeInto(item, out dataInfo); DataInfoDic.Add(dataInfo.Id, dataInfo); } } else { IFormatter formatter = new BinaryFormatter(); Stream streamRead = JsonLoader.instance.LoadFileStream("DKSkill_Ability_D.bin"); DataInfoDic = (Dictionary)formatter.Deserialize(streamRead); streamRead.Close(); } } catch(System.Exception) { throw new System.Exception("DKSkill_Ability_D"); } } static public void Serialize() { if (DataInfoDic != null) { IFormatter formatter = new BinaryFormatter(); Stream streamWrite = JsonLoader.instance.SaveFileStream("DKSkill_Ability_D.bin"); formatter.Serialize(streamWrite, DataInfoDic); streamWrite.Close(); } } }