Пример #1
0
        private static void HandleSend(GameSession session, PacketReader packet)
        {
            string recipientName = packet.ReadUnicodeString();
            string title         = packet.ReadUnicodeString();
            string body          = packet.ReadUnicodeString();

            if (recipientName == session.Player.Name)
            {
                session.Send(MailPacket.Error((byte)MailErrorCode.CannotMailYourself));
                return;
            }

            if (!DatabaseManager.Characters.NameExists(recipientName))
            {
                session.Send(MailPacket.Error((byte)MailErrorCode.CharacterNotFound));
                return;
            }

            Player recipient = GameServer.Storage.GetPlayerByName(recipientName);

            if (recipient == null)
            {
                recipient = DatabaseManager.Characters.FindPartialPlayerByName(recipientName);
            }

            MailHelper.SendMail(MailType.Player, recipient.CharacterId, session.Player.CharacterId, session.Player.Name, title, body, "", "", null, 0, out Mail mail);

            session.Send(MailPacket.Send(mail));
        }
Пример #2
0
        private static void HandleSend(GameSession session, PacketReader packet)
        {
            string recipient = packet.ReadUnicodeString();
            string title     = packet.ReadUnicodeString();
            string body      = packet.ReadUnicodeString();

            // Would make database call to look for recipient and add mail to their mailbox, instead add mail to session
            Mail mail = new Mail
                        (
                1,
                session.Player.CharacterId,
                session.Player.Name,
                title,
                body,
                0,
                DateTimeOffset.UtcNow.ToUnixTimeSeconds(),
                null
                        );

            session.Player.Mailbox.AddOrUpdate(mail);

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