public CharData(Player PlayerClass, string Account, string Character) { int Count = 0; this.PlayerClass = PlayerClass; FileName = "Accounts\\" + Account + "\\" + Character; if (!File.Exists(FileName)) return; byte[] Bytes = File.ReadAllBytes(FileName); Stream Stream = new MemoryStream(Bytes); BinaryReader Reader = new BinaryReader(Stream); #region CharData { Name = Reader.ReadString( ); Gender = (CharGender)Reader.ReadByte( ); Nation = (CharNation)Reader.ReadByte( ); Job = (CharJob)Reader.ReadByte( ); EXP = Reader.ReadUInt64( ); Level = Reader.ReadByte( ); Fame = Reader.ReadUInt32( ); NationRate = Reader.ReadUInt32( ); Face = Reader.ReadByte( ); Hair = Reader.ReadByte( ); Map = Reader.ReadUInt16( ); Coord = Reader.ReadPoint( ); CurHP = Reader.ReadUInt32( ); CurSP = Reader.ReadUInt32(); CurMP = Reader.ReadUInt32( ); MaxHP = Reader.ReadUInt32( ); MaxSP = Reader.ReadUInt32(); MaxMP = Reader.ReadUInt32( ); Power = Reader.ReadUInt16(); PhysicalDef = Reader.ReadUInt16( ); MagicalDef = Reader.ReadUInt16( ); AbbillityMin = Reader.ReadUInt16( ); AbbillityMax = Reader.ReadUInt16( ); Vitality = Reader.ReadUInt16( ); Sympathy = Reader.ReadUInt16( ); Stamina = Reader.ReadUInt16(); Intelligence = Reader.ReadUInt16( ); Dexterity = Reader.ReadUInt16( ); AbilltyPoint = Reader.ReadUInt16( ); Charisma = Reader.ReadByte( ); Luck = Reader.ReadByte( ); LeftSP = Reader.ReadUInt16(); TotalSP = Reader.ReadUInt16(); WonPVPs = Reader.ReadUInt32( ); TotalPVPs = Reader.ReadUInt32( ); Gold = Reader.ReadUInt32( ); } #endregion #region Skills { Count = Reader.ReadInt32( ); for (int i = 0; i < Count; i++) { Skills.Add(Reader.ReadUInt16( )); } } #endregion #region ClothesItems { Count = Reader.ReadInt32( ); for (int i = 0; i < Count; i++) { ClothesItems.Add(new CharItem( ) { Model = Reader.ReadUInt16( ), Slot = Reader.ReadInt32( ), Durabillty = Reader.ReadUInt16( ), RemainTime = Reader.ReadUInt16( ) }); } } #endregion #region GeneralItems { Count = Reader.ReadInt32( ); for (int i = 0; i < Count; i++) { GeneralItems.Add(new CharItem( ) { Model = Reader.ReadUInt16( ), Slot = Reader.ReadInt32( ), Durabillty = Reader.ReadUInt16( ), RemainTime = Reader.ReadUInt16( ) }); } } #endregion #region RidingItems { Count = Reader.ReadInt32( ); for (int i = 0; i < Count; i++) { RidingItems.Add(new CharItem( ) { Model = Reader.ReadUInt16( ), Slot = Reader.ReadInt32( ), Durabillty = Reader.ReadUInt16( ), RemainTime = Reader.ReadUInt16( ) }); } } #endregion #region InitItems { uint ID = 0; foreach (CharItem x in ClothesItems) { x.ID = ++ID; } foreach (CharItem x in GeneralItems) { x.ID = ++ID; } } #endregion Reader.Close( ); }
public void CreateCharData() { Stream Stream = File.Open(FileName, FileMode.OpenOrCreate); BinaryWriter Writer = new BinaryWriter(Stream); #region CharData { Writer.Write(Name); Writer.Write((byte)Gender); Writer.Write((byte)Nation); Job = (byte)Nation == 1 ? (CharJob)1 : (CharJob)0; Writer.Write((byte)Job); Writer.Write(EXP); Writer.Write((byte)1);//Level Writer.Write(Fame); Writer.Write((uint)0);//NationRate Writer.Write(Face); Writer.Write(Hair); Map = (byte)Nation == 1 ? (ushort)7 : (ushort)5; Writer.Write(Map); _Coord = (byte)Nation == 1 ? new Point(221, 222) : new Point(130, 121); Writer.Write(_Coord);//coord Writer.Write((uint)150);//CurHP Writer.Write((uint)150);//CurSP Writer.Write((uint)150);//CurMP Writer.Write((uint)150);//MaxHP Writer.Write((uint)150);//MaxSP Writer.Write((uint)150);//MaxMP Writer.Write((ushort)13);//Power PhysicalDef = Nation == CharNation.Millena ? (ushort)5 : (ushort)2; MagicalDef = Nation == CharNation.Millena ? (ushort)2 : (ushort)5; Writer.Write(PhysicalDef);//PhysicalDef Writer.Write(MagicalDef);//MagicalDef Writer.Write((ushort)10);//AbbillityMin Writer.Write((ushort)12);//AbbillityMax Writer.Write((ushort)9);//Vitality Writer.Write((ushort)13);//Sympathy Writer.Write((ushort)12);//Stamina Writer.Write((ushort)12);//Intelligence Writer.Write((ushort)13);//Dexterity Writer.Write((ushort)0);//AbilltyPoint Writer.Write((byte)0);//Charisma Writer.Write(Luck); Writer.Write(LeftSP); Writer.Write(TotalSP); Writer.Write(WonPVPs); Writer.Write(TotalPVPs); Writer.Write(Gold); } #endregion #region Skills { Writer.Write(Skills.Count); foreach (ushort ID in Skills) { Writer.Write(ID); } } #endregion #region ClothesItems { Writer.Write(ClothesItems.Count); foreach (CharItem x in ClothesItems) { Writer.Write(x.Model); Writer.Write(x.Slot); Writer.Write(x.Durabillty); Writer.Write(x.RemainTime); } } #endregion #region GeneralItems { Writer.Write(GeneralItems.Count); foreach (CharItem x in GeneralItems) { Writer.Write(x.Model); Writer.Write(x.Slot); Writer.Write(x.Durabillty); Writer.Write(x.RemainTime); } } #endregion #region RidingItems { Writer.Write(RidingItems.Count); foreach (CharItem x in RidingItems) { Writer.Write(x.Model); Writer.Write(x.Slot); Writer.Write(x.Durabillty); Writer.Write(x.RemainTime); } } #endregion Writer.Close(); }