Jump to content

A small typo in the Barkskin fix code


Recommended Posts

The piece of tp2 code which fixes the Barkskin spell contains a small typo which currently causes the AC bonus to increment at wrong levels. This also results in the inability to obtain AC 1 at level 20. In order to correct this, this line:

 

WRITE_LONG ("%fx_off%" + 0x04 + (("%abil_fx_idx%" + "%index2%") * 0x30)) (6 - (("%min_level%" - 1) / 4)) // ((6 - (caster level/4), per descript

 

should read:

 

WRITE_LONG ("%fx_off%" + 0x04 + (("%abil_fx_idx%" + "%index2%") * 0x30)) (6 - ("%min_level%" / 4)) // ((6 - (caster level/4), per descript

 

And here's the entire block with the fix included:

 

// barkskin AC bonus incorrect at higher levels
COPY_EXISTING ~sppr202.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%" + 0x10 + (0x28 * "%index%")) "min_level"
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%" +		(("%abil_fx_idx%" + "%index2%") * 0x30)) "opcode"
  PATCH_IF ("%opcode%" = 0) BEGIN // ac bonus
	WRITE_LONG ("%fx_off%" + 0x04 + (("%abil_fx_idx%" + "%index2%") * 0x30)) (6 - ("%min_level%" / 4)) // ((6 - (caster level/4), per descript
  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...