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

From FFXIV Classic Wiki
Jump to: navigation, search
(Visual Layout)
(Visual Layout)
Line 58: Line 58:
 
| colspan="1" style="background:#8FA6E8" | '''modeBools'''
 
| colspan="1" style="background:#8FA6E8" | '''modeBools'''
 
| colspan="1" style="background:#8FA6E8" | '''guard'''
 
| colspan="1" style="background:#8FA6E8" | '''guard'''
 +
| colspan="1" style="background:#8FA6E8" | '''waste'''
 
| colspan="1" style="background:#8FA6E8" | '''mode'''
 
| colspan="1" style="background:#8FA6E8" | '''mode'''
 
| colspan="1" style="background:#8FA6E8" | '''unknown'''
 
| colspan="1" style="background:#8FA6E8" | '''unknown'''

Revision as of 09:40, 5 September 2018

Sets the actor's SubStat 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.
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.
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 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF
0x00 breakage chant modeBools guard waste mode unknown motionPack