Difference between revisions of "UpdateTransformMessage"

From SWGANH Wiki
Jump to: navigation, search
(Tags)
(Struct)
Line 8: Line 8:
  
 
{| class="wikitable"
 
{| class="wikitable"
 +
|{{short}}||'''Operand_Count'''
 
|-
 
|-
|align="center" style="background:#6C86BF; color:white;"|'''SHORT'''||'''Operand_Count'''
+
|{{int}}||'''Opcode'''
 
|-
 
|-
|align="center" style="background:#3C548A; color:white;"|'''INT'''||'''Opcode'''
+
|{{long}}||'''ObjectID'''
 
|-
 
|-
|align="center" style="background:#3C4565; color:white;"|'''LONG'''||'''ObjectID'''
+
|{{short}}||'''PositionX'''
 
|-
 
|-
|align="center" style="background:#6C86BF; color:white;"|'''SHORT'''||'''PositionX'''
+
|{{short}}||'''PositionZ'''
 
|-
 
|-
|align="center" style="background:#6C86BF; color:white;"|'''SHORT'''||'''PositionZ'''
+
|{{short}}||'''PositionY'''
 
|-
 
|-
|align="center" style="background:#6C86BF; color:white;"|'''SHORT'''||'''PositionY'''
+
|{{int}}||'''UpdateCounter'''
 
|-
 
|-
|align="center" style="background:#3C548A; color:white;"|'''INT'''||'''UpdateCounter'''
+
|{{byte}}|{{unknown}}
|-
+
|align="center" style="background:#B3C0DE; color:white;"|'''BYTE'''||'''<font color=red>Unknown</font>'''
+
|-
+
|align="center" style="background:#B3C0DE; color:white;"|'''BYTE'''||'''Direction'''
+
 
|-
 
|-
 +
|{{byte}}||'''Direction'''
 
|}
 
|}
  

Revision as of 11:17, 10 April 2007


Struct


SHORT Operand_Count
INT Opcode
LONG ObjectID
SHORT PositionX
SHORT PositionZ
SHORT PositionY
INT UpdateCounter
BYTE ??
BYTE Direction

Variable Descriptions


Opperand_Count = 8

Opcode = 1B24F808


  • ObjectID:
ObjectID that you are listing attributes for.
  • Position X / Z / Y:
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
  • UpdateCounter:
Number of movement updates the object has done.
Used to distinguish new updates from potential repeats.
Incremented by 1 each packet.
  • 'Direction:
This is the direction for the object to face after moving.
It is calculated by (Angle / 0.0625) where angle is in radians.
    • Additional Notes:
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...