new infos, hs, multi system: mouse movement
like i've said in previous post, for multi movement with mouse, client send commands with 0xBF.0x33 and server answer with 0xF6 for smooth movement.
now i show how infos about the entire system works:
premise: this system is only for multi boat system on OSI, house system is not mentioned for now.
1) a boat enter in player's radar range
- server sends 0xF7 packet, for draw boat correctly in radarmap
2) a boat enter in player's screen
- server ( that has previous send 0xF7 ) sends a list of:
0xF3 new item world packet
0xDC PropertyListInfo packet
server sends these two packets for every item that is dynamic on boat:
for old boat for example tillerman, plank, hold
for new boat for example every piece that can be colored, tillerman ( npc ), ropes etc
3) player go on boat
- server resend all packets for draw multi in client screen and radar and resend player props:
- set light level 0x4F
- set personal light level 0x4E
- for every boat in client's radar send 0xF7
- for every boat in client's screen send 0xF3 + 0xDC ( same of point 2 )
- refresh player status ( stats, etc ) 0x34 client, 0xD6 server etc...
4) player request to drive boat with mouse:
- client sends packet 0x06, doubleclick, on tillerman ( for old boat ) on wheel ( for new boat )
- server do some work:
a) add boat to player's mount layer with packet 0x2E with related 0xDC propertylistinfo
b) invalidate player properties, resend all infos to client, force player position:
- set light level 0x4F
- set personal light level 0x4E
- move player in direction of bow of boat with 0x20
- for every boat in client's radar send 0xF7
- for every boat in client's screen send 0xF3 + 0xDC ( same of point 2 )
- force player's animation to "stand" with 0xBF.19.05.FF ( see at the end of this post for more infos )
- refresh player status ( stats, etc ) 0x34 client, 0xD6 server etc...
5) player leave mouse mode:
- client sends 0x06 doubleclick, on tillerman ( for old boat ) on wheel ( for new boat )
- server send remove entity 0xD1
NOTES:
----------------------------------------------------------------------------------------------
the packet 0xBF.19.05.FF is a little different from before:
it was used in past for statue positions, and for new bonded status; in this case is the same as statue position plus 2 bytes in tail:
byte id 0xBF
word size in little endian 0x13 0x00
word command id 0x00 0x19
byte sub command id 0x05
dword serial
byte fixed 0x00
byte fixed 0xFF
byte status 0x00 fixed
word animation 0x00 0x00 fixed
word frame 0x00 0x00 fixed
byte unknown1 0x00 fixed
byte unknown2 0x00 fixed
-----------------------------------------------------------------------------------------------
when 0xF7 is sent to draw boats, it contains a lis of items that IN THAT MOMENT are on boat.
as previous post 0xF7 contains ever:
one multidata entry ( multi base boat )
a list of dynaimic items ( tillerman + hatch + plank etc for old boat, every piece of boat that can be colored plus ropes etc for new boats )
one bodyvalue entry for new boat only ( tillerman npc )
plus of this list, 0xF7 contains every mobile and item that IN THAT MOMENT is on boat, for example another player, horse, item on ground, cannons etc etc.
when one player go on a boat ( case 3 ) the 0xF7 contains also him and his mount if it is on boat.
------------------------------------------------------------------------------------------------
the list of properties that server sends in case 3 and 4 are the similar ( maybe the same ) as when one player go on mount.
the boat indeed is considered as a normal mount when player drives it with mouse.