|
|
Line 22: |
Line 22: |
| |{{int}}||'''UpdateCounter''' | | |{{int}}||'''UpdateCounter''' |
| |- | | |- |
− | |{{byte}}|{{unknown}} | + | |{{byte}}||'''Posture''' |
| |- | | |- |
| |{{byte}}||'''Direction''' | | |{{byte}}||'''Direction''' |
Revision as of 04:54, 23 September 2007
Struct
SHORT
|
Operand_Count
|
INT
|
Opcode
|
LONG
|
ObjectID
|
SHORT
|
PositionX
|
SHORT
|
PositionY
|
SHORT
|
PositionZ
|
INT
|
UpdateCounter
|
BYTE
|
Posture
|
BYTE
|
Direction
|
Variable Descriptions
Opperand_Count = 8
Opcode = 1B24F808
- ObjectID that you are listing attributes for.
- New Position of Object. The value is transformed the following way.
(Coordinate * 4) = Position
(Position / 4) = Coordinate
This is done to utilize variable size to prevent moving anywhere outside of the map.
Range of map = 16,000
Range of SHORT = 64,000
64/16 = 4
- Number of movement updates the object has done.
- Used to distinguish new updates from potential repeats.
- Incremented by 1 each packet.
- This is the direction for the object to face after moving.
- It is calculated by (Angle / 0.0625) where angle is in radians.
- This packet needs to be sent frequently to prevent start/stop in a movement stream.
- Also, shorter distances at slower frequency will create slower speed.
- It appears the unknown byte is some sort of server-side interpolation variable.
- It doesnt have any affect on the client, as far as we can tell.
- This byte seems to be related to the 2 variances of ObjController Transform Packets
- used (23 vs 21). See them for further detail. The 23 seems to be sent
- in a Data channel signifying it being important. This byte is related to a
- count of 21's the occur between a group of 23. The 23 is assumed to be start/end
- of a chain of movement while the 21 is an update.
- TODO: Look into this byte more...
|
Tags
S→C
|
This packet originates on the server.
|
|
75%
|
This packet has been partially reversed.
|
|
|
Sample Code
Insert Code Snippet Here...
Sample Packet
Insert Sample Packet Here...