Esempio n. 1
0
        public static void TakeMailItemRequest(IRealmClient client, RealmPacketIn packet)
        {
            int num1 = packet.ReadInt32();

            if (!client.ActiveCharacter.MailMessages.ContainsKey((long)num1))
            {
                client.ActiveCharacter.YouAreFuckingCheater("Try to take not existing mail message.", 50);
                Asda2MailHandler.SendMailItemTakedResponse(client, Asda2MailItemTakedStatus.WrongInfo,
                                                           (Asda2Item)null);
            }
            else
            {
                Asda2MailMessage mailMessage = client.ActiveCharacter.MailMessages[(long)num1];
                if (mailMessage == null)
                {
                    Asda2MailHandler.SendMailItemTakedResponse(client, Asda2MailItemTakedStatus.WrongInfo,
                                                               (Asda2Item)null);
                }
                else
                {
                    Asda2Item itemToCopyStats = mailMessage.Item;
                    Asda2Item asda2Item       = (Asda2Item)null;
                    if (itemToCopyStats != null)
                    {
                        int num2 = (int)client.ActiveCharacter.Asda2Inventory.TryAdd(itemToCopyStats.ItemId,
                                                                                     itemToCopyStats.Amount, true, ref asda2Item, new Asda2InventoryType?(), itemToCopyStats);
                        Log.Create(Log.Types.ItemOperations, LogSourceType.Character, client.ActiveCharacter.EntryId)
                        .AddAttribute("source", 0.0, "taked_from_mail")
                        .AddAttribute("message_id", (double)mailMessage.Guid, "").AddItemAttributes(asda2Item, "")
                        .Write();
                        mailMessage.ItemGuid = 0L;
                        mailMessage.Item     = (Asda2Item)null;
                        itemToCopyStats.Destroy();
                    }

                    client.ActiveCharacter.AddMoney(mailMessage.Gold);
                    mailMessage.Gold = 0U;
                    mailMessage.UpdateLater();
                    Asda2MailHandler.SendMailItemTakedResponse(client, Asda2MailItemTakedStatus.Ok, asda2Item);
                    client.ActiveCharacter.SendMoneyUpdate();
                }
            }
        }