Exemple #1
0
        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);
            }
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
            }
        }
Exemple #5
0
 protected virtual void OnTraderKamasChanged(Trader trader, uint amount)
 {
     FirstTrader.ToggleReady(false);
     SecondTrader.ToggleReady(false);
 }
Exemple #6
0
 protected virtual void OnTraderItemMoved(Trader trader, TradeItem item, bool modified, int difference)
 {
     FirstTrader.ToggleReady(false);
     SecondTrader.ToggleReady(false);
 }