Difference between revisions of "Game Opcodes:Set Actor Position"

From FFXIV Classic Wiki
Jump to: navigation, search
m (Added info about a conditional regarding floatingHeight.)
 
(36 intermediate revisions by 2 users not shown)
Line 3: Line 3:
 
:; Opcode - 0x0CE
 
:; Opcode - 0x0CE
 
:; Source - Server
 
:; Source - Server
:; Data Size - 48 bytes
+
:; Data Size - 0x28 bytes
 
:; Requirements - None
 
:; Requirements - None
  
Line 17: Line 17:
 
| 0x00 || uint32 || 4 Bytes || unknown ||  
 
| 0x00 || uint32 || 4 Bytes || unknown ||  
 
|-
 
|-
| 0x04 || uint32 || 4 Bytes || actorID || The actor ID that this applies to.
+
| 0x04 || uint32 || 4 Bytes || actorID || The actor ID that this applies to. If it's the player, it is set to 0x00000000.
 
|-
 
|-
 
| 0x08 || float || 4 Bytes || xPosition || The X position of the spawning actor.
 
| 0x08 || float || 4 Bytes || xPosition || The X position of the spawning actor.
Line 26: Line 26:
 
|-
 
|-
 
| 0x14 || float || 4 Bytes || rotation || The rotation of the spawning actor.
 
| 0x14 || float || 4 Bytes || rotation || The rotation of the spawning actor.
 +
|-
 +
| 0x18 || float || 4 Bytes || unknown||
 +
|-
 +
| 0x1C || float || 4 Bytes || floatingHeight || The distance from the yPosition to offset the mob at. Require setGroundOn to be true in the class script. Used for Bombs, Imps, etc.
 +
|-
 +
| 0x20 || float || 4 Bytes || unknown||
 
|-
 
|-
 
| 0x24 || uint16 || 2 Bytes || spawnType || The animation to play when this actor spawns.
 
| 0x24 || uint16 || 2 Bytes || spawnType || The animation to play when this actor spawns.
Line 34: Line 40:
 
== Notes ==
 
== Notes ==
  
== Visual Layout ==
+
== Spawn Types ==
 +
 
 +
The following spawn types were discovered through testing and confirmed in the assembly at <code>0x58B2D7</code>. What each does hasn't been 100% confirmed. These were tested on the player actor, some are specifically for mobs.
  
{| class="wikitable" style="border:1px solid black; text-align:center;"
+
{| class="wikitable sortable"
| colspan=17 | Packet Data layout
+
! width="50px" style="text-align: center; font-size: 14px;" | Value
 +
! style="text-align: center; font-size: 14px;" | Description
 +
|-
 +
| 0x01 || Fades to load, stays on loading screen.
 +
|-
 +
| 0x02 || Fades out/in, plays duty teleport in animation.
 +
|-
 +
| 0x03 || Fades out/in, plays duty teleport in animation with a different sound.  Used by Retainers.
 +
|-
 +
| 0x04 || Fades out/in, doesn't work on players (black screen). On mobs it shows the duty teleport in animation.
 +
|-
 +
| 0x05 || Fades out/in, plays a yellow animation.
 +
|-
 +
| 0x06 || Same as 0x02.
 +
|-
 +
| 0x07 || Fades out/in, plays a "light" animation.
 +
|-
 +
| 0x08 || Same as 0x02.
 +
|-
 +
| 0x09 || Same as 0x02.
 +
|-
 +
| 0x0A || Same as 0x02.
 +
|-
 +
| 0x0F || Fades out/in, no animation is played.
 +
|-
 +
| 0x10 || Fades to load, stays on loading screen. This is used to lock the loading screen when entering Ifrit.
 +
|-
 +
| 0x11 || Quick fade out/in, no animation is played. Does not show loading graphic.
 +
|-
 +
| 0x12 || Fades player out/in. On fade in, textID <code>52036</code> is displayed ("You were removed from the instance due to connectivity issues.").
 
|-
 
|-
|
+
| 0x13 || If the areaMaster has _isWarpRideChocobo() == true, on fade in textID <code>25248</code> is displayed ("You obtain a key item: a chocobo whistle.").
! 0x0 !! 0x1 !! 0x2 !! 0x3 !! 0x4 !! 0x5 !! 0x6 !! 0x7 !! 0x8 !! 0x9 !! 0xA !! 0xB !! 0xC !! 0xD !! 0xE !! 0xF
 
 
|-
 
|-
! 0x00
+
| 0x14 || If rental properties are set by the [[Game Opcodes:Set Chocobo Ride|Set Chocobo Ride]] packet; the UI will update to show the timer and notification. If the player does not have a chocobo, the mount/dismount button will appear while riding.
| colspan="4" style="background:#CEE0F2" | '''unknown'''
 
| colspan="4" style="background:#8FA6E8" | '''actorID'''
 
| colspan="4" style="background:#8FA6E8" | '''xPosition'''
 
| colspan="4" style="background:#CEE0F2" | '''yPosition'''
 
 
|-
 
|-
! 0x10
+
| 0x15 || Same as 0x10.
| colspan="4" style="background:#8FA6E8" | '''zPosition'''
 
| colspan="4" style="background:#8FA6E8" | '''rotation'''
 
| 00 || 00 || 00 || 00 || 00 || 00 || 00 || 00
 
 
|-
 
|-
! 0x20
+
| 0x16 || Nothing happens, movement update is also ignored.
 
|-
 
|-
| 00 || 00 || 00 || 00
+
| 0x17 || Long fade out. If areaMaster has isInstanceRaid() == true, on fade in textID <code>34270</code> is displayed ("You are sucked into the shifting sands...").
| colspan="2" style="background:#8FA6E8" | '''spawnType'''
 
| colspan="2" style="background:#CEE0F2" | '''isPlayerZoning'''
 
| 00 || 00 || 00 || 00 | 00 || 00 || 00 || 00 | 00 || 00 || 00 || 00
 
! 0x30
 
 
|-
 
|-
 +
| 0x18 || Fades player out/in. On fade in, textID <code>51139</code> is displayed ("You feel unsettled after the nightmare...").
 
|}
 
|}
  
 +
