public override void SetData(byte[] buf, int offset) { Type = buf[offset] & 0xff; Index = buf[offset + 1] & 0xff; ResMagicChain magicChain = Context.LibData.GetMagicChain(buf[offset + 0x2f] & 0xff); if (magicChain != null) { magicChain.LearnFromChain(buf[offset + 2] & 0xff); MagicChain = magicChain; } AddBuff((CombatBuff)(buf[offset + 3] & 0xff)); AttackBuff = (CombatBuff)(buf[offset + 4] & 0xff); BuffLastRound = buf[offset + 0x17] & 0xff; Name = buf.GetString(offset + 6); Level = buf[offset + 0x12] & 0xff; MaxHP = buf.Get2BytesUInt(offset + 0x18); HP = buf.Get2BytesUInt(offset + 0x1a); MaxMP = buf.Get2BytesUInt(offset + 0x1c); MP = buf.Get2BytesUInt(offset + 0x1e); Attack = buf.Get2BytesUInt(offset + 0x20); Defend = buf.Get2BytesUInt(offset + 0x22); Speed = buf[offset + 0x13] & 0xff; Lingli = buf[offset + 0x14] & 0xff; Luck = buf[offset + 0x16] & 0xff; MonsterIQ = buf[offset + 0x15] & 0xff; Money = buf.Get2BytesUInt(offset + 0x24); EXP = buf.Get2BytesUInt(offset + 0x26); _carryGoods[0] = (int)buf[offset + 0x28] & 0xff; _carryGoods[1] = (int)buf[offset + 0x29] & 0xff; _carryGoods[2] = (int)buf[offset + 0x2a] & 0xff; _dropGoods[0] = (int)buf[offset + 0x2b] & 0xff; _dropGoods[1] = (int)buf[offset + 0x2c] & 0xff; _dropGoods[2] = (int)buf[offset + 0x2d] & 0xff; FightingSprite = new FightingSprite(Context, true, (int)buf[offset + 0x2e] & 0xff); }