Пример #1
0
        private static void HandleCollect(GameSession session, PacketReader packet)
        {
            long id   = packet.ReadLong();
            Mail mail = session.Player.Mailbox.FirstOrDefault(x => x.Id == id);

            if (mail == null)
            {
                return;
            }

            if (mail.Items.Count == 0)
            {
                return;
            }

            foreach (Item item in mail.Items)
            {
                item.MailId = 0;
                InventoryController.Add(session, item, true);
            }
            mail.Items.Clear();
            DatabaseManager.Mails.UpdateReadTime(mail);

            session.Send(MailPacket.Collect(mail));
            session.Send(MailPacket.UpdateReadTime(mail));
        }
Пример #2
0
    private static void HandleCollect(GameSession session, PacketReader packet)
    {
        long id   = packet.ReadLong();
        Mail mail = session.Player.Mailbox.FirstOrDefault(x => x.Id == id);

        if (mail == null)
        {
            return;
        }

        if (mail.Items.Count == 0 && mail.Mesos == 0 && mail.Merets == 0)
        {
            return;
        }

        if (mail.Items.Count > 0)
        {
            foreach (Item item in mail.Items)
            {
                item.MailId = 0;
                DatabaseManager.Items.Update(item);
                session.Player.Inventory.AddItem(session, item, true);
            }
            mail.Items.Clear();
            session.Send(MailPacket.Collect(mail));
        }

        if (mail.Mesos > 0)
        {
            if (!session.Player.Wallet.Meso.Modify(mail.Mesos))
            {
                return;
            }
            mail.Mesos = 0;
        }

        if (mail.Merets > 0)
        {
            if (!session.Player.Account.Meret.Modify(mail.Merets))
            {
                return;
            }
            mail.Merets = 0;
        }
        DatabaseManager.Mails.Update(mail);

        session.Send(MailPacket.UpdateReadTime(mail));
    }