== Visual Layout ==
  
 
{| class="wikitable" style="border:1px solid black; text-align:center;"
 
{| class="wikitable" style="border:1px solid black; text-align:center;"
| colspan=17 | markerData layout
+
| colspan=17 | Packet Data layout
 
|-
 
|-
 
|
 
|
Line 71: Line 98:
 
|-
 
|-
 
! 0x00
 
! 0x00
| colspan="4" style="background:#C0E8A7" | '''playerID[0]'''
+
| colspan="4" style="background:#CEE0F2" | '''unknown'''
| 00 || 00 || 00 || 00
+
| colspan="4" style="background:#8FA6E8" | '''actorID'''
| colspan="4" style="background:#f1cbff" | '''unknown[0]'''
+
| colspan="4" style="background:#8FA6E8" | '''xPosition'''
| 00 || 00 || 00 || 00
+
| colspan="4" style="background:#8FA6E8" | '''yPosition'''
 
|-
 
|-
 
! 0x10
 
! 0x10
| 00 || 00 || 00 || 00
+
| colspan="4" style="background:#8FA6E8" | '''zPosition'''
| colspan="4" style="background:#ffb3ba" | '''playerX[0]'''
+
| colspan="4" style="background:#8FA6E8" | '''rotation'''
| colspan="4" style="background:#eedfcc" | '''playerY[0]'''
+
| colspan="4" style="background:#CEE0F2" | '''unknown'''
| colspan="4" style="background:#fdf5e6" | '''playerZ[0]'''
+
| colspan="4" style="background:#8FA6E8" | '''floatingHeight'''
 
|-
 
|-
 
! 0x20
 
! 0x20
| colspan="4" style="background:#f0f8ff" | '''playerO[0]'''
+
| colspan="4" style="background:#CEE0F2" | '''unknown'''
| 00 || 00 || 00 || 00 || || || || || || || ||
+
| colspan="2" style="background:#8FA6E8" | '''spawnType'''
 +
| colspan="2" style="background:#8FA6E8" | '''isPlayerZoning'''
 
|}
 
|}
 
 
  
 
[[Category:Unfinished]]
 
[[Category:Unfinished]]

Latest revision as of 16:52, 12 December 2022

Sets the spawn parameters for an actor that was just instantiated.

Opcode - 0x0CE
Source - Server
Data Size - 0x28 bytes
Requirements - None

Data

Offset Data Type Length Variable Description
0x00 uint32 4 Bytes unknown
0x04 uint32 4 Bytes actorID The actor ID that this applies to. If it's the player, it is set to 0x00000000.
0x08 float 4 Bytes xPosition The X position of the spawning actor.
0x0C float 4 Bytes yPosition The Y position of the spawning actor.
0x10 float 4 Bytes zPosition The Z position of the spawning actor.
0x14 float 4 Bytes rotation The rotation of the spawning actor.
0x18 float 4 Bytes unknown
0x1C float 4 Bytes floatingHeight The distance from the yPosition to offset the mob at. Require setGroundOn to be true in the class script. Used for Bombs, Imps, etc.
0x20 float 4 Bytes unknown
0x24 uint16 2 Bytes spawnType The animation to play when this actor spawns.
0x26 uint16 2 Bytes isZoningPlayer This has to be 1 if the actor is a player being zoned.

Notes

Spawn Types

The following spawn types were discovered through testing and confirmed in the assembly at 0x58B2D7. What each does hasn't been 100% confirmed. These were tested on the player actor, some are specifically for mobs.

Value Description
0x01 Fades to load, stays on loading screen.
0x02 Fades out/in, plays duty teleport in animation.
0x03 Fades out/in, plays duty teleport in animation with a different sound. Used by Retainers.
0x04 Fades out/in, doesn't work on players (black screen). On mobs it shows the duty teleport in animation.
0x05 Fades out/in, plays a yellow animation.
0x06 Same as 0x02.
0x07 Fades out/in, plays a "light" animation.
0x08 Same as 0x02.
0x09 Same as 0x02.
0x0A Same as 0x02.
0x0F Fades out/in, no animation is played.
0x10 Fades to load, stays on loading screen. This is used to lock the loading screen when entering Ifrit.
0x11 Quick fade out/in, no animation is played. Does not show loading graphic.
0x12 Fades player out/in. On fade in, textID 52036 is displayed ("You were removed from the instance due to connectivity issues.").
0x13 If the areaMaster has _isWarpRideChocobo() == true, on fade in textID 25248 is displayed ("You obtain a key item: a chocobo whistle.").
0x14 If rental properties are set by the Set Chocobo Ride packet; the UI will update to show the timer and notification. If the player does not have a chocobo, the mount/dismount button will appear while riding.
0x15 Same as 0x10.
0x16 Nothing happens, movement update is also ignored.
0x17 Long fade out. If areaMaster has isInstanceRaid() == true, on fade in textID 34270 is displayed ("You are sucked into the shifting sands...").
0x18 Fades player out/in. On fade in, textID 51139 is displayed ("You feel unsettled after the nightmare...").

Visual Layout

Packet Data layout
0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF
0x00 unknown actorID xPosition yPosition
0x10 zPosition rotation unknown floatingHeight
0x20 unknown spawnType isPlayerZoning