Jump to content

Flame Blade


cirerrek

Recommended Posts

// * CLERIC_FLAME_BLADE {2} [spPr206 - 1206]

 

From the description of Flame Blade

 

If the caster successfully hits with the flame blade in melee combat, the creature struck suffers 1d4 points of slashing damage, plus an additional 1d2 + 4 points of fire damage.

 

Based on the actual effects, the damage is the reverse of the description.

 

The blade does 1d2+4 SLASHING dmg

The FIRE dmg is 1d4.

Link to comment

Confirmed, with two other errors. It has an unlisted thac0 bonus and is flagged as magical, though the description explicitly says it's non-magical.

 

// per descript flame blade is non-magical, does 1d4 slashing damage plus 1d2 + 4 fire damage
// actual item is magical, does 1d2 + 4 slashing damage plus 1d4 fire, and has a spurious thac0 bonus
COPY_EXISTING ~fblade.itm~ ~override~
 READ_BYTE  0x18 "flags"
 WRITE_BYTE 0x18 ("%flags%" BAND 0b10111111) // removes magical flag
 READ_LONG  0x64 "abil_off"
 READ_SHORT 0x68 "abil_num"
 READ_LONG  0x6a "fx_off"
 READ_SHORT 0x70 "fx_num"
 FOR (index = 0; index < abil_num; index = index + 1) BEGIN // looks for melee ability header
   READ_BYTE   ("%abil_off%" +        ("%index%" * 0x38)) "type"
   PATCH_IF ("%type%" = 1) BEGIN // melee ability check
     WRITE_SHORT ("%abil_off%" + 0x14 + ("%index%" * 0x38)) 0 // thac0 bonus
     WRITE_SHORT ("%abil_off%" + 0x16 + ("%index%" * 0x38)) 4 // dice size, melee damage
     WRITE_SHORT ("%abil_off%" + 0x1a + ("%index%" * 0x38)) 0 // fixed melee damage
     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 fire damage
       READ_SHORT ("%fx_off%" +        (("%abil_fx_idx%" + "%index2%") * 0x30)) "opcode"
       READ_SHORT ("%fx_off%" + 0x0a + (("%abil_fx_idx%" + "%index2%") * 0x30)) "damage_type"
       PATCH_IF (("%opcode%" = 12) AND ("%damage_type%" = 8)) BEGIN // fire damage
         WRITE_LONG ("%fx_off%" + 0x04 + (("%abil_fx_idx%" + "%index2%") * 0x30)) 4 // fixed fire damage
         WRITE_LONG ("%fx_off%" + 0x20 + (("%abil_fx_idx%" + "%index2%") * 0x30)) 2 // dice size, fire damage
       END
     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...