private void OnReady(Trader trader, bool isready) { InventoryHandler.SendExchangeIsReadyMessage(Crafter.Character.Client, trader, isready); InventoryHandler.SendExchangeIsReadyMessage(Receiver.Character.Client, trader, isready); if (Receiver.Kamas > Receiver.Character.Inventory.Kamas) { InventoryHandler.SendExchangeCraftResultMessage(Clients, ExchangeCraftResultEnum.CRAFT_FAILED); FirstTrader.ToggleReady(false); SecondTrader.ToggleReady(false); return; } if (Crafter.ReadyToApply && Receiver.ReadyToApply) { Craft(); Crafter.Character.Inventory.AddKamas(-Receiver.Character.Inventory.SubKamas((int)Receiver.Kamas)); Receiver.SetKamas(0); ContextRoleplayHandler.SendJobExperienceOtherPlayerUpdateMessage(Receiver.Character.Client, Crafter.Character, Job); FirstTrader.ToggleReady(false); SecondTrader.ToggleReady(false); } }
private void OnReady(Trader trader, bool isready) { InventoryHandler.SendExchangeIsReadyMessage(Crafter.Character.Client, trader, isready); InventoryHandler.SendExchangeIsReadyMessage(Receiver.Character.Client, trader, isready); if (Receiver.Kamas > Receiver.Character.Inventory.Kamas) { InventoryHandler.SendExchangeCraftResultMessage(Clients, ExchangeCraftResultEnum.CRAFT_FAILED); return; } if (Crafter.ReadyToApply && Receiver.ReadyToApply) { ApplyAllRunes(); if (Receiver.Kamas > 0) { Crafter.Character.Inventory.AddKamas(-Receiver.Character.Inventory.SubKamas((int)Receiver.Kamas)); Receiver.SetKamas(0); } ContextRoleplayHandler.SendJobExperienceOtherPlayerUpdateMessage(Receiver.Character.Client, Crafter.Character, Job); } else if (trader == Receiver && !isready) // stop the trade { foreach (var item in Crafter.Items.OfType <PlayerTradeItem>().ToArray()) { if (Crafter.Character == item.Owner) { Crafter.MoveItemToInventory(item, 0); } else if (item.Owner == Receiver.Character) { RuneCrafter.MoveItemFromBag(item.PlayerItem, Receiver, 0); } } /* * if (Rune != null && Rune.Trader == Receiver) * Rune.Trader.MoveItem(Rune.Guid, (int) -Rune.Stack); * * var itemToImprove = ItemToImprove; * Crafter.MoveItem(itemToImprove.Guid, (int) -itemToImprove.Stack); * Receiver.MoveItem(itemToImprove.Guid, (int) itemToImprove.Stack);*/ } }
public void Open() { InventoryHandler.SendExchangeStartOkMulticraftCrafterMessage(Crafter.Character.Client, Skill.SkillTemplate); InventoryHandler.SendExchangeStartOkMulticraftCustomerMessage(Receiver.Character.Client, Skill.SkillTemplate, Job); ContextRoleplayHandler.SendJobExperienceOtherPlayerUpdateMessage(Receiver.Character.Client, Crafter.Character, Job); Crafter.Character.SetDialoger(Crafter); Receiver.Character.SetDialoger(Receiver); Crafter.ItemMoved += OnItemMoved; Receiver.ItemMoved += OnItemMoved; Crafter.ReadyStatusChanged += OnReady; Receiver.ReadyStatusChanged += OnReady; Receiver.KamasChanged += OnKamasChanged; }