Jump to content

Spell Issues?


SimDing0

Recommended Posts

I'm slowly working through these. I'm about midway through the first document--fixes and notes follow.

 

Comet

Report: Sleep duration listed as 1d4 rounds, actually fixed to 3 rounds

Action: Confirmed and fixed.

 

Dragon's Breath

Report: Should be no save v. sleep; save is currently made at -10

Action: Descript indicates a normal save is allowed. Removed -10 penalty for sleep effect. Added Display Portrait Icon: Sleep as well.

 

Improved Alacrity

Report: Should be non-disspellable.

Action: Nothig in descript to corroborate this. No action.

 

Energy Blades

Report: Power level is incorrect (6) and end of spell sound plays even if blades are used

Action: Corrected power level for both priest and mage versions. Left end of spell sound intact as there's no way to reliably determine if it's needed or not.

 

Bigby's Crushing Hand

Report: Power level was incorrect on some effects, second round save was wrong

Action: Confirmed and fixed, though the report indicates that the second round save should be -2--per descript, there's no penalty. Also caught and corrected additional bug: all saves should be against petrification, per descript.

 

Black Blade of Disaster

Report: Struck targets failing saves should be disintegrated, not killed

Action: Confirmed and fixed

 

Energy Drain

Report: Lighting effect not ignoring MR, as other effects do

Action: Confirmed and fixed.

 

Meteor Swarm

Report: Duration should be four rounds, not three

Action: Confirmed and fixed

 

Chain Contingency

Report: Casting time should be one turn, not instant

Action: Current casting time is one round[/]. One turn seems extreme--I'd be content to raise this to three rounds to mitigate the exploit of casting this mid-combat. No action taken yet.

 

Gate

Report: Range should be visual sight; demon's weapon should be +4

Action: Corrected range. Demon's weapon is p3-12m4.itm, which by Bioware's naming convention means it's supposed to be a piercing weapon of 3-12 damage with 4 enchantment. Enchantment is indeed incorrect and fixed.

 

Spellstrike

Report: Description does not list all spells removed

Action: Confirmed, revised descript

 

Symbol, Death

Report: Casting time is incorrect

Action: Already fixed

 

Symbol, Stun

Report: Casting time is incorrect; sound on on abiity header is incorrect

Action: Casting time already fixed, sound fixed

 

Power Word, Blind

Report: Incorrect radius of effect, affects only enemies (should be everyone), duration is incorrect, missing AC penalty

Action: Corrected duration and target (no longer party-friendly). Radius is correct, though unsure re: AC penalty. Aren't the THAC0 and AC penalties for blindness hardcoded into the blind opcode? Blind is also supposed to have same penalties, and is lacking THAC0 and AC effects.

 

Maze

Report: Range should be touch, maze duration for creatures with INT

Action: Corrected durations. Per descript, range is touch and currently set in the spell as 3 feet--essentally already touch range.

 

Symbol, Fear

Report: Casting time is incorrect

Action: Already fixed

 

Spell Trigger

Report: Casting time is incorrect

Action: Added to Symbol spell patch, as correct casting times are the same

 

Summon Fiend

Report: Glabrezu summoned by this spell is stronger than Pit Fiend summoned by higher level Gate spell

Action: Subjective. Glabrezu has better AC by 2, 100% resistance to acid and cold, immunity to hold and a slight edge in strength (19 v 18/00). Pit Fiend has better saves, THAC0, and level; is immune to +3 weapons (glabrezu only +2); and regenerates. The pit fiend is also summoned for over twice the duration as the glabrezu. No changes made.

 

I'll post more as I get further in.

 

