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(); }
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); } }
public void CancelTrade() { if (FisrtChar != null) { Asda2TradeHandler.SendTradeRejectedResponse(FisrtChar.Client); FisrtChar.Asda2TradeWindow = null; } if (SecondChar != null) { Asda2TradeHandler.SendTradeRejectedResponse(SecondChar.Client); SecondChar.Asda2TradeWindow = null; } CleanUp(); }
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(); }
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); } }
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); } }
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(); }
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); } }
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(); }