Exemplo n.º 1
0
        protected override void InternalParse()
        {
            Output.AppendLine("Mail Id: " + Reader.ReadUInt32());
            MailResponseType type = (MailResponseType)Reader.ReadUInt32();

            Output.AppendLine("Type: " + type);
            MailResponseResult result = (MailResponseResult)Reader.ReadUInt32();

            Output.AppendLine("Result: " + result);

            if (result == MailResponseResult.MAIL_ERR_EQUIP_ERROR)
            {
                Output.AppendLine("Equip Error: " + (InventoryChangeFailure)Reader.ReadUInt32());
            }
            if (type == MailResponseType.MAIL_ITEM_TAKEN)
            {
                Output.AppendLine("Attachment Id: " + Reader.ReadUInt32());
                Output.AppendLine("Count: " + Reader.ReadUInt32());
            }
        }
Exemplo n.º 2
0
        public override void Deserialize(IoBuffer input, ISerializationContext context)
        {
            Type = input.GetEnum <MailResponseType>();
            var numMessages = input.GetInt32();

            Messages = new MessageItem[numMessages];
            for (int j = 0; j < numMessages; j++)
            {
                var length = input.GetInt32();
                var dat    = new byte[length];
                for (int i = 0; i < length; i++)
                {
                    dat[i] = input.Get();
                }

                using (var str = new MemoryStream(dat))
                {
                    Messages[j] = new MessageItem(str);
                }
            }
        }
Exemplo n.º 3
0
        public PSSendMailResult(
            uint mailID,
            MailResponseType mailAction,
            MailResponseResult mailError,
            uint equipError = 0,
            uint itemGUID   = 0,
            uint itemCount  = 0)
            : base(WorldOpcodes.SMSG_SEND_MAIL_RESULT)
        {
            this.Write(mailID);
            this.Write((uint)mailAction);
            this.Write((uint)mailError);
            this.Write((uint)mailError);

            if (mailError == MailResponseResult.MAIL_ERR_EQUIP_ERROR)
            {
                this.Write(equipError);
            }
            else if (mailAction == MailResponseType.MAIL_ITEM_TAKEN)
            {
                this.Write(itemGUID);  // item guid low?
                this.Write(itemCount); // item count?
            }
        }