Exemplo n.º 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);
            }
        }
Exemplo n.º 2
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);
                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);*/
            }
        }
Exemplo n.º 3
0
        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;
        }