Difference between revisions of "Game Opcodes:Set Actor SubState"
From FFXIV Classic Wiki
(→Data) |
m (Added a note to the chant tag) |
||
(23 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
− | Sets the actor's | + | Sets the actor's SubState parameters. These effect various passive animations. |
:; Opcode - 0x144 | :; Opcode - 0x144 | ||
Line 15: | Line 15: | ||
! style="text-align: center; font-size: 14px;" | Description | ! style="text-align: center; font-size: 14px;" | Description | ||
|- | |- | ||
− | | 0x00 || | + | | 0x00 || bitfield || 0x1 Bytes || breakage || Turns off and on the partsBreak flags for the model. Used to disable body parts as they are damaged (IE: Ifrit's Horn). Up to 8 flags. |
|- | |- | ||
− | | | + | | 0x01 || hi/lo nibble || 0x1 Bytes || chant || Sets the casting animation for a model's left and right hands. HiNibble: Right hand, LoNibble: Left hand. You can check the bid file of a monster to find the animations. Also sets the state of the crafting ball. |
|- | |- | ||
− | | | + | | 0x02 || hi nibble || 1/2 Bytes || modeNumBools || Allocates a number of bits for bitfield use in the mode field. Doesn't seem to effect gameplay, rather used for debugging purposes (cmdDev). |
|- | |- | ||
− | | | + | | 0x02 || lo nibble || 1/2 Bytes || guard || Sets the guarding animation for a model's left or right hands. Used for when guarding was manual. Bit0: Right Hand, Bit1: Left Hand. |
|- | |- | ||
− | | | + | | 0x03 || byte || 0x1 Bytes || waste || Dims the main weapon to signify damage. Unused in retail. Values go from 0-3, only HiNibble changes anything. Used to change the amount of arrows appearing in a quiver. |
|- | |- | ||
− | | | + | | 0x04 || bitfield/value || 0x1 Bytes || mode || Sets various passive graphical options for a model. Eg: Ifrit's Plumes, his glow, and HellFire. Can be a value or a bitfield, but the latter seems to be used 99% of the time. |
+ | |- | ||
+ | | 0x05 || byte || 0x1 Bytes || unknown || | ||
+ | |- | ||
+ | | 0x06 || uint16 || 0x2 Bytes || motionPack || Sets the idle animation for this actor. Used by most event NPCs. Seems to only open "<model>/cmn/fid/<mpackID>" animations. Strangely the lua "get" method only returns a byte. | ||
|} | |} | ||
+ | |||
+ | == Notes == | ||
+ | |||
+ | *_getSubStatObject: Returns the second byte; 2 values up to 3 for the HiByte, and a third one just for the LoByte. Labeled: State1, State2, ExtraState. | ||
+ | |||
+ | *_getSubStatMode: Can be a mix of booleans and a number. Configured by byte 0x3's HiNibble. It sets a value from 0-8, allocating the high area of byte 0x6 for bools. The remaining is for a number. This is the command debugger text: | ||
+ | |||
+ | // devc set [target] mode [number] [booleans] | ||
+ | Set ActorSubStat-Mode of [Target] to [number], [booleans] | ||
+ | [number] is a numerical part, [booleans] is a boolean part | ||
+ | It is specified as 01011. Specify a hyphen (-) when not specified. | ||
+ | Example) // dev set <t> mode 30 01011 | ||
+ | Example) // dev set <t> mode - 1110000 | ||
== Visual Layout == | == Visual Layout == | ||
Line 34: | Line 51: | ||
|- | |- | ||
| | | | ||
− | ! 0x0 !! 0x1 !! 0x2 !! 0x3 !! 0x4 !! 0x5 !! 0x6 !! 0x7 | + | ! 0x0 !! 0x1 !! colspan="2" | 0x2 !! 0x3 !! 0x4 !! 0x5 !! 0x6 !! 0x7 |
|- | |- | ||
! 0x00 | ! 0x00 | ||
− | | colspan=" | + | | colspan="1" style="background:#8FA6E8" | '''breakage''' |
+ | | colspan="1" style="background:#8FA6E8" | '''chant''' | ||
+ | | colspan="1" style="background:#8FA6E8" | '''modeBools''' | ||
+ | | colspan="1" style="background:#8FA6E8" | '''guard''' | ||
+ | | colspan="1" style="background:#8FA6E8" | '''waste''' | ||
+ | | colspan="1" style="background:#8FA6E8" | '''mode''' | ||
+ | | colspan="1" style="background:#8FA6E8" | '''unknown''' | ||
+ | | colspan="2" style="background:#8FA6E8" | '''motionPack''' | ||
|} | |} | ||
[[Category:Unfinished]] | [[Category:Unfinished]] |
Latest revision as of 01:01, 25 March 2020
Sets the actor's SubState parameters. These effect various passive animations.
- Opcode - 0x144
- Source - Server
- Data Size - 0x28 bytes
- Requirements - Must play an Battle Effect packet after for animations to take effect.
Data
Offset | Data Type | Length | Variable | Description |
---|---|---|---|---|
0x00 | bitfield | 0x1 Bytes | breakage | Turns off and on the partsBreak flags for the model. Used to disable body parts as they are damaged (IE: Ifrit's Horn). Up to 8 flags. |
0x01 | hi/lo nibble | 0x1 Bytes | chant | Sets the casting animation for a model's left and right hands. HiNibble: Right hand, LoNibble: Left hand. You can check the bid file of a monster to find the animations. Also sets the state of the crafting ball. |
0x02 | hi nibble | 1/2 Bytes | modeNumBools | Allocates a number of bits for bitfield use in the mode field. Doesn't seem to effect gameplay, rather used for debugging purposes (cmdDev). |
0x02 | lo nibble | 1/2 Bytes | guard | Sets the guarding animation for a model's left or right hands. Used for when guarding was manual. Bit0: Right Hand, Bit1: Left Hand. |
0x03 | byte | 0x1 Bytes | waste | Dims the main weapon to signify damage. Unused in retail. Values go from 0-3, only HiNibble changes anything. Used to change the amount of arrows appearing in a quiver. |
0x04 | bitfield/value | 0x1 Bytes | mode | Sets various passive graphical options for a model. Eg: Ifrit's Plumes, his glow, and HellFire. Can be a value or a bitfield, but the latter seems to be used 99% of the time. |
0x05 | byte | 0x1 Bytes | unknown | |
0x06 | uint16 | 0x2 Bytes | motionPack | Sets the idle animation for this actor. Used by most event NPCs. Seems to only open "<model>/cmn/fid/<mpackID>" animations. Strangely the lua "get" method only returns a byte. |
Notes
- _getSubStatObject: Returns the second byte; 2 values up to 3 for the HiByte, and a third one just for the LoByte. Labeled: State1, State2, ExtraState.
- _getSubStatMode: Can be a mix of booleans and a number. Configured by byte 0x3's HiNibble. It sets a value from 0-8, allocating the high area of byte 0x6 for bools. The remaining is for a number. This is the command debugger text:
// devc set [target] mode [number] [booleans] Set ActorSubStat-Mode of [Target] to [number], [booleans] [number] is a numerical part, [booleans] is a boolean part It is specified as 01011. Specify a hyphen (-) when not specified. Example) // dev set <t> mode 30 01011 Example) // dev set <t> mode - 1110000
Visual Layout
Game Opcode layout | ||||||||||||||||
0x0 | 0x1 | 0x2 | 0x3 | 0x4 | 0x5 | 0x6 | 0x7 | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x00 | breakage | chant | modeBools | guard | waste | mode | unknown | motionPack |