Difference between revisions of "UpdateTransformMessage"

From SWGANH Wiki
Jump to: navigation, search
(Struct)
 
(13 intermediate revisions by 3 users not shown)
Line 1: Line 1:
__NOTOC__
+
{{PageHeader|Server Packet|UpdateTransformMessage (1B24F808)}}
 
+
 
{| border="0" width="90%" cellpadding=6
 
{| border="0" width="90%" cellpadding=6
 
|-
 
|-
Line 6: Line 5:
 
===Struct===
 
===Struct===
 
----
 
----
 
+
{| align="center"
 +
|-
 +
||
 
{| class="wikitable"
 
{| class="wikitable"
|{{short}}||'''Operand_Count'''
+
|{{short}}||'''Op Count'''
 
|-
 
|-
 
|{{int}}||'''Opcode'''
 
|{{int}}||'''Opcode'''
Line 25: Line 26:
 
|-
 
|-
 
|{{byte}}||'''Direction'''
 
|{{byte}}||'''Direction'''
 +
|}
 
|}
 
|}
  
Line 56: Line 58:
 
* '''Posture''':
 
* '''Posture''':
 
The byte before direction corresponds to:
 
The byte before direction corresponds to:
 +
 +
{| align="center"
 +
|-
 +
||
 
{| class="wikitable"
 
{| class="wikitable"
|value||'''State'''
+
|- align="center" style="background-color:#ffffcc;"
|-
+
|width="30px"|'''ID'''||width="140px"|'''Name'''||width="30px"|'''ID'''||width="140px"|'''Name'''
|0||'''Upright'''
+
|- align="center"
|-
+
||'''-1'''||Invalid||'''10'''||Climbing
|1||'''Crouched'''
+
|- align="center" style="background-color:#F1F1F1;"
|-
+
||'''0'''||Standing||'''11'''||Hovering
|2||'''Prone'''
+
|- align="center"
|-
+
||'''1'''||Sneaking||'''12'''||Flying
|3||'''Sneaking'''
+
|- align="center" style="background-color:#F1F1F1;"
|-
+
||'''2'''||Walking||'''13'''||LyingDown
|4||'''Blocking'''
+
|- align="center"
|-
+
||'''3'''||Running||'''14'''||Sitting
|5||'''Climbing'''
+
|- align="center" style="background-color:#F1F1F1;"
|-
+
||'''4'''||Kneeling||'''15'''||SkillAnimating
|6||'''Flying'''
+
|- align="center"
|-
+
||'''5'''||CrouchSneaking||'''16'''||DrivingVehicle
|etc||'''etc...'''
+
|- align="center" style="background-color:#F1F1F1;"
 +
||'''6'''||CrouchWalking||'''17'''||RidingCreature
 +
|- align="center"
 +
||'''7'''||Prone||'''18'''||KnockedDown
 +
|- align="center" style="background-color:#F1F1F1;"
 +
||'''8'''||Crawling||'''19'''||Incapacitated
 +
|- align="center"
 +
||'''9'''||ClimbingStationary / dancing!!!||'''20'''||Dead
 +
|- align="center" style="background-color:#F1F1F1;"
 +
|| || ||'''21'''||Blocking
 
|}
 
|}
 +
|}
 +
 
Haven't seen it out side the range of 0..5 yet
 
Haven't seen it out side the range of 0..5 yet
  
Line 102: Line 119:
 
||{{100%}}
 
||{{100%}}
 
|-
 
|-
|}
 
 
 
|}
 
|}
 
|}
 
|}
Line 111: Line 126:
  
 
<pre>
 
<pre>
Insert Sample Packet Here...
+
08 00 // op count
 +
08 F8 24 1B // UpdateTransformMessage
 +
EB 4F 90 19 17 00 00 00 // object ID
 +
AD CF // x
 +
7C 00 // y
 +
CB 2B // z
 +
03 03 00 00 // counter
 +
00 // posture
 +
2F // direction
 
</pre>
 
</pre>

Latest revision as of 14:07, 24 January 2008

Server Packet - UpdateTransformMessage (1B24F808)

SWGANH Wiki is a repository of Star Wars Galaxies Developer information. This site is only meant to be used by SWGANH Developer team.

Struct


SHORT Op 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:
ObjectID that you are listing attributes for.
  • Position X / Y / Z:
New Position of Object. The value is transformed the following way.
n = X / 4;
if n > 8192 n = n - 16384; 
effective map range is -8192..8192

to convert the a float to position
n = uint16(x * 4.0f + 0.5f);
  • UpdateCounter:
Number of movement updates the object has done.
Used to distinguish new updates from potential repeats.
Incremented by 1 each packet.
  • Posture:

The byte before direction corresponds to:

ID Name ID Name
-1 Invalid 10 Climbing
0 Standing 11 Hovering
1 Sneaking 12 Flying
2 Walking 13 LyingDown
3 Running 14 Sitting
4 Kneeling 15 SkillAnimating
5 CrouchSneaking 16 DrivingVehicle
6 CrouchWalking 17 RidingCreature
7 Prone 18 KnockedDown
8 Crawling 19 Incapacitated
9 ClimbingStationary / dancing!!! 20 Dead
21 Blocking

Haven't seen it out side the range of 0..5 yet

  • 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.

:OLD--DATA--Found this to be the posture byte

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.

-

Tags


S→C This packet originates on the server.

100% This packet has been completely reversed.


Sample Packet

08 00 // op count
08 F8 24 1B // UpdateTransformMessage
EB 4F 90 19 17 00 00 00 // object ID
AD CF // x
7C 00 // y
CB 2B // z
03 03 00 00 // counter
00 // posture
2F // direction