Esempio n. 1
0
        private void TransferItems()
        {
            if (_cleanuped)
            {
                return;
            }
            if (ItemsTransfered)
            {
                return;
            }
            ItemsTransfered = true;
            var firstCharItemsCount =
                FirstCharacterItems.Count(i => i != null && i.Item != null && i.Item.ItemId != 20551);
            var secondCharItemsCount =
                SecondCharacterItems.Count(i => i != null && i.Item != null && i.Item.ItemId != 20551);

            if (TradeType == Asda2TradeType.RedularTrade)
            {
                if (SecondChar.Asda2Inventory.FreeRegularSlotsCount < firstCharItemsCount || FisrtChar.Asda2Inventory.FreeRegularSlotsCount < secondCharItemsCount)
                {
                    FisrtChar.SendSystemMessage("Check free space in inventory!.");
                    SecondChar.SendSystemMessage("Check free space in inventory!.");
                    CancelTrade();
                    return;
                }
            }
            else
            {
                if (SecondChar.Asda2Inventory.FreeShopSlotsCount < firstCharItemsCount || FisrtChar.Asda2Inventory.FreeShopSlotsCount < secondCharItemsCount)
                {
                    FisrtChar.SendSystemMessage("Check free space in inventory!.");
                    SecondChar.SendSystemMessage("Check free space in inventory!.");
                    CancelTrade();
                    return;
                }
            }
            var newItemsOfSecond = Transfer(FirstCharacterItems, SecondChar);
            var newItemsOfFirst  = Transfer(SecondCharacterItems, FisrtChar);

            if (TradeType == Asda2TradeType.RedularTrade)
            {
                Asda2TradeHandler.SendRegularTradeCompleteResponse(FisrtChar.Client, newItemsOfFirst);
                Asda2TradeHandler.SendRegularTradeCompleteResponse(SecondChar.Client, newItemsOfSecond);
            }
            else
            {
                Asda2TradeHandler.SendShopTradeCompleteResponse(FisrtChar.Client, newItemsOfFirst);
                Asda2TradeHandler.SendShopTradeCompleteResponse(SecondChar.Client, newItemsOfSecond);
            }
            FisrtChar.SendMoneyUpdate();
            SecondChar.SendMoneyUpdate();
        }
Esempio n. 2
0
 public void ShowItemToOtherPlayer(Character activeCharacter)
 {
     if (activeCharacter == FisrtChar && !FirstCharShowItems)
     {
         FirstCharShowItems = true;
         Asda2TradeHandler.SendConfimTradeFromOponentResponse(SecondChar.Client, FirstCharacterItems);
     }
     else if (activeCharacter == SecondChar && !SecondCharShowItems)
     {
         SecondCharShowItems = true;
         Asda2TradeHandler.SendConfimTradeFromOponentResponse(FisrtChar.Client, SecondCharacterItems);
     }
 }
Esempio n. 3
0
 public void CancelTrade()
 {
     if (FisrtChar != null)
     {
         Asda2TradeHandler.SendTradeRejectedResponse(FisrtChar.Client);
         FisrtChar.Asda2TradeWindow = null;
     }
     if (SecondChar != null)
     {
         Asda2TradeHandler.SendTradeRejectedResponse(SecondChar.Client);
         SecondChar.Asda2TradeWindow = null;
     }
     CleanUp();
 }
Esempio n. 4
0
        public void CancelTrade()
        {
            if (this.FisrtChar != null)
            {
                Asda2TradeHandler.SendTradeRejectedResponse(this.FisrtChar.Client);
                this.FisrtChar.Asda2TradeWindow = (Asda2TradeWindow)null;
            }

            if (this.SecondChar != null)
            {
                Asda2TradeHandler.SendTradeRejectedResponse(this.SecondChar.Client);
                this.SecondChar.Asda2TradeWindow = (Asda2TradeWindow)null;
            }

            this.CleanUp();
        }
Esempio n. 5
0
 public void ShowItemToOtherPlayer(Character activeCharacter)
 {
     if (activeCharacter == this.FisrtChar && !this.FirstCharShowItems)
     {
         this.FirstCharShowItems = true;
         Asda2TradeHandler.SendConfimTradeFromOponentResponse(this.SecondChar.Client, this.FirstCharacterItems);
     }
     else
     {
         if (activeCharacter != this.SecondChar || this.SecondCharShowItems)
         {
             return;
         }
         this.SecondCharShowItems = true;
         Asda2TradeHandler.SendConfimTradeFromOponentResponse(this.FisrtChar.Client, this.SecondCharacterItems);
     }
 }
