public void ShowOnLogin(Character character) { if (character == Owner) { Asda2PrivateShopHandler.SendPrivateShopOpenedResponse(Owner.Client, PrivateShopOpenedResult.Ok, ItemsOnTrade); } else { Asda2PrivateShopHandler.SendCharacterPrivateShopInfoResponse(character.Client, Asda2ViewTradeShopInfoStatus.Ok, this); } }
public PrivateShopOpenedResult StartTrade(List <Asda2ItemTradeRef> itemsToTrade, string title) { Owner.Asda2TradeDescription = title; for (int index = 0; index < ItemsOnTrade.Length; ++index) { ItemsOnTrade[index] = itemsToTrade.Count <= index ? null : itemsToTrade[index]; } Asda2PrivateShopHandler.SendPrivateShopOpenedResponse(Owner.Client, PrivateShopOpenedResult.Ok, ItemsOnTrade); Owner.IsSitting = true; Owner.IsAsda2TradeDescriptionEnabled = true; Trading = true; return(PrivateShopOpenedResult.Ok); }
public static void OpenPrivateShopRequest(IRealmClient client, RealmPacketIn packet) { if (client.ActiveCharacter.PrivateShop == null) { Asda2PrivateShopHandler.SendPrivateShopOpenedResponse(client, PrivateShopOpenedResult.Error, (Asda2ItemTradeRef[])null); client.ActiveCharacter.YouAreFuckingCheater("Trying to open not existing private shop", 2); } else { ++packet.Position; List <Asda2ItemTradeRef> asda2ItemTradeRefList = new List <Asda2ItemTradeRef>(); for (int index = 0; index < 10; ++index) { bool flag = false; if (packet.ReadInt32() == 0) { flag = true; } Asda2InventoryType asda2InventoryType = (Asda2InventoryType)packet.ReadByte(); short num1 = packet.ReadInt16(); short num2 = packet.ReadInt16(); packet.Position += 4; if (num1 < (short)0 || (int)num1 >= client.ActiveCharacter.Asda2Inventory.ShopItems.Length || num2 < (short)0) { flag = true; } int num3 = packet.ReadInt32(); if (!flag) { Asda2Item asda2Item = asda2InventoryType == Asda2InventoryType.Regular ? client.ActiveCharacter.Asda2Inventory.RegularItems[(int)num1] : client.ActiveCharacter.Asda2Inventory.ShopItems[(int)num1]; if (asda2Item == null) { Asda2PrivateShopHandler.SendPrivateShopOpenedResponse(client, PrivateShopOpenedResult.ThereIsNoItemInfo, (Asda2ItemTradeRef[])null); return; } if (asda2Item.Amount < (int)num2) { num2 = (short)asda2Item.Amount; } foreach (Asda2ItemTradeRef asda2ItemTradeRef in asda2ItemTradeRefList) { if (asda2ItemTradeRef.Item.InventoryType == asda2Item.InventoryType && (int)asda2ItemTradeRef.Item.Slot == (int)asda2Item.Slot) { flag = true; break; } } if (!flag) { asda2ItemTradeRefList.Add(new Asda2ItemTradeRef() { Item = asda2Item, Amount = (int)num2, Price = num3, TradeSlot = (byte)asda2ItemTradeRefList.Count <Asda2ItemTradeRef>() }); } } packet.Position += 28; } string str = packet.ReadAsdaString(50, Locale.Start); if (!Asda2EncodingHelper.IsPrueEnglish(str)) { client.ActiveCharacter.SendOnlyEnglishCharactersAllowed("Shop title"); Asda2PrivateShopHandler.SendPrivateShopOpenedResponse(client, PrivateShopOpenedResult.Error, (Asda2ItemTradeRef[])null); } else { int num = (int)client.ActiveCharacter.PrivateShop.StartTrade(asda2ItemTradeRefList, str); } } }