Difference between revisions of "UpdateTransformMessage"
From SWGANH Wiki
(→Struct) |
(→Struct) |
||
(20 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
− | + | {{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}}||''' | + | |{{short}}||'''Op Count''' |
|- | |- | ||
|{{int}}||'''Opcode''' | |{{int}}||'''Opcode''' | ||
Line 25: | Line 26: | ||
|- | |- | ||
|{{byte}}||'''Direction''' | |{{byte}}||'''Direction''' | ||
+ | |} | ||
|} | |} | ||
Line 41: | Line 43: | ||
:New Position of Object. The value is transformed the following way. | :New Position of Object. The value is transformed the following way. | ||
<pre> | <pre> | ||
− | + | 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); | |
</pre> | </pre> | ||
Line 53: | Line 55: | ||
:Used to distinguish new updates from potential repeats. | :Used to distinguish new updates from potential repeats. | ||
:Incremented by 1 each packet. | :Incremented by 1 each packet. | ||
+ | |||
+ | * '''Posture''': | ||
+ | The byte before direction corresponds to: | ||
+ | |||
+ | {| align="center" | ||
+ | |- | ||
+ | || | ||
+ | {| class="wikitable" | ||
+ | |- align="center" style="background-color:#ffffcc;" | ||
+ | |width="30px"|'''ID'''||width="140px"|'''Name'''||width="30px"|'''ID'''||width="140px"|'''Name''' | ||
+ | |- align="center" | ||
+ | ||'''-1'''||Invalid||'''10'''||Climbing | ||
+ | |- align="center" style="background-color:#F1F1F1;" | ||
+ | ||'''0'''||Standing||'''11'''||Hovering | ||
+ | |- align="center" | ||
+ | ||'''1'''||Sneaking||'''12'''||Flying | ||
+ | |- align="center" style="background-color:#F1F1F1;" | ||
+ | ||'''2'''||Walking||'''13'''||LyingDown | ||
+ | |- align="center" | ||
+ | ||'''3'''||Running||'''14'''||Sitting | ||
+ | |- align="center" style="background-color:#F1F1F1;" | ||
+ | ||'''4'''||Kneeling||'''15'''||SkillAnimating | ||
+ | |- align="center" | ||
+ | ||'''5'''||CrouchSneaking||'''16'''||DrivingVehicle | ||
+ | |- 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 | ||
* '''Direction''': | * '''Direction''': | ||
Line 61: | Line 101: | ||
:This packet needs to be sent frequently to prevent start/stop in a movement stream. | :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. | :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 | :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 | :used (23 vs 21). See them for further detail. The 23 seems to be sent | ||
Line 70: | Line 108: | ||
:count of 21's the occur between a group of 23. The 23 is assumed to be start/end | :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. | :of a chain of movement while the 21 is an update. | ||
− | + | - | |
|valign=top| | |valign=top| | ||
Line 79: | Line 117: | ||
||{{ServerPacket}} | ||{{ServerPacket}} | ||
|- | |- | ||
− | ||{{ | + | ||{{100%}} |
|- | |- | ||
|} | |} | ||
− | |||
|} | |} | ||
− | |||
---- | ---- | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==Sample Packet== | ==Sample Packet== | ||
<pre> | <pre> | ||
− | + | 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
Variable DescriptionsOpperand_Count = 8 Opcode = 1B24F808
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);
The byte before direction corresponds to:
Haven't seen it out side the range of 0..5 yet
:OLD--DATA--Found this to be the posture byte
- |
Tags
|
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