public void Deserialize(BinaryReader binaryReader) { Type = binaryReader.ReadInt32(); Index = binaryReader.ReadInt32(); _imgHead = Context.LibData.GetImage(1, Index); LevelupChain = Context.LibData.GetLevelupChain(Index); SetWalkingSprite(new WalkingSprite(Context, Type, binaryReader.ReadInt32())); FightingSprite = new FightingSprite(Context, false, Index); Direction = (Direction)binaryReader.ReadInt32(); SetStep(binaryReader.ReadInt32()); SetPosInMap(binaryReader.ReadInt32(), binaryReader.ReadInt32()); var hasMagicChain = binaryReader.ReadBoolean(); if (hasMagicChain) { MagicChain = new ResMagicChain(Context); MagicChain.Deserialize(binaryReader); } Name = binaryReader.ReadString(); Level = binaryReader.ReadInt32(); MaxHP = binaryReader.ReadInt32(); HP = binaryReader.ReadInt32(); MaxMP = binaryReader.ReadInt32(); MP = binaryReader.ReadInt32(); Attack = binaryReader.ReadInt32(); Defend = binaryReader.ReadInt32(); Speed = binaryReader.ReadInt32(); Lingli = binaryReader.ReadInt32(); Luck = binaryReader.ReadInt32(); CurrentExp = binaryReader.ReadInt32(); for (int i = 0; i < 8; i++) { var type = binaryReader.ReadInt32(); var index = binaryReader.ReadInt32(); if (type != 0 && index != 0) { Equipments[i] = Context.LibData.GetGoods(type, index) as GoodsEquipment; } } }