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 AdjustLoots() { ResetRequiredItems(); foreach (var item in FirstTrader.Items.ToArray()) { var requiredItem = GetRequiredItem(item.Template.Id); if (requiredItem != null) { requiredItem.Count += item.Stack; } else { FirstTrader.MoveItemToInventory(item, (int)item.Stack); } } var dofusLegendaire = ItemManager.Instance.TryGetTemplate(NpcDofus.RewardItemId); var itemDofus = SecondTrader.Items.FirstOrDefault(item => item.Template.Id == dofusLegendaire.Id); if (itemDofus == null) { if (!CanExchange()) { return; } SecondTrader.AddItem(dofusLegendaire, 1); return; } SecondTrader.RemoveItem(itemDofus.Template, itemDofus.Stack); InventoryHandler.SendExchangeObjectRemovedMessage(FirstTrader.Character.Client, true, itemDofus.Guid); }
private void OnItemMoved(Trader trader, TradeItem item, bool modified, int difference) { if (!modified && item.Stack > 0) { InventoryHandler.SendExchangeObjectAddedMessage(Crafter.Character.Client, Crafter != trader, item); InventoryHandler.SendExchangeObjectAddedMessage(Receiver.Character.Client, Receiver != trader, item); } else if (item.Stack <= 0) { InventoryHandler.SendExchangeObjectRemovedMessage(Crafter.Character.Client, Crafter != trader, item.Guid); InventoryHandler.SendExchangeObjectRemovedMessage(Receiver.Character.Client, Receiver != trader, item.Guid); } else { InventoryHandler.SendExchangeObjectModifiedMessage(Crafter.Character.Client, Crafter != trader, item); InventoryHandler.SendExchangeObjectModifiedMessage(Receiver.Character.Client, Receiver != trader, item); } FirstTrader.ToggleReady(false); SecondTrader.ToggleReady(false); }
protected override void OnTraderItemMoved(Trader trader, TradeItem item, bool modified, int difference) { base.OnTraderItemMoved(trader, item, modified, difference); FirstTrader.ToggleReady(false); SecondTrader.ToggleReady(false); if (item.Stack == 0) { InventoryHandler.SendExchangeObjectRemovedMessage(FirstTrader.Character.Client, trader != FirstTrader, item.Guid); InventoryHandler.SendExchangeObjectRemovedMessage(SecondTrader.Character.Client, trader != SecondTrader, item.Guid); } else if (modified) { InventoryHandler.SendExchangeObjectModifiedMessage(FirstTrader.Character.Client, trader != FirstTrader, item); InventoryHandler.SendExchangeObjectModifiedMessage(SecondTrader.Character.Client, trader != SecondTrader, item); } else { InventoryHandler.SendExchangeObjectAddedMessage(FirstTrader.Character.Client, trader != FirstTrader, item); InventoryHandler.SendExchangeObjectAddedMessage(SecondTrader.Character.Client, trader != SecondTrader, item); } }
protected virtual void OnTraderKamasChanged(Trader trader, uint amount) { FirstTrader.ToggleReady(false); SecondTrader.ToggleReady(false); }
protected virtual void OnTraderItemMoved(Trader trader, TradeItem item, bool modified, int difference) { FirstTrader.ToggleReady(false); SecondTrader.ToggleReady(false); }