Difference between revisions of "UpdateTransformMessage"

From SWGANH Wiki
Jump to: navigation, search
(Variable Descriptions)
Line 63: Line 63:
 
||
 
||
 
{| class="wikitable"
 
{| class="wikitable"
|-
+
|- align="center" style="background-color:#ffffcc;"
||'''Name'''||'''ID'''
+
|width="30px"|'''ID'''||width="140px"|'''Name'''||width="30px"|'''ID'''||width="140px"|'''Name'''
|-
+
|- align="center"
||Invalid||-1  
+
||'''-1'''||Invalid||'''10'''||Climbing
|-
+
|- align="center" style="background-color:#F1F1F1;"
||Standing||0
+
||'''0'''||Standing||'''11'''||Hovering
|-
+
|- align="center"
||Sneaking||1
+
||'''1'''||Sneaking||'''12'''||Flying
|-
+
|- align="center" style="background-color:#F1F1F1;"
||Walking||2
+
||'''2'''||Walking||'''13'''||LyingDown
|-
+
|- align="center"
||Running||3
+
||'''3'''||Running||'''14'''||Sitting
|-
+
|- align="center" style="background-color:#F1F1F1;"
||Kneeling||4
+
||'''4'''||Kneeling||'''15'''||SkillAnimating
|-
+
|- align="center"
||CrouchSneaking||5
+
||'''5'''||CrouchSneaking||'''16'''||DrivingVehicle
|-
+
|- align="center" style="background-color:#F1F1F1;"
||CrouchWalking||6
+
||'''6'''||CrouchWalking||'''17'''||RidingCreature
|-
+
|- align="center"
||Prone||7
+
||'''7'''||Prone||'''18'''||KnockedDown
|-
+
|- align="center" style="background-color:#F1F1F1;"
||Crawling||8
+
||'''8'''||Crawling||'''19'''||Incapacitated
|-
+
|- align="center"
||ClimbingStationary||9
+
||'''9'''||ClimbingStationary||'''20'''||Dead
|-
+
|- align="center" style="background-color:#F1F1F1;"
||Climbing||10
+
|| || ||'''21'''||Blocking
|-
+
||Hovering||11
+
|-
+
||Flying||12
+
|-
+
||LyingDown||13
+
|-
+
||Sitting||14
+
|-
+
||SkillAnimating||15
+
|-
+
||DrivingVehicle||16
+
|-
+
||RidingCreature||17
+
|-
+
||KnockedDown||18
+
|-
+
||Incapacitated||19
+
|-
+
||Dead||20
+
|-
+
||Blocking||21
+
|-
+
 
|}
 
|}
 
|}
 
|}

Revision as of 22:00, 8 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 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:
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 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