public void SendItemUpdate(Item.ItemUpdateMethod reason, Common.Item.Item item) { SM_ITEM_INFO p = new SM_ITEM_INFO(); List <Common.Item.Item> list = new List <Common.Item.Item>(); list.Add(item); p.Reason = reason; p.Items = list; Network.SendPacket(p); }
public void SendItemUpdate(Item.ItemUpdateMethod reason, List <Common.Item.Item> list) { SM_ITEM_INFO p = new SM_ITEM_INFO() { Reason = reason, Items = list }; Logger.Log.Debug(p.DumpData()); Network.SendPacket(p); }
public void SendItemList() { List <Common.Item.Item> items = new List <Common.Item.Item>(); foreach (Containers c in Enum.GetValues(typeof(Containers))) { foreach (Common.Item.Item i in chara.Inventory.Container[c]) { if (i != null) { items.Add(i); } } } if (items.Count > 0) { SM_ITEM_INFO p = new SM_ITEM_INFO() { Reason = ItemUpdateMethod.List, Items = items }; Network.SendPacket(p); } }
public void ComposeBaGua(CM_COMPOSE_BAGUA p) { Common.Item.Item primary = chara.Inventory.Container[Containers.Inventory][p.PrimarySlot]; Common.Item.Item secondary = chara.Inventory.Container[Containers.Inventory][p.SecondarySlot]; Stats stat = Utils.FindStat(p.Stat); if (primary != null && secondary != null) { if (primary.BaseData.ItemType == ItemType.Bagua && secondary.BaseData.ItemType == ItemType.Bagua) { if (primary.BaseData.SecondaryStats.ContainsKey(stat) && secondary.BaseData.PrimaryStats.ContainsKey(stat)) { Dictionary <Common.Item.Item, ushort> update = new Dictionary <Common.Item.Item, ushort>(); Common.Item.Item add; ushort total = 0; bool pass; foreach (KeyValuePair <ushort, ushort> i in p.ExchangeItems) { add = Character.Inventory.Container[Containers.Inventory][i.Key]; if (add != null) { if (add.Count >= i.Value && add.ItemID == primary.BaseData.BaGuaPowderId) { update.Add(add, i.Value); total += i.Value; } else { break; } } } if (total == primary.BaseData.BaGuaPowderCount) { pass = BaGuaSuccess(primary, secondary); update.Add(secondary, secondary.Count); RemoveItemsBySlot(update); if (pass) { Common.Item.Item remove = new Common.Item.Item(primary.BaseData) { Synthesis = primary.Synthesis }; primary.Synthesis = p.Stat; List <Common.Item.Item> items = new List <Common.Item.Item>(); items.Add(primary); CharacterSession.Instance.SaveItem(primary); SM_ITEM_INFO r = new SM_ITEM_INFO() { Reason = Item.ItemUpdateMethod.Synthesis, Items = items }; Network.SendPacket(r); /*if (primary.InventoryEquipSlot != InventoryEquipSlot.None) * { * PC.Status.EquipItem(chara, remove,false); * PC.Status.EquipItem(chara, primary,true); * PC.Status.CalcStatus(chara); * SendPlayerEquiptStats(primary, Utils.FindStat(remove.Synthesis)); * }*/ } else { SM_COMPOSE_BAGUA_FAIL r = new SM_COMPOSE_BAGUA_FAIL() { Code = 0x148 }; Network.SendPacket(r); } } } } } }