Game Opcodes:Set Actor SubState

From FFXIV Classic Wiki
Revision as of 09:32, 5 September 2018 by Ioncannon (talk | contribs) (Visual Layout)
Jump to: navigation, search

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 substatBreakage Turns off and on the parts 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 1 Bytes substatChant Sets the casting animation for a model's left and right hands. HiNibble: Left hand, LoNibble: Right hand.
0x02 lo nibble 1/2 Bytes substatGuard Sets the guarding animation for a model's left or right hands. Used for when guarding was manual. Bit0: Right Hand, Bit1: Left Hand.
0x02 hi nibble 1/2 Bytes substatModeFlags Seems to allocate certain bits for flags starting from the most sig bit.
0x03 hi/lo nibble 0x1 Bytes substatWaste Dims the main weapon to signify damage. Unused in retail. Values go from 0-3, only HiNibble changes.
0x04 byte 0x1 Bytes substatMode Sets various passive graphical options for a model. Eg: Ifrit's Plumes, his glow, and HellFire. Seems to act like bitflags.
0x05 byte 0x1 Bytes unknown
0x06 byte 0x1 Bytes substatMotionPack Sets the idle animation for this actor. Used by most event NPCs. Seems to only open "<model>/cmn/fid/<mpackID>" animations.

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 mode unknown motionPack