Game Opcodes:Stops control (0x14) and starts (0x15).

From FFXIV Classic Wiki
Jump to: navigation, search

Unknown use-case, just setting the page up for now.

Opcode - 0x193
Source - Server
Data Size - 0x08 bytes
Requirements -

Data

Offset Data Type Length Variable Description
0x00 uint32 4 Bytes Switch Depending on the value, performs different tasks.
0x04 uint32 4 Bytes unk

Notes

  • Switch: If value is >= 16 (0x10), value is used in a switch statement. Switch values used: 16 - 22 (0x10 - 0x16) (AKA: 16, 17, 18, 19, 20, 21, 22). Default case is return (not break), meaning values 23 (0x17) and above are not used.
  • If the value is 15 (0xF) or lower, value is passed into a function and used like an index, storing the sum of Timestamp + value of offset 0x04 in some memory location. Assembly: *(_DWORD *)(v4 + 4 * thisOpcodeValue) = timestampSum;
    • Opcode 19 (0x13) is some kind of "ActionCheck" debug message for the int value at offset 0x04.
    • If you pass in -1, it prints what the current "ActionCheck" value is. Otherwise, it sets the "ActionCheck" to the value you pass.
    • Opcode 20 (0x14) Locks UI/Movement
    • Opcode 21 (0x15) Unlocks UI/Movement
      • The other opcodes don't seem to have any noticable effect from what I can tell.
      • They store values which likely accessed later by other things (they weren't accessed simply from sending this packet alone).
      • Since some of them (but not all) utilize Game Header Timestamp, that may impact the methods that end up using the stored data.
  • unk: Delay? Is added to the Timestamp from Game Packet Header. If this value is -1, then it sets the entire value to 0 instead of Timestamp + thisValue.

Visual Layout

Packet Data layout
0x0 0x1 0x2 0x3 0x4 0x5 0x6 0x7 0x8 0x9 0xA 0xB 0xC 0xD 0xE 0xF
0x00 Switch unk