Clear_Mailbox Command

EQ2Emulator Development forum.

Moderator: Team Members

Post Reply
User avatar
xinux
Team Member
Posts: 680
Joined: Wed Mar 10, 2010 11:10 am
Location: Destroyer of Servers

Clear_Mailbox Command

Post by xinux » Wed Jan 18, 2012 1:01 am

Ok so when i was running through collecting all of the commands that JA posted earlier i decided to look further in to clear_mailbox command. If those with more experice can take a look and see if i'm even remotly close and maybe point out a few things before i go further since i've never really looked at doing one from the ground up before. Also remeber this is all from live so the opcodes are probally off.

*** If this looks right i'm going to try and build the struct correctly next. ***

Ok first up we have the packet from doing /clear_mailbox ingame.

Code: Select all

-- OP_GameWorldTimeMsg --
1/17/2012 20:31:29
192.168.1.198 -> 69.174.200.46                               
0000	00 09 18 8D 2A 18 02 00 00                      ....*....  

00 09  = Packet Type
18 8D  = Sequence
2A     = opcode (42) ** (I think it should be 41 for DoV "OP_RemoteCmdMsg") **
18 02  = unknown int16 size=1
00 00  = unknown int16 size=1

Now we have the response back from the server.

Code: Select all

-- OP_DispatchClientCmdMsg --
1/17/2012 20:31:30
69.174.200.46 -> 192.168.1.198
0000:	00 09 01 24 01 3A 83 00 00 00 FF 73 02 4F 00 41 ...$.:.....s.O.A
0010:	72 65 20 79 6F 75 20 73 75 72 65 20 79 6F 75 20 re you sure you 
0020:	77 61 6E 74 20 70 65 72 6D 61 6E 65 6E 74 6C 79 want permanently
0030:	20 64 65 6C 65 74 65 20 61 6C 6C 20 79 6F 75 72  delete all your
0040:	20 6D 61 69 6C 3F 20 20 54 68 69 73 20 63 61 6E  mail?  This can
0050:	6E 6F 74 20 62 65 20 75 6E 64 6F 6E 65 21 03 00 not be undone!..
0060:	59 65 73 0F 00 63 6C 65 61 72 5F 6D 61 69 6C 62 Yes..clear_mailb
0070:	6F 78 20 31 02 00 4E 6F 00 00 00 00 00 00 00 00 ox 1..No........
0080:	00 00 00 00 32 00 00 00 00 00 00 01 01          ....2........


00 09       = packet type
01 24       = sequence
01          = unknown    int8  size=1 (compressed flag?)
3A          = opcode (58)  **  (This looks right OP_DispatchClientCmdMsg) **
83 00 00 00 = unknown    int32 size=1
FF 73 02    = opcode (627) ** (I think it should be 630 for DoV "OP_EQUpdatePlayerMailCmd")
4F 00       = length     int16 size=1
41 - 21     = EQ2_16Bit_String
03 00       = length     int16 size=1
59 65 73    = EQ2_16Bit_String size=1
0F 00       = length     int16 size=1
63 - 31     = EQ2_16Bit_String size=1
02 00       = length     int16 size=1
4E 6F       = EQ2_16Bit_String size=1
00 - 00     = unknown    int32 size=3
32          = unknown    int8  size=1  (32 = 2 = no)
00 00 00 00 = unknown    int32 size=1
00 00       = unknown    int16 size=1
01 01       = unknown    int16 size=1

Now clicking on the no option did not create a packet it just closed the window
but clicking on yes sent this packet to the server

Code: Select all

-- OP_GameWorldTimeMsg --
1/17/2012 20:35:31
192.168.1.198 -> 69.174.200.46
0000	00 09 1F EF 2A 18 02 01 00 31                   ....*....1 

00 09  = Packet Type
1F EF  = Sequence
2A     = opcode (42)  ** (I think it should be 41 for DoV "OP_RemoteCmdMsg") **
18 02  = unknown int16 size=1
01 00  = unknown int16 size=1  (01 = accept/yes sent to server)

31     = unknown int8  size=1  (31 = 1 = yes)

Now we have the response back from the server which is 2 packets

Code: Select all

-- OP_DispatchClientCmdMsg --
1/17/2012 20:35:31
69.174.200.46 -> 192.168.1.198
0000:	00 3A 50 00 00 00 FF 73 02 2E 00 59 6F 75 20 68 .:P....s...You h
0010:	61 76 65 20 64 65 6C 65 74 65 64 20 31 20 6D 65 ave deleted 1 me
0020:	73 73 61 67 65 73 20 66 72 6F 6D 20 79 6F 75 72 ssages from your
0030:	20 6D 61 69 6C 62 6F 78 2E 02 00 4F 4B 00 00 00  mailbox...OK...
0040:	00 00 00 00 00 00 00 00 00 00 00 00 00 32 00 00 .............2..
0050:	00 00 00 00 01 01                               ......

00          = unknown (uncompressed flag?)
3A          = opcode (58)  **  (This looks right OP_DispatchClientCmdMsg) **
50 00 00 00 = Unknown
FF 73 02    = opcode (627) ** (I think it should be 630 for DoV "OP_EQUpdatePlayerMailCmd")
2E 00       = Length     int16 size=1
59 - 2E     = EQ2_16Bit_String size=1
02 00       = length     int16 size=1
4F 4B       = EQ2_16Bit_String size=1
00 - 00     = unknown    int32 size=4
32          = unknown    int8  size=1
00 00 00 00 = unknown    int32 size=1
00 00       = unknown    int16 size=1
01 01       = unknown    int16 size=1

Code: Select all

-- OP_DispatchClientCmdMsg --
1/17/2012 20:35:31
69.174.200.46 -> 192.168.1.198
0000:	00 3A 26 00 00 00 FF 91 02 03 00 00 00 00 00 00 .:&.............
0010:	00 00 00 00 00 00 00 00 00 00 00 00 FE 39 FF 00 .............9..
0020:	00 00 00 00 00 00 00 00 00 00 00 00             ............


00          = unknown (uncompressed flag?)
3A          = opcode (58)  ** (This looks right OP_DispatchClientCmdMsg) **
26 00 00 00 = Unknown
FF 91 02    = opcode (657) ** (Nothing even close that looks right "new"?) **
03          = unknown int8  size=1
00 - 00     = unknown int32 size=4
00 00       = unknown int16 size=1
ff          = unknown int8  size=1
00          = unknown int8  size=1
00 - 00     = unknown int32 size=3
EQ II - Build=1360 (Orig) - Build=1360 (DoF) - Build=2654 (KoS) - Build=3375 (Classic) - Build=3554 (EoF)
EQ II - Build=4412 (RoK) - Build=5122 (TSO) - Build=6118 (SF) - Build=7628 (DoV) - Build=8295 (Aod)

User avatar
John Adams
Retired
Posts: 9684
Joined: Thu Jul 26, 2007 6:27 am
EQ2Emu Server: EQ2Emulator Test Center
Characters: John
Location: Arizona
Contact:

Re: Clear_Mailbox Command

Post by John Adams » Wed Jan 18, 2012 7:08 am

Excellent work, xinux. Next thing you know, you'll be writing the C++ code to support this :)

Post Reply

Who is online

Users browsing this forum: No registered users and 0 guests