7eyes.2da
After the header rows (
2DA V1.0
, *
, STATE
, STRREF
, 1
, 2
, etc...), each row represents a parameter2
value for opcode #335 starting at 0
, but the file still functions without opcode #335, it does not care how the spellstate gets set, only that it is set.- Column 0 is an arbitrary label – has no real function, can be duplicate.
- Column 1 is the spellstate that must be set to activate this row.
- Column 2 is the string reference (dialog.tlk) that will be displayed when the row triggers (for each effect it triggers on).
While the row is active (i.e., the spellstate is set), all effects it blocks will instead trigger the
STRREF
feedback message, and do nothing else.Later columns list a mix of 4 possible values to represent the effects it will block:
*
: (placeholder/nothing) some 2DA files need filled columns, so empty columns use one of these.RESREF
: file resource (SPWI605 SPWI713 SPWI912 SPPR511 SPPR734
etc...) – blocks all effects from that resource.integer
: opcode (38 45 74 80 109
etc...) – blocks all effects of that opcode, but not those attached through opcode #177 (or opcode #283)integer*value
: opcode + 'parameter2' value (12*0x200000
) (damage – poison); value can be integer or hexadecimal format. Blocks all effects of both that opcode and parameter2 value, but not those attached through opcode #177 (or opcode #283).
In IWD:EE we have:
2DA V1.0 * STATE STRREF 1 2 3 4 5 6 7 8 9 EYEMIND 48 21654 3 5 24 76 128 SPWI411 SPPR102 SPPR311 SPPR716 EYESWORD 49 21653 12*0 12*0x800000 12*0x100000 12*0x1000000 12*0x8000000 * * * * EYEMAGE 50 21652 12*0x80000 12*0x40000 12*0x20000 12*0x10000 12*0x400000 * * * * EYEVENOM 51 21651 12*0x200000 25 * * * * * * * EYESPIRIT 52 21650 SPWI605 SPWI713 SPWI912 SPPR511 SPPR734 * * * * EYEFORTITUDE 53 21649 38 45 74 80 109 175 210 * * EYESTONE 54 21648 134 * * * * * * * *
Important:
The inability to block effects through op#177/#283 is a reported bug.
Note:
When a row triggers to block an effect, it will also block all effects of that resource that follow after it, but not any effects that precede it. The feedback
For instance, suppose an active row were setup to block opcode #58 (Dispel effects), and Dispel Magic were cast on them:
STRREF
is however only displayed for each effect it is actually listed to block.For instance, suppose an active row were setup to block opcode #58 (Dispel effects), and Dispel Magic were cast on them:
- It would still remove portrait icon
Deaf
and Cure Deafness, as they precede opcode #58. - It would display the feedback
STRREF
once, for the single opcode #58 effect, blocking the dispel effect. - The remaining effects after opcode #58 would also be blocked, but would not cause more feedback messages for being blocked.