Esempio n. 6
0
        public static void PushItemToTradeRequest(IRealmClient client, RealmPacketIn packet)
        {
            packet.Position += 5;
            byte  invNum   = packet.ReadByte();
            short cellNum  = packet.ReadInt16();
            int   quantity = packet.ReadInt32();

            if (client.ActiveCharacter.Asda2TradeWindow == null)
            {
                client.ActiveCharacter.YouAreFuckingCheater("Trying to push items to trade while not trading", 0);
            }
            else
            {
                Asda2ItemTradeRef          asda2ItemTradeRef = (Asda2ItemTradeRef)null;
                Asda2PushItemToTradeStatus trade             =
                    client.ActiveCharacter.Asda2TradeWindow.PushItemToTrade(client.ActiveCharacter, cellNum, quantity,
                                                                            invNum, ref asda2ItemTradeRef);
                Asda2TradeHandler.SendItemToTradePushedResponse(client, trade, asda2ItemTradeRef);
            }
        }
Esempio n. 7
0
        private void TransferItems()
        {
            if (this._cleanuped || this.ItemsTransfered)
            {
                return;
            }
            this.ItemsTransfered = true;
            int num1 = ((IEnumerable <Asda2ItemTradeRef>) this.FirstCharacterItems).Count <Asda2ItemTradeRef>(
                (Func <Asda2ItemTradeRef, bool>)(i =>
            {
                if (i != null && i.Item != null)
                {
                    return(i.Item.ItemId != 20551);
                }
                return(false);
            }));
            int num2 = ((IEnumerable <Asda2ItemTradeRef>) this.SecondCharacterItems).Count <Asda2ItemTradeRef>(
                (Func <Asda2ItemTradeRef, bool>)(i =>
            {
                if (i != null && i.Item != null)
                {
                    return(i.Item.ItemId != 20551);
                }
                return(false);
            }));

            if (this.TradeType == Asda2TradeType.RedularTrade)
            {
                if (this.SecondChar.Asda2Inventory.FreeRegularSlotsCount < num1 ||
                    ((IEnumerable <Asda2Item>) this.FisrtChar.Asda2Inventory.RegularItems).Count <Asda2Item>(
                        (Func <Asda2Item, bool>)(i => i == null)) < num2)
                {
                    this.FisrtChar.SendSystemMessage("Check free space in inventory!.");
                    this.SecondChar.SendSystemMessage("Check free space in inventory!.");
                    this.CancelTrade();
                    return;
                }
            }
            else if (((IEnumerable <Asda2Item>) this.SecondChar.Asda2Inventory.ShopItems).Count <Asda2Item>(
                         (Func <Asda2Item, bool>)(i => i == null)) < num1 ||
                     ((IEnumerable <Asda2Item>) this.FisrtChar.Asda2Inventory.ShopItems).Count <Asda2Item>(
                         (Func <Asda2Item, bool>)(i => i == null)) < num2)
            {
                this.FisrtChar.SendSystemMessage("Check free space in inventory!.");
                this.SecondChar.SendSystemMessage("Check free space in inventory!.");
                this.CancelTrade();
                return;
            }

            Asda2Item[] items1 =
                this.Transfer((IEnumerable <Asda2ItemTradeRef>) this.FirstCharacterItems, this.SecondChar);
            Asda2Item[] items2 =
                this.Transfer((IEnumerable <Asda2ItemTradeRef>) this.SecondCharacterItems, this.FisrtChar);
            if (this.TradeType == Asda2TradeType.RedularTrade)
            {
                Asda2TradeHandler.SendRegularTradeCompleteResponse(this.FisrtChar.Client, items2);
                Asda2TradeHandler.SendRegularTradeCompleteResponse(this.SecondChar.Client, items1);
            }
            else
            {
                Asda2TradeHandler.SendShopTradeCompleteResponse(this.FisrtChar.Client, items2);
                Asda2TradeHandler.SendShopTradeCompleteResponse(this.SecondChar.Client, items1);
            }

            this.FisrtChar.SendMoneyUpdate();
            this.SecondChar.SendMoneyUpdate();
        }
