//TODO:道具信息(30%) public static void AddItemInfo(MapleBuffer buffer, CItem item) { //buffer.add<int> short Posin = (short)item.Position; if (Posin <= -1) { Posin *= -1; if (Posin > 100 && Posin < 1000) { Posin -= 100; } } buffer.add <byte>((byte)Posin); if (false)//宠物道具信息 { } else { if (item.Type == 0 || item.Type == 1)//0:佩戴,1装备 { //装备道具数据 CEquip equip = Common.Sql.MySqlFactory.GetFactory.Query <CEquip>().Where(a => a.InventoryitemsId == item.Id).FirstOrDefault(); if (equip == null) { AddBaseItemHeader(buffer, item); buffer.add <byte>(0); buffer.add <byte>(0); buffer.add <short>(0); buffer.add <short>(0); buffer.add <short>(0); buffer.add <short>(0); buffer.add <short>(0); buffer.add <short>(0); buffer.add <short>(0); buffer.add <short>(0); buffer.add <short>(0); buffer.add <short>(0); buffer.add <short>(0); buffer.add <short>(0); buffer.add <short>(0); buffer.add <short>(0); buffer.add <short>(0); buffer.add <string>(""); } else { AddBaseItemHeader(buffer, item); AddEquipItemInfo(buffer, equip); } } else { //其他道具数据 AddOtherItemInfo(buffer, item); } } }
//TODO:装备信息(50%) private static void AddEquipItemInfo(MapleBuffer buffer, CEquip equip) { buffer.add <byte>((byte)equip.UpgradeSlots); buffer.add <byte>((byte)equip.Level); buffer.add <short>((short)equip.Str); buffer.add <short>((short)equip.Dex); buffer.add <short>((short)equip.Int); buffer.add <short>((short)equip.Luk); buffer.add <short>((short)equip.Hp); buffer.add <short>((short)equip.Mp); buffer.add <short>((short)equip.Watk); buffer.add <short>((short)equip.Matk); buffer.add <short>((short)equip.Wdef); buffer.add <short>((short)equip.Mdef); buffer.add <short>((short)equip.Acc); buffer.add <short>((short)equip.Avoid); buffer.add <short>((short)equip.Hands); buffer.add <short>((short)equip.Speed); buffer.add <short>((short)equip.Jump); buffer.add <string>(equip.Owner); }