// comet should stun for 1d4 rounds, not a set value of 3 rounds
COPY_EXISTING ~spwi925.spl~ ~override~
 READ_LONG  0x64 "abil_off"
 READ_SHORT 0x68 "abil_num"
 READ_LONG  0x6a "fx_off"
 SET "delta" = 0
 FOR (index = 0; index < abil_num; index = index + 1) BEGIN
   READ_SHORT ("%abil_off%" + 0x1e + (0x28 * "%index%")) "abil_fx_num"
   READ_SHORT ("%abil_off%" + 0x20 + (0x28 * "%index%")) "abil_fx_idx"
   SET "abil_fx_idx" = ("%abil_fx_idx%" + "%delta%")
   WRITE_SHORT ("%abil_off%" + 0x20 + (0x28 * "%index%")) "%abil_fx_idx%"
   FOR (index2 = 0; index2 < abil_fx_num; index2 = index2 + 1) BEGIN
     READ_SHORT ("%fx_off%" +        (0x30 * ("%abil_fx_idx%" + "%index2%"))) "opcode"
     READ_LONG  ("%fx_off%" + 0x08 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "icon"
     PATCH_IF (("%opcode%" = 39) OR (("%opcode%" = 142) AND ("%icon%" = 55))) BEGIN // sleep or stun icon effect
       READ_ASCII ("%fx_off%" +        (0x30 * ("%abil_fx_idx%" + "%index2%"))) "clone" (48) // grab entire fx
       WRITE_LONG ("%fx_off%" + 0x0e + (0x30 * ("%abil_fx_idx%" + "%index2%"))) 6  // duration = round * 1d4
       WRITE_BYTE ("%fx_off%" + 0x12 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) 25 // on roll of 4
       WRITE_BYTE ("%fx_off%" + 0x13 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) 0  // on roll of 4
       FOR (index3 = 2; index3 < 5; index3 = index3 + 1) BEGIN
         INSERT_BYTES            ("%fx_off%" +        (0x30 * ("%abil_fx_idx%" + "%index2%"))) 0x30 // new effect
           WRITE_EVALUATED_ASCII ("%fx_off%" +        (0x30 * ("%abil_fx_idx%" + "%index2%"))) "%clone%" #48
           WRITE_LONG            ("%fx_off%" + 0x0e + (0x30 * ("%abil_fx_idx%" + "%index2%"))) ("%index3%" * 6)         // duration = round * 1d4
           WRITE_BYTE            ("%fx_off%" + 0x12 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) ("%index3%" * 25)        // on roll of (index3 - 1)
           WRITE_BYTE            ("%fx_off%" + 0x13 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) (("%index3%" * 25) - 24) // on roll of (index3 - 1)
       END
       SET "delta" = "%delta%" + 3
       SET "abil_fx_num" = "%abil_fx_num%" + 3
       SET "index2" = "%index2%" + 3
     END
   END
   WRITE_SHORT ("%abil_off%" + 0x1e + (0x28 * "%index%")) "%abil_fx_num%"
 END
 BUT_ONLY_IF_IT_CHANGES
 
// dragon's breath has spurious save penalty vs. sleep, missing sleep portrait icon
COPY_EXISTING ~spwi922.spl~ ~override~
 READ_LONG  0x64 "abil_off"
 READ_SHORT 0x68 "abil_num"
 READ_LONG  0x6a "fx_off"
 SET "delta" = 0
 FOR (index = 0; index < abil_num; index = index + 1) BEGIN
   READ_SHORT ("%abil_off%" + 0x1e + (0x28 * "%index%")) "abil_fx_num"
   READ_SHORT ("%abil_off%" + 0x20 + (0x28 * "%index%")) "abil_fx_idx"
   SET "abil_fx_idx" = ("%abil_fx_idx%" + "%delta%")
   WRITE_SHORT ("%abil_off%" + 0x20 + (0x28 * "%index%")) "%abil_fx_idx%"
   FOR (index2 = 0; index2 < abil_fx_num; index2 = index2 + 1) BEGIN
     READ_SHORT ("%fx_off%" +        (0x30 * ("%abil_fx_idx%" + "%index2%"))) "opcode"
     PATCH_IF ("%opcode%" = 39) BEGIN // sleep
       WRITE_LONG ("%fx_off%" + 0x28 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) 0  // no save penalty
       READ_ASCII ("%fx_off%" +        (0x30 * ("%abil_fx_idx%" + "%index2%"))) "clone" (48) // grab entire fx
       INSERT_BYTES            ("%fx_off%" +        (0x30 * ("%abil_fx_idx%" + "%index2%"))) 0x30 // new effect
         WRITE_EVALUATED_ASCII ("%fx_off%" +        (0x30 * ("%abil_fx_idx%" + "%index2%"))) "%clone%" #48 // clones sleep effect
         WRITE_SHORT           ("%fx_off%" +        (0x30 * ("%abil_fx_idx%" + "%index2%"))) 142 // display portrait icon
         WRITE_LONG            ("%fx_off%" + 0x08 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) 14  // sleep icon
       SET "delta" = "%delta%" + 1
       SET "abil_fx_num" = "%abil_fx_num%" + 1
       SET "index2" = "%index2%" + 1
     END
   END
   WRITE_SHORT ("%abil_off%" + 0x1e + (0x28 * "%index%")) "%abil_fx_num%"
 END
 BUT_ONLY_IF_IT_CHANGES
 
// energy blades
COPY_EXISTING ~sppr721.spl~ ~override~
             ~spwi920.spl~ ~override~
 READ_LONG  0x64 "abil_off"
 READ_SHORT 0x68 "abil_num"
 READ_LONG  0x6a "fx_off"
 READ_LONG  0x34 "level"
 FOR (index = 0; index < abil_num; index = index + 1) BEGIN
   READ_SHORT ("%abil_off%" + 0x1e + (0x28 * "%index%")) "abil_fx_num"
   READ_SHORT ("%abil_off%" + 0x20 + (0x28 * "%index%")) "abil_fx_idx"
   FOR (index2 = 0; index2 < abil_fx_num; index2 = index2 + 1) BEGIN
     WRITE_BYTE ("%fx_off%" + 0x03 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "%level%" // power is wrong in effects
   END
 END
 BUT_ONLY_IF_IT_CHANGES
 
// bigby's crushing hand should be saving against paralyzation; some second round saves are incorrect
COPY_EXISTING ~spwi918.spl~ ~override~
 READ_LONG  0x64 "abil_off"
 READ_SHORT 0x68 "abil_num"
 READ_LONG  0x6a "fx_off"
 FOR (index = 0; index < abil_num; index = index + 1) BEGIN
   READ_SHORT ("%abil_off%" + 0x1e + (0x28 * "%index%")) "abil_fx_num"
   READ_SHORT ("%abil_off%" + 0x20 + (0x28 * "%index%")) "abil_fx_idx"
   FOR (index2 = 0; index2 < abil_fx_num; index2 = index2 + 1) BEGIN
     WRITE_BYTE ("%fx_off%" + 0x03 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) 8 // power is inconsistent in effects
     READ_BYTE ("%fx_off%" + 0x0c + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "timing"
     READ_LONG ("%fx_off%" + 0x0e + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "duration"
     READ_BYTE ("%fx_off%" + 0x24 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "savetype"
     PATCH_IF (("%timing%" = 4) AND ("%duration%" = 12)) BEGIN // round 2 damage
       WRITE_LONG ("%fx_off%" + 0x28 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) 0  // no save penalty
     END
     PATCH_IF ("%savetype%" = 0b00000100) BEGIN // if save v death/poison
       WRITE_BYTE ("%fx_off%" + 0x24 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) 0b00010000 // save v petrification
     END
   END
 END
 BUT_ONLY_IF_IT_CHANGES
 
// black blade o' disaster is supposed to disintegrate, not slay
COPY_EXISTING ~blakblad.itm~ ~override~
 READ_LONG   0x64 "abil_off"
 READ_SHORT  0x68 "abil_num"
 READ_LONG   0x6a "fx_off"
 FOR (index = 0; index < abil_num; index = index + 1) BEGIN // looks through headers
   READ_SHORT ("%abil_off%" + 0x1e + ("%index%" * 0x38)) "abil_fx_num"
   READ_SHORT ("%abil_off%" + 0x20 + ("%index%" * 0x38)) "abil_fx_idx"
   FOR (index2 = 0; index2 < abil_fx_num; index2 = index2 + 1) BEGIN // searches through fx for slay effect
     READ_SHORT ("%fx_off%" +        (("%abil_fx_idx%" + "%index2%") * 0x30)) "opcode"
     PATCH_IF ("%opcode%" = 55) BEGIN // slay
       WRITE_SHORT ("%fx_off%" +        (("%abil_fx_idx%" + "%index2%") * 0x30)) 238 // disintegrate
     END
   END
 END
 BUT_ONLY_IF_IT_CHANGES
 
// energy drain lighting effect is not bypassing MR like all other effects
COPY_EXISTING ~spwi914.spl~ ~override~
 READ_LONG  0x64 "abil_off"
 READ_SHORT 0x68 "abil_num"
 READ_LONG  0x6a "fx_off"
 FOR (index = 0; index < abil_num; index = index + 1) BEGIN
   READ_SHORT ("%abil_off%" + 0x1e + (0x28 * "%index%")) "abil_fx_num"
   READ_SHORT ("%abil_off%" + 0x20 + (0x28 * "%index%")) "abil_fx_idx"
   FOR (index2 = 0; index2 < abil_fx_num; index2 = index2 + 1) BEGIN
     READ_SHORT ("%fx_off%" +        (0x30 * ("%abil_fx_idx%" + "%index2%"))) "opcode"
     PATCH_IF ("%opcode%" = 141) BEGIN // lighting effect
       WRITE_BYTE ("%fx_off%" + 0x0d + (0x30 * ("%abil_fx_idx%" + "%index2%"))) 0
     END
   END
 END
 BUT_ONLY_IF_IT_CHANGES

// meteor swarm should be 4 rounds, per descript
COPY_EXISTING ~metswarm.pro~ ~override~
 WRITE_BYTE 0x216 4 // should last 4 rounds per descript
 
// gate should be visual sight range
COPY_EXISTING ~sppr703.spl~ ~override~
             ~spwi905.spl~ ~override~
 READ_LONG  0x64 "abil_off"
 READ_SHORT 0x68 "abil_num"
 READ_LONG  0x6a "fx_off"
 FOR (index = 0; index < abil_num; index = index + 1) BEGIN
   WRITE_SHORT ("%abil_off%" + 0x0e + (0x28 * "%index%")) 30
 END
 BUT_ONLY_IF_IT_CHANGES
 
// lowest level casting of symbol, stun has inconsistent sound effect; casting times fixed elsewhere
COPY_EXISTING ~spwi914.spl~ ~override~
 READ_LONG  0x64 "abil_off"
 READ_SHORT 0x68 "abil_num"
 READ_LONG  0x6a "fx_off"
 FOR (index = 0; index < abil_num; index = index + 1) BEGIN
   READ_SHORT ("%abil_off%" + 0x1e + (0x28 * "%index%")) "abil_fx_num"
   READ_SHORT ("%abil_off%" + 0x20 + (0x28 * "%index%")) "abil_fx_idx"
   FOR (index2 = 0; index2 < abil_fx_num; index2 = index2 + 1) BEGIN
     READ_SHORT ("%fx_off%" +        (0x30 * ("%abil_fx_idx%" + "%index2%"))) "opcode"
     READ_ASCII ("%fx_off%" + 0x14 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "sound"
     PATCH_IF (("%opcode%" = 174) AND ("%sound%" STRING_COMPARE_CASE "eff_m03" = 0)) BEGIN // sound to be replaced
       WRITE_ASCII ("%fx_off%" + 0x14 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) ~eff_p04~ #8
     END
   END
 END
 BUT_ONLY_IF_IT_CHANGES

STRING_SET 26315 @136 // spellstrike descript
 
// lowest level casting of symbol, stun has inconsistent sound effect; casting times fixed elsewhere
COPY_EXISTING ~spwi815.spl~ ~override~
 READ_LONG  0x64 "abil_off"
 READ_SHORT 0x68 "abil_num"
 READ_LONG  0x6a "fx_off"
 FOR (index = 0; index < abil_num; index = index + 1) BEGIN
   READ_SHORT ("%abil_off%" + 0x1e + (0x28 * "%index%")) "abil_fx_num"
   READ_SHORT ("%abil_off%" + 0x20 + (0x28 * "%index%")) "abil_fx_idx"
   FOR (index2 = 0; index2 < abil_fx_num; index2 = index2 + 1) BEGIN
     READ_SHORT ("%fx_off%" +        (0x30 * ("%abil_fx_idx%" + "%index2%"))) "opcode"
     READ_ASCII ("%fx_off%" + 0x14 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "sound"
     PATCH_IF (("%opcode%" = 174) AND ("%sound%" STRING_COMPARE_CASE "eff_m03" = 0)) BEGIN // sound to be replaced
       WRITE_ASCII ("%fx_off%" + 0x14 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) ~eff_p04~ #8
     END
   END
 END
 BUT_ONLY_IF_IT_CHANGES

// power word blind should also affect party/allies
COPY_EXISTING ~holdsumm.pro~ ~override~
 READ_BYTE  0x200 "flags"
 WRITE_BYTE 0x200 ("%flags%" BAND 0b00001010) // removes ally/self exemptin flags
 BUT_ONLY_IF_IT_CHANGES
 
// maze not lasting as long as specified in descript; patching intmod.2da for int < 9
COPY_EXISTING ~intmod.2da~ ~override~
 SET "dice" = 20
 FOR (index = 3; index < 12; index = index + 1) BEGIN
   SET_2DA_ENTRY_LATER ~intmod~ "%index%" 4 "%dice%"
   PATCH_IF ("%index%" = 5) BEGIN
     SET "dice" = 10
   END ELSE
   PATCH_IF ("%index%" = 8) BEGIN
     SET "dice" = 5
   END
 END
 SET_2DA_ENTRIES_NOW ~intmod~ 1
 BUT_ONLY_IF_IT_CHANGES

// by Bioware naming convention, this item should be 4 enchantment
COPY_EXISTING ~p3-12m4.itm~ ~override~
 WRITE_LONG 0x60 4

Link to comment

I had worked through the initial list. Some of his stuff is based on the assumption that the descriptions are accurate, which I definitely disagree with. Common sense rules the day at the Friendly Arm.

 

For Comet and Dragon's Breath, I didn't change the sleep effect. IIRC, the way it's implemented, this is more of a "knocked off your feet" compliment to the wing buffet effect, so no changes were necessary (it doesn't look as if it was ever intended for a character to just sleep without getting the wing buffet).

 

RE: Power

I have no idea what this field does, but I couldn't confirm that it ever affects anything. I tried casting a spell with effects of varying power values (from 1-9), and Dispel Magic was always all or nothing (if dispel was successful, *all* effects were removed, regardless of whether they were power 1 or power 9). I'm not for or against changing it, but it could be something to ignore if the only change to a file is going to be making the power value for all effects consistent.

 

Does anybody know what the power field is used for?

 

I will never support having a casting time > 9. I also don't know if the contingency and trigger casting durations even work right in ToB (I know there's one where the 2DA fires immediately, regardless of the casting speed).

Link to comment
For Comet and Dragon's Breath, I didn't change the sleep effect. IIRC, the way it's implemented, this is more of a "knocked off your feet" compliment to the wing buffet effect, so no changes were necessary (it doesn't look as if it was ever intended for a character to just sleep without getting the wing buffet).

 

Yeah, they're definitely linked. With Comet I don't see any reason why we still can't have the sleep effect range over 1d4 rounds instead of a set value of 3 rounds. For DB, the change will actually make the sleep effect match the save on the wing buffet effect.

 

As for descriptions and intent... unless I see a strong, compelling reason to differ from the description I think we should generally take the descriptions as the intent of the spell. I know we agree that descriptions are certainly not the end-all be-all, we just differ at what point they can be ignored. :D

Link to comment

// bigby's crushing hand should be saving against paralyzation; some second round saves are incorrect

 

-- Saving Throw vs. Paralyzation, Poison, Death Magic *is* save vs. death, not petrification/polymorph

 

// lowest level casting of symbol, stun has inconsistent sound effect; casting times fixed elsewhere

 

-- You're patching Energy Drain, not Symbol, Fear (SPWI811)

 

// lowest level casting of symbol, stun has inconsistent sound effect; casting times fixed elsewhere

 

-- You're patching Power Word, Blind, not Symbol, Stun (SPWI816)

Link to comment
// bigby's crushing hand should be saving against paralyzation; some second round saves are incorrect

 

-- Saving Throw vs. Paralyzation, Poison, Death Magic *is* save vs. death, not petrification/polymorph

 

Fixed/

 

// lowest level casting of symbol, stun has inconsistent sound effect; casting times fixed elsewhere

 

-- You're patching Energy Drain, not Symbol, Fear (SPWI811)

 

I corrected this to Symbol, Stun before alpha 7, but it appears both Symbol, Stun and Symbol, Fear spells have the same error. Added spwi811 to the existing spwi816 patch.

 

// lowest level casting of symbol, stun has inconsistent sound effect; casting times fixed elsewhere

 

-- You're patching Power Word, Blind, not Symbol, Stun (SPWI816)

Also caught before alpha 7.

Link to comment

Bigby's Patching Hand is incorrect. The structure of the spell is

ROUND 1:
 Hold1 (save -4)
 Damage 2d10
ROUND 2:
 if Hold1 (save -4)
Damage 3d10
 Hold2 (save -2)
ROUND 3:
 if Hold2 (save -2)
Damage 4d10

The only fixes the spell needs is to set the powers to 9, the 3d10 damage effect should be saving at -4 (not -2), and the duration of the final expiry sound (save -2) should be 12. (My saves were right, although it took just as long verifying as it did when I originally went through the spell way back when, but I missed the sound duration until now, sigh.)

Link to comment

Took me a bit to cotton on to the sound issue--they should be playing as the hold effects expire, not when they begin.

 

// bigby's crushing hand fixes second round damge save penalty wrong, sounds playing at wrong times
COPY_EXISTING ~spwi918.spl~ ~override~
 READ_LONG  0x64 "abil_off" ELSE 0
 READ_SHORT 0x68 "abil_num" ELSE 0
 READ_LONG  0x6a "fx_off" ELSE 0
 FOR (index = 0; index < abil_num; index = index + 1) BEGIN
READ_SHORT ("%abil_off%" + 0x1e + (0x28 * "%index%")) "abil_fx_num"
READ_SHORT ("%abil_off%" + 0x20 + (0x28 * "%index%")) "abil_fx_idx"
FOR (index2 = 0; index2 < abil_fx_num; index2 = index2 + 1) BEGIN
  WRITE_BYTE ("%fx_off%" + 0x03 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) 9 // power is inconsistent in effects
  READ_SHORT ("%fx_off%" +		(0x30 * ("%abil_fx_idx%" + "%index2%"))) "opcode"
  READ_BYTE  ("%fx_off%" + 0x0c + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "timing"
  READ_LONG  ("%fx_off%" + 0x0e + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "duration"
  PATCH_IF (("%opcode%" = 12) AND ("%duration%" = 6)) BEGIN // second round 3d10 damage
	WRITE_LONG ("%fx_off%" + 0x28 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) (0 - 4)  // -4 save penalty
  END
  PATCH_IF (("%opcode%" = 174) AND ("%timing%" = 0)) BEGIN // sound effect for first round hold
	WRITE_BYTE ("%fx_off%" + 0x0c + (0x30 * ("%abil_fx_idx%" + "%index2%"))) 4 // delay/permanent
	WRITE_LONG ("%fx_off%" + 0x0e + (0x30 * ("%abil_fx_idx%" + "%index2%"))) 6 // at end of first round
  END
  PATCH_IF (("%opcode%" = 174) AND ("%timing%" = 3)) BEGIN // sound effect for second round hold
	WRITE_BYTE ("%fx_off%" + 0x0c + (0x30 * ("%abil_fx_idx%" + "%index2%")))  4 // delay/permanent
	WRITE_LONG ("%fx_off%" + 0x0e + (0x30 * ("%abil_fx_idx%" + "%index2%"))) 12 // at end of second round
  END
END
 END
 BUT_ONLY_IF_IT_CHANGES

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...