Esempio n. 8
0
        public static void TradeRequestRequest(IRealmClient client, RealmPacketIn packet)
        {
            if (client.ActiveCharacter.Asda2TradeWindow != null)
            {
                if (client.ActiveCharacter.Asda2TradeWindow.Expired)
                {
                    client.ActiveCharacter.Asda2TradeWindow.CancelTrade();
                }
                else
                {
                    client.ActiveCharacter.SendSystemMessage("You already trading.");
                    Asda2TradeHandler.SendTradeRejectedResponse(client);
                    return;
                }
            }

            ushort         sessId               = packet.ReadUInt16();
            Asda2TradeType tradeType            = (Asda2TradeType)packet.ReadByte();
            Character      characterBySessionId = World.GetCharacterBySessionId(sessId);

            if (characterBySessionId == null)
            {
                client.ActiveCharacter.SendSystemMessage("Sorry, but i can't find character you want trade.");
                Asda2TradeHandler.SendTradeRejectedResponse(client);
            }
            else if (characterBySessionId.Map != client.ActiveCharacter.Map)
            {
                characterBySessionId.YouAreFuckingCheater("Trying to buy items from character with another map.", 50);
                Asda2TradeHandler.SendTradeRejectedResponse(client);
            }
            else if (!characterBySessionId.EnableGeneralTradeRequest && tradeType == Asda2TradeType.RedularTrade)
            {
                client.ActiveCharacter.SendSystemMessage(string.Format("{0} rejected all general trade requests.",
                                                                       (object)characterBySessionId.Name));
                Asda2TradeHandler.SendTradeRejectedResponse(client);
            }
            else if (!characterBySessionId.EnableGearTradeRequest && tradeType == Asda2TradeType.ShopItemsTrade)
            {
                client.ActiveCharacter.SendSystemMessage(string.Format("{0} rejected all gear trade requests.",
                                                                       (object)characterBySessionId.Name));
                Asda2TradeHandler.SendTradeRejectedResponse(client);
            }
            else if (client.ActiveCharacter.PrivateShop != null)
            {
                client.ActiveCharacter.YouAreFuckingCheater(
                    "Target character is in private shop and can't accept trade.", 20);
                Asda2TradeHandler.SendTradeRejectedResponse(client);
            }
            else if (client.ActiveCharacter.IsAsda2BattlegroundInProgress)
            {
                client.ActiveCharacter.SendInfoMsg("Can't trade on war.");
                Asda2TradeHandler.SendTradeRejectedResponse(client);
            }
            else if (characterBySessionId.PrivateShop != null)
            {
                Asda2TradeHandler.SendTradeRejectedResponse(client);
            }
            else
            {
                Asda2TradeWindow asda2TradeWindow = new Asda2TradeWindow()
                {
                    FisrtChar  = client.ActiveCharacter,
                    SecondChar = characterBySessionId
                };
                asda2TradeWindow.Init();
                client.ActiveCharacter.Asda2TradeWindow = asda2TradeWindow;
                characterBySessionId.Asda2TradeWindow   = asda2TradeWindow;
                asda2TradeWindow.TradeType = tradeType;
                Asda2TradeHandler.SendTradeRequestResponse(characterBySessionId.Client, client.ActiveCharacter,
                                                           tradeType);
            }
        }
Esempio n. 9
0
        private void TransferItems()
        {
            if (_cleanuped || ItemsTransfered)
            {
                return;
            }
            ItemsTransfered = true;
            int num1 = FirstCharacterItems.Count(
                i =>
            {
                if (i != null && i.Item != null)
                {
                    return(i.Item.ItemId != 20551);
                }
                return(false);
            });
            int num2 = SecondCharacterItems.Count(
                i =>
            {
                if (i != null && i.Item != null)
                {
                    return(i.Item.ItemId != 20551);
                }
                return(false);
            });

            if (TradeType == Asda2TradeType.RedularTrade)
            {
                if (SecondChar.Asda2Inventory.FreeRegularSlotsCount < num1 ||
                    FisrtChar.Asda2Inventory.RegularItems.Count(
                        i => i == null) < num2)
                {
                    FisrtChar.SendSystemMessage("Check free space in inventory!.");
                    SecondChar.SendSystemMessage("Check free space in inventory!.");
                    CancelTrade();
                    return;
                }
            }
            else if (SecondChar.Asda2Inventory.ShopItems.Count(
                         i => i == null) < num1 ||
                     FisrtChar.Asda2Inventory.ShopItems.Count(
                         i => i == null) < num2)
            {
                FisrtChar.SendSystemMessage("Check free space in inventory!.");
                SecondChar.SendSystemMessage("Check free space in inventory!.");
                CancelTrade();
                return;
            }

            Asda2Item[] items1 =
                Transfer(FirstCharacterItems, SecondChar);
            Asda2Item[] items2 =
                Transfer(SecondCharacterItems, FisrtChar);
            if (TradeType == Asda2TradeType.RedularTrade)
            {
                Asda2TradeHandler.SendRegularTradeCompleteResponse(FisrtChar.Client, items2);
                Asda2TradeHandler.SendRegularTradeCompleteResponse(SecondChar.Client, items1);
            }
            else
            {
                Asda2TradeHandler.SendShopTradeCompleteResponse(FisrtChar.Client, items2);
                Asda2TradeHandler.SendShopTradeCompleteResponse(SecondChar.Client, items1);
            }

            FisrtChar.SendMoneyUpdate();
            SecondChar.SendMoneyUpdate();
        }