Code: Select all
[11:58:26.46] 0000 writeInt16: 133 0x85: CMSG_PLAYER_CHANGE_DEST
[11:58:26.46] 0002 writeCoordinates: 48,39 1: destination
here the you are on (48,37) and you request to walk to (48,39)
Code: Select all
[11:58:26.54] 0000 readInt16: 135 0x87: packet id
[11:58:26.54] 0002 readInt32: 2330996867 0x8af03083: tick
[11:58:26.54] 0006 readCoordinatePair: 48,37 48,38: move path
[11:58:26.54] 0011 readUInt8: 0 0x0: unused
here the server replies by saying you you can move from (48,37) to (48,38) since there is no collision on that tile
Code: Select all
[11:58:26.58] 0000 readInt16: 145 0x91: packet id
[11:58:26.58] 0002 readString: 009-4: map name
[11:58:26.58] 0018 readInt16: 47 0x2f: x
[11:58:26.58] 0020 readInt16: 36 0x24: y
when you walk on tile (48,38) the server knocks you back to the tile (47,36) if the colors are not correct
Code: Select all
[11:58:26.58] Warping to 009-4 (47, 36)
[11:58:26.61] 0000 writeInt16: 125 0x7d: CMSG_MAP_LOADED
here your client sets your new position and tells the server that your position is changed
and this is where it gets interesting:
Code: Select all
[11:58:26.63] 0000 readInt16: 135 0x87: packet id
[11:58:26.63] 0002 readInt32: 2330996965 0x8af030e5: tick
[11:58:26.63] 0006 readCoordinatePair: 47,36 48,39: move path
[11:58:26.63] 0011 readUInt8: 0 0x0: unused
The server tells the client that they can move from (47,36) to (48,39).
First of all, the client did not send another CMSG_PLAYER_CHANGE_DEST so the server should NOT send this. If it absolutely need to send something to tell your position to the client it should send 0x88.
Secondly, this should only be one tile but it tells the client that you can walk 3 tiles.
I'll look into it and make a patch when I have some time