devSin Posted April 11, 2005 Share Posted April 11, 2005 Note that in the implentation fields, I've left everything at the engine values, so for example a duration would be 6 rather than 1 round, AoE 256 rather than 30 . I'll note discrepancies when I spot them, though I'm sure I'll probably miss some. Description Implentation SPWI101 - Grease School: Conjuration Conjuration Range: 10 yards 25 (should be 30) Duration: 3 rounds +1 round/level 10 (should be 18 (+6/level if you decide to do that)) Casting Time: 1 9 (should be 1) Area of Effect: 30'x30' square area 256 Saving Throw: Special neg., spells, +2 bonus SPWI102 - Armor School: Conjuration Conjuration Range: 0 1 Duration: 9 hours 3000 (should be 2700) Casting Time: 1 round 9 Area of Effect: caster caster Saving Throw: None none Effect: AC 6 AC 6 SPWI103 - Burning Hands School: Alteration Alteration Range: 5 feet 2 (should be 5) Duration: Instantaneous instant Casting Time: 1 1 Area of Effect: 60 degree arc ? Saving Throw: 1/2 1/2, spells Effect: 1d3 damage +2/level max +10 1d3 +2/level max +10 SPWI104 - Charm Person School: Enchantment/Charm Enchantment Range: Visual range of caster 60 Duration: 5 rounds 30 Casting Time: 1 1 Area of Effect: 1 person 1 person Saving Throw: Neg. neg., spells +3 bonus SPWI105 - Color Spray School: Alteration Alteration Range: 30 feet 15 (should be 30) Duration: Special / 5 rounds 30 Casting Time: 1 1 Area of Effect: 60 degree arc 250 (should be 256) Saving Throw: Special neg., spells -3 penalty, SPWI106 - Blindness School: Illusion Illusion Range: Visual range of caster 40 (should be 60, or alter description) Duration: 10 turns 600 Casting Time: 2 2 Area of Effect: 1 creature 1 creature Saving Throw: Neg. neg., spells SPWI107 - Friends School: Enchantment Enchantment Range: 0 1 Duration: 1d4 rounds +1 round/level 30 +12/2 levels (needs values for levels 2, 4, 6, etc plus change "1d4" in description) Casting Time: 1 1 Area of Effect: caster caster Saving Throw: Special none Effect: +6 CHA +6 CHA SPWI108 - Protection From Petrification School: Abjuration Abjuration Range: 0 1 Duration: 5 turns 300 Casting Time: 1 1 Area of Effect: Target 1 creature Saving Throw: None none SPWI110 - Identify School: Divination Divination Range: 0 1 Duration: Instantaneous This spell seems to be hardcoded, Casting Time: Special as the only ability bears no Area of Effect: 1 item resemblence to the actual effect. Saving Throw: None SPWI111 - Infravision School: Divination Divination Range: Visual range of caster 30 (should be 60, or alter description) Duration: 10 turns 600 Casting Time: Special 1 (don't see how it's particularly special) Area of Effect: 1 Creature 1 creature Saving Throw: None none SPWI112 - Magic Missile School: Evocation Invocation Range: Visual range of caster 50 (should be 60, or alter description) Duration: Instantaneous instant Casting Time: 1 1 Area of Effect: 1 creature 1 creature Saving Throw: None none Effect: 1d4+1 damage/2 levels max 5d4+5 2d2+1 damage /2 levels (description is correct) SPWI113 - Protection From Evil School: Abjuration Abjuration Range: Touch 1 Duration: 2 rounds/level 12/level Casting Time: 1 1 Area of Effect: Creature touched 1 creature Saving Throw: None none SPWI114 - Shield School: Evocation Invocation Range: 0 1 Duration: 5 turns 300 Casting Time: 1 1 Area of Effect: caster caster Saving Throw: None none SPWI115 - Shocking Grasp School: Alteration Alteration Range: Touch 1 Duration: Special 6/level Casting Time: 1 1 Area of Effect: Touched creature self Saving Throw: None none Effect: 1d8 +1/level 1d8 +1/level SPWI116 - Sleep School: Enchantment/Charm Enchantment Range: 30 yards 60 (should be 90 - 3 feet to the yard, not 2) Duration: 5 rounds/level 30/level Casting Time: 1 1 Area of Effect: Special area Saving Throw: Neg. neg., death/poison, -3 penalty SPWI117 - Chill Touch School: Necromancy Necromancy Range: 0 1 Duration: 1 turn 60 Casting Time: 1 1 Area of Effect: The caster self Saving Throw: Neg. neg., spells Effect: 1d8 damage, -2 THAC0 1d8 damage, -2 THAC0 SPWI118 - Chromatic Orb School: Evocation Invocation Range: 30 yards 50 (should be 90) Duration: special / various various, and a couple are wrong. 1st level: should be 6, not 10. 5th level: should be 18, not 20. Casting Time: 1 Area of Effect: One creature Saving Throw: special Effects: 1st level - blind reduces attack rolls, saving throws and AC by 4 (description is wrong) 12th level - 2d16 damage 2d8 damage (effect is wrong) SPWI119 - Larloch's Minor Drain School: Necromancy Necromancy Range: 30 yards 30 (should be 90 - range is feet, not yards) Duration: Special / 1 turn 60 Casting Time: 1 1 Area of Effect: Target creature 1 creature Saving Throw: None none SPWI120 - Reflected Image School: Illusion/Phantasm Illusion Range: 0 1 Duration: 3 rounds + 1/level 18 +1/level Casting Time: 1 1 Area of Effect: Caster self Saving Throw: None none SPWI123 - Find Familiar School: Conjuration/Summoning Conjuration Range: n/a 20 Duration: special 60 Casting Time: 1 round 3 (should be 9) Area of Effect: 1 familiar area Saving Throw: Special none SPWI124 - Nahal's Reckless Dweomer School: Invocation/Evocation Conjuration (worth fixing?) Range: Special 20 Duration: Special permanent Casting Time: 5 3 (should be 5) Area of Effect: Special none Saving Throw: Special none SPWI125 - Spook School: Illusion/Phantasm Illusionist Range: 30 ft. 60 (should be 30) Duration: 3 rounds 18 Casting Time: 1 1 Area of Effect: 1 creature 1 creature Saving Throw: Neg. neg., spells Link to comment
devSin Posted April 11, 2005 Author Share Posted April 11, 2005 Level 2 spells: SPWI201 - Blur School: Illusion/Phantasm Illusion Range: 0 1 Duration: 4 rounds +2 rounds/level 24 +12/level Casting Time: 2 2 Area of Effect: The caster self Saving Throw: None none SPWI202 - Detect Evil School: Divination Divination Range: Visual range of caster 1 Duration: Instant 60 Casting Time: 2 2 Area of Effect: Sight self Saving Throw: None none SPWI203 - Detect Invisibility School: Divination Divination Range: 0 1 Duration: Instant instant Casting Time: 2 2 Area of Effect: 70 foot radius 2000 Saving Throw: None none SPWI205 - Horror School: Necromancy Necromancy Range: 25 yards 40 Duration: 1 turn 18 (should be 60) Casting Time: 2 2 Area of Effect: 30 foot cube 256 Saving Throw: Neg. neg., spells, +2 bonus SPWI206 - Invisibility School: Illusion/Phantasm Illusion Range: Touch 1 Duration: Special / 24 hours 7200 Casting Time: 2 2 Area of Effect: Creature touched creature Saving Throw: None none SPWI207 - Knock School: Alteration Alteration Range: Visual range of caster 20 Duration: Instant instant Casting Time: 1 1 Area of Effect: Locked door or chest creature Saving Throw: None none SPWI208 - Know Alignment School: Divination Divination Range: 10 yards 30 Duration: instant 30 Casting Time: 1 round 2 (should be 9) Area of Effect: 1 creature 1 creature Saving Throw: None none SPWI209 - Luck School: Enchantment/Charm Enchantment Range: 10 yards 15 Duration: 3 rounds 20 (should be 18) Casting Time: 2 2 Area of Effect: 1 creature 1 creature Saving Throw: None none SPWI210 - Resist Fear School: Abjuration Abjuration Range: 10 yards 30 Duration: 1 hour 300 Casting Time: 1 1 Area of Effect: 30' radius 256 Saving Throw: Special none SPWI211 - Melf's Acid Arrow School: Conjuration Conjuration Range: Visual range of caster 60 Duration: Special 6/3 levels Casting Time: 2 3 (should be 2) Area of Effect: 1 target 1 creature Saving Throw: Special none Effect: 2d4/3 levels 2d4/3 levels SPWI212 - Mirror Image School: Illusion/Phantasm Illusion Range: 0 1 Duration: 3 rounds + 1 round/level 18 +6/level Casting Time: 1 1 Area of Effect: Special self Saving Throw: None none SPWI213 - Stinking Cloud School: Evocation Invocation Range: 30 yards 40 Duration: 1 turn duration controlled by projectile, which is 10 Casting Time: 2 2 Area of Effect: 30-foot radius 256 Saving Throw: Special neg., death/poison, +2 bonus Effect: unconscious for 1-2 rounds 9 SPWI214 - Strength School: Alteration Alteration Range: Touch 20 Duration: 1 turn/level 60/level Casting Time: 1 round 2 (should be 9) Area of Effect: Target creature 1 creature Saving Throw: None none SPWI215 - Web School: Evocation Invocation Range: Visual sight of caster 40 Duration: 1 turn duration controlled by projectile, which is 10 Casting Time: 2 2 Area of Effect: Special 256 Saving Throw: Special neg., spells, -2 penalty SPWI217 - Agannazar's Scorcher School: Evocation Invocation Range: 20 yards 15 yards Duration: Instant instant Casting Time: 3 2 (should be 3) Area of Effect: 2-foot by 60-foot jet ? Saving Throw: None none SPWI218 - Ghoul Touch School: Necromancy Necromancy Range: 0 1 Duration: 5 rounds 30 Casting Time: 1 1 Area of Effect: The caster self Saving Throw: Neg. none SPWI219 - Vocalize School: Alteration Alteration Range: 0 1 Duration: 1 turn 60 Casting Time: 2 2 Area of Effect: Caster self Saving Throw: None none SPWI220 - Power Word Sleep School: Conjuration/Summoning Conjuration Range: 30 yards 40 Duration: 5 rounds permanent (err, is this right?) Casting Time: 1 1 Area of Effect: 1 creature 1 creature Saving Throw: None none SPWI221 - Ray of Enfeeblement School: Enchantment/Charm Enchantment Range: Visual sight of caster 40 Duration: 1 round/level 6/level Casting Time: 2 2 Area of Effect: 1 creature 1 creature Saving Throw: Neg. neg., spells SPWI222 - Chaos Shield School: Abjuration Some fields Illusion, others Abjuration Range: 0 0 Duration: 5 rounds +10 rounds/5 levels 30 +60/5 levels Casting Time: 2 2 Area of Effect: caster self Saving Throw: None none SPWI223 - Deafness School: Illusion/Phantasm Illusion Range: 60 yds. 40 Duration: Special permanent Casting Time: 2 2 Area of Effect: 1 creature 1 creature Saving Throw: Neg. neg., spells SPWI224 - Glitterdust School: Conjuration/Summoning Conjuration Range: 10 yds. 20 Duration: 4 rounds 24 Casting Time: 2 2 Area of Effect: 20 ft 256 Saving Throw: Special neg., spells Link to comment
CamDawg Posted April 24, 2005 Share Posted April 24, 2005 I'm slowly starting to work through these. These also incorporate additional fixes from devSin: // grease fixes COPY_EXISTING ~spwi101.spl~ ~override~ WRITE_EVALUATED_ASCII 0x3a ~spwi101c~ // fixes icon 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 // first fix existing effects WRITE_SHORT ("%abil_off%" + 0x0e + ("%index%" * 0x28)) 30 // corrects range READ_SHORT ("%abil_off%" + 0x10) "min_lev" READ_SHORT ("%abil_off%" + 0x1e) "abil_fx_num" READ_SHORT ("%abil_off%" + 0x20) "abil_fx_idx" FOR ("index2" = 0; "%index2%" < "%abil_fx_num%"; "index2" = ("%index2%" + 1)) BEGIN READ_LONG ("%fx_off%" + 0x0e + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "duration" PATCH_IF ("%duration%" > 5) BEGIN // longer than one round WRITE_LONG ("%fx_off%" + 0x0e + (0x30 * ("%abil_fx_idx%" + "%index2%"))) (18 + (6 * "%min_lev%")) // corrects duration END END END PATCH_IF ("%min_lev%" < 20) BEGIN // if abilities don't go to lev 20 READ_ASCII ("%fx_off%" + (0x30 * "%abil_fx_idx%")) "effects" ("%abil_fx_num%" * 0x30) // reads whole block of effects from last ability READ_ASCII ("%abil_off%" + (0x28 * ("%abil_num%" - 1))) "ability" (0x28) // reads last ability FOR ("index" = 20; "%index%" > "%min_lev%"; "index" = ("%index%" - 1)) BEGIN // now extend headers INSERT_BYTES ("%fx_off%" + (0x30 * "%abil_fx_idx%")) ("%abil_fx_num%" * 0x30) // inserts bytes WRITE_EVALUATED_ASCII ("%fx_off%" + (0x30 * "%abil_fx_idx%")) "%effects%" // clones existing effects FOR ("index2" = 0; "%index2%" < "%abil_fx_num%"; "index2" = ("%index2%" + 1)) BEGIN // loop to adjust effects by min level READ_LONG ("%fx_off%" + 0x0e + (0x30 * ("%abil_fx_idx%" + "%abil_fx_num%" + "%index2%"))) "duration" PATCH_IF ("%duration%" > 5) BEGIN // longer than one round WRITE_LONG ("%fx_off%" + 0x0e + (0x30 * ("%abil_fx_idx%" + "%abil_fx_num%" + "%index2%"))) (18 + (6 * "%index%")) // corrects duration END END INSERT_BYTES ("%abil_off%" + 0x28) 0x28 // inserts bytes WRITE_EVALUATED_ASCII ("%abil_off%" + 0x28) "%ability%" // clones existing ability WRITE_SHORT ("%abil_off%" + 0x38) ("%index%") // minimum level WRITE_SHORT ("%abil_off%" + 0x46) "%abil_fx_num%" WRITE_SHORT ("%abil_off%" + 0x48) ("%abil_fx_idx%" + ("%abil_fx_num%" * ("%index%" - 1))) SET "fx_off" = ("%fx_off%" + 0x28) SET "abil_num" = ("%abil_num%" + 1) END WRITE_LONG 0x6a "%fx_off%" WRITE_SHORT 0x68 "%abil_num%" END BUT_ONLY_IF_IT_CHANGES // armor fixes COPY_EXISTING ~spwi102.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 // fix existing effects WRITE_SHORT ("%abil_off%" + 0x12 + ("%index%" * 0x28)) 1 // casting time READ_SHORT ("%abil_off%" + 0x10) "min_lev" READ_SHORT ("%abil_off%" + 0x1e) "abil_fx_num" READ_SHORT ("%abil_off%" + 0x20) "abil_fx_idx" FOR ("index2" = 0; "%index2%" < "%abil_fx_num%"; "index2" = ("%index2%" + 1)) BEGIN READ_LONG ("%fx_off%" + + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "opcode" READ_LONG ("%fx_off%" + 0x0e + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "duration" PATCH_IF ("%opcode%" = 215) BEGIN // play 3d effect opcode WRITE_LONG ("%fx_off%" + 0x0e + (0x30 * ("%abil_fx_idx%" + "%index2%"))) 2 // corrects duration WRITE_ASCII ("%fx_off%" + 0x14 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) ~sparmor2~ #8 // corrects resref END PATCH_IF ("%duration%" > 5) BEGIN // longer than one round WRITE_LONG ("%fx_off%" + 0x0e + (0x30 * ("%abil_fx_idx%" + "%index2%"))) 2700 // corrects duration END END END BUT_ONLY_IF_IT_CHANGES // burning hands fixes COPY_EXISTING ~spwi103.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 // fix existing effects WRITE_SHORT ("%abil_off%" + 0x0e + ("%index%" * 0x28)) 5 // corrects range READ_SHORT ("%abil_off%" + 0x10) "min_lev" READ_SHORT ("%abil_off%" + 0x1e) "abil_fx_num" READ_SHORT ("%abil_off%" + 0x20) "abil_fx_idx" PATCH_IF ("%min_lev%" = 1) BEGIN FOR ("index2" = 0; "%index2%" < "%abil_fx_num%"; "index2" = ("%index2%" + 1)) BEGIN READ_LONG ("%fx_off%" + + (0x30 * ("%abil_fx_idx%" + "%index2%"))) "opcode" PATCH_IF ("%opcode%" = 165) BEGIN // play 3d effect opcode WRITE_LONG ("%fx_off%" + 0x0e + (0x30 * ("%abil_fx_idx%" + "%index2%"))) 2 // corrects duration END END END END BUT_ONLY_IF_IT_CHANGES // color spray fixes COPY_EXISTING ~spwi105.spl~ ~override~ READ_LONG 0x64 "abil_off" READ_SHORT 0x68 "abil_num" FOR ("index" = 0; "%index%" < "%abil_num%"; "index" = ("%index%" + 1)) BEGIN // fix existing effects WRITE_SHORT ("%abil_off%" + 0x0e + ("%index%" * 0x28)) 30 // corrects range END BUT_ONLY_IF_IT_CHANGES // color spray arc fix COPY_EXISTING ~cspray.pro~ ~override~ WRITE_SHORT 0x206 256 BUT_ONLY_IF_IT_CHANGES Link to comment
NiGHTMARE Posted April 24, 2005 Share Posted April 24, 2005 I'll have to finish going through the rest of the spells, then . Link to comment
CamDawg Posted April 24, 2005 Share Posted April 24, 2005 Heh, don't worry, there's more than enough to work on in the meantime. Link to comment
devSin Posted April 24, 2005 Author Share Posted April 24, 2005 grease fixesI don't see any evidence that this is an actual bug. The Grease project lasts for one turn (this is the same as Web, Entangle, etc.), and the effects last for a similar duration. armor fixesAgain, I don't see a bug. The spell lasts for 9 hours (make sure you correct the duration), so it makes sense to me that it would have a high casting time (the other armor spells don't last nearly as long). And definitely don't change the visual effect (SPARMOR2 is an unused animation that I restore locally; it's so ugly in-game that I decided to give it to the weakest armor spell). burning hands fixesThere's nothing to suggest this is a bug. The Burning Hands projectile is *very* short (if you increase the range, it's likely that you'll end up hitting nothing). I can't tell what the duration thing is doing (the duration should be controlled by the projectile alone). color spray fixesIf you push the range of this out, it's likely you won't actually hit anything (as with Burning Hands, the projectile doesn't go that far). color spray arc fixI can't tell what's going on here, but I will say that updating projectiles is dangerous (in my mind), and we should get ample discussion in before changing any of them. In this case, I'd point out that the projectile is identical to the Prismatic Spray projectile, and there likely isn't any bug here. Link to comment
CamDawg Posted April 24, 2005 Share Posted April 24, 2005 Friends was another destroy-n-rebuild, but it now accurately lasts 1d4 + 1 round/level. Baldurdash "fixed" this by changing the description. // friends fixes COPY_EXISTING ~spwi107.spl~ ~override~ READ_LONG 0x64 "abil_off" READ_SHORT 0x68 "abil_num" READ_LONG 0x6a "fx_off" READ_SHORT ("%abil_off%" + 0x48) "second_fx_idx" READ_SHORT ("%abil_off%" + 0x1e + (0x28 * ("%abil_num%" - 1))) "last_fx_num" READ_SHORT ("%abil_off%" + 0x20 + (0x28 * ("%abil_num%" - 1))) "last_fx_idx" DELETE_BYTES ("%fx_off%" + (0x30 * "%second_fx_idx%")) (0x30 * (("%last_fx_idx%" + "last_fx_num") - "%second_fx_idx%")) // eliminates all high lev effects DELETE_BYTES ("%abil_off%" + 0x28) (0x28 * ("%abil_num%" - 1)) // eliminates all abilities beyond the first SET "fx_off" = ("%fx_off%" - (0x28 * ("%abil_num%" - 1))) // now to patch effects at lev 1 before cloning READ_SHORT ("%abil_off%" + 0x1e) "abil_fx_num" READ_SHORT ("%abil_off%" + 0x20) "abil_fx_idx" FOR ("index" = "%abil_fx_num%"; "%index%" > 0; "index" = ("%index%" - 1)) BEGIN // loop to adjust effects by min level READ_LONG ("%fx_off%" + 0x0e + (0x30 * ("%abil_fx_idx%" + ("%index%" - 1)))) "duration" PATCH_IF ("%duration%" > 5) BEGIN // longer than one round WRITE_BYTE ("%fx_off%" + 0x12 + (0x30 * ("%abil_fx_idx%" + ("%index%" - 1)))) 25 // probability high WRITE_LONG ("%fx_off%" + 0x0e + (0x30 * ("%abil_fx_idx%" + ("%index%" - 1)))) 12 // duration READ_ASCII ("%fx_off%" + (0x30 * ("%abil_fx_idx%" + ("%index%" - 1)))) "effect" (0x30) // reads entire effect INSERT_BYTES ("%fx_off%" + (0x30 * ("%abil_fx_idx%" + "%abil_fx_num%"))) 0x30 // insert new effect WRITE_EVALUATED_ASCII ("%fx_off%" + (0x30 * ("%abil_fx_idx%" + "%abil_fx_num%"))) "%effect%" WRITE_LONG ("%fx_off%" + 0x0e + (0x30 * ("%abil_fx_idx%" + "%abil_fx_num%"))) 18 // duration WRITE_BYTE ("%fx_off%" + 0x12 + (0x30 * ("%abil_fx_idx%" + "%abil_fx_num%"))) 50 // probability high WRITE_BYTE ("%fx_off%" + 0x13 + (0x30 * ("%abil_fx_idx%" + "%abil_fx_num%"))) 26 // probability low INSERT_BYTES ("%fx_off%" + (0x30 * ("%abil_fx_idx%" + "%abil_fx_num%"))) 0x30 // insert new effect WRITE_EVALUATED_ASCII ("%fx_off%" + (0x30 * ("%abil_fx_idx%" + "%abil_fx_num%"))) "%effect%" WRITE_LONG ("%fx_off%" + 0x0e + (0x30 * ("%abil_fx_idx%" + "%abil_fx_num%"))) 24 // duration WRITE_BYTE ("%fx_off%" + 0x12 + (0x30 * ("%abil_fx_idx%" + "%abil_fx_num%"))) 75 // probability high WRITE_BYTE ("%fx_off%" + 0x13 + (0x30 * ("%abil_fx_idx%" + "%abil_fx_num%"))) 61 // probability low INSERT_BYTES ("%fx_off%" + (0x30 * ("%abil_fx_idx%" + "%abil_fx_num%"))) 0x30 // insert new effect WRITE_EVALUATED_ASCII ("%fx_off%" + (0x30 * ("%abil_fx_idx%" + "%abil_fx_num%"))) "%effect%" WRITE_LONG ("%fx_off%" + 0x0e + (0x30 * ("%abil_fx_idx%" + "%abil_fx_num%"))) 30 // duration WRITE_BYTE ("%fx_off%" + 0x12 + (0x30 * ("%abil_fx_idx%" + "%abil_fx_num%"))) 100 // probability high WRITE_BYTE ("%fx_off%" + 0x13 + (0x30 * ("%abil_fx_idx%" + "%abil_fx_num%"))) 76 // probability low SET "abil_fx_num" = ("%abil_fx_num%" + 3) END END WRITE_SHORT ("%abil_off%" + 0x1e) "%abil_fx_num%" READ_ASCII ("%fx_off%" + (0x30 * "%abil_fx_idx%")) "effects" ("%abil_fx_num%" * 0x30) // reads whole block of effects from last ability READ_ASCII ("%abil_off%") "ability" (0x28) // reads last ability FOR ("index" = 20; "%index%" > 1; "index" = ("%index%" - 1)) BEGIN // now extend headers INSERT_BYTES ("%fx_off%" + (0x30 * "%abil_fx_idx%")) ("%abil_fx_num%" * 0x30) // inserts bytes WRITE_EVALUATED_ASCII ("%fx_off%" + (0x30 * "%abil_fx_idx%")) "%effects%" // clones existing effects FOR ("index2" = 0; "%index2%" < "%abil_fx_num%"; "index2" = ("%index2%" + 1)) BEGIN // loop to adjust effects by min level READ_LONG ("%fx_off%" + 0x0e + (0x30 * ("%abil_fx_idx%" + "%abil_fx_num%" + "%index2%"))) "duration" PATCH_IF ("%duration%" > 5) BEGIN // longer than one round WRITE_LONG ("%fx_off%" + 0x0e + (0x30 * ("%abil_fx_idx%" + "%abil_fx_num%" + "%index2%"))) ("%duration%" + (6 * ("%index%" - 1))) // corrects duration END END INSERT_BYTES ("%abil_off%" + 0x28) 0x28 // inserts bytes WRITE_EVALUATED_ASCII ("%abil_off%" + 0x28) "%ability%" // clones existing ability WRITE_SHORT ("%abil_off%" + 0x38) ("%index%") // minimum level WRITE_SHORT ("%abil_off%" + 0x46) "%abil_fx_num%" WRITE_SHORT ("%abil_off%" + 0x48) ("%abil_fx_idx%" + ("%abil_fx_num%" * ("%index%" - 1))) SET "fx_off" = ("%fx_off%" + 0x28) SET "abil_num" = ("%abil_num%" + 1) END WRITE_LONG 0x6a "%fx_off%" WRITE_SHORT 0x68 20 BUT_ONLY_IF_IT_CHANGES Infravision and Spook were added to the Blindness patch, as they all use a range of 60. Of the five magic missile spell files, Bioware has incorrect damage in four of them. The fifth is saved only because it's a special version without a damage opcode. // magic missile damage fix COPY_EXISTING ~spin685.spl~ ~override~ // Imoen/promenade cutscene version ~spin962.spl~ ~override~ // beholder version ~spwi003.spl~ ~override~ // trap wizard version ~spwi112.spl~ ~override~ // regular wizard version 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 // fix existing effects WRITE_SHORT ("%abil_off%" + 0x0e + ("%index%" * 0x28)) 60 // corrects range READ_SHORT ("%abil_off%" + 0x1e + ("%index%" * 0x28)) "abil_fx_num" READ_SHORT ("%abil_off%" + 0x20 + ("%index%" * 0x28)) "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%" = 12) BEGIN // damage opcode WRITE_LONG ("%fx_off%" + 0x04 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) 1 // fixed damage WRITE_LONG ("%fx_off%" + 0x1c + (0x30 * ("%abil_fx_idx%" + "%index2%"))) 1 // num dice WRITE_LONG ("%fx_off%" + 0x20 + (0x30 * ("%abil_fx_idx%" + "%index2%"))) 4 // dice size END END END BUT_ONLY_IF_IT_CHANGES Shield school fix. // school fix for shield COPY_EXISTING ~spwi114.spl~ ~override~ // Imoen/promenade cutscene version WRITE_BYTE 0x22 24 // evocation BUT_ONLY_IF_IT_CHANGES Sleep's description does mention the save penalty, so only the range needs a-fixin'. Lumped in the LMD fixes as well. // range fixes COPY_EXISTING ~spin104.spl~ ~override~ // innate LMD ~spwi116.spl~ ~override~ // sleep ~spwi119.spl~ ~override~ // mage LMD READ_LONG 0x64 "abil_off" READ_SHORT 0x68 "abil_num" FOR ("index" = 0; "%index%" < "%abil_num%"; "index" = ("%index%" + 1)) BEGIN // fix existing effects WRITE_SHORT ("%abil_off%" + 0x0e + ("%index%" * 0x28)) 90 // corrects range END BUT_ONLY_IF_IT_CHANGES Chromatic Orb already had some fixes; added the durations fixes. W.r.t. the level 12 damage and level 1 blindness, my patched SoA install matches description and effects, so I did not include those changes. At first-level, the sphere inflicts 1-4 damage and blinds the target for one round. (snip) At 12th level, the sphere will inflict 2-16 points of acid damage and instantly kill the victim. // chromatic orb has a few incorrect targets and MR checks COPY_EXISTING ~spdr101.spl~ ~override~ // chromatic orb, stalker version ~spwi118.spl~ ~override~ // chromatic orb, wiz version READ_LONG 0x64 "abil_off" READ_SHORT 0x68 "abil_num" READ_LONG 0x6a "fx_off" WHILE ("%abil_num%" > 0) BEGIN SET "abil_num" = ("%abil_num%" - 1) READ_SHORT ("%abil_off%" + 0x10 + (0x28 * "%abil_num%")) "min_lev" WRITE_SHORT ("%abil_off%" + 0x0e + (0x28 * "%abil_num%")) 90 // corrects range PATCH_IF (("%min_lev%" = 1) OR ("%min_lev%" = 5) OR ("%min_lev%" = 10) OR ("%min_lev%" = 12)) BEGIN READ_SHORT ("%abil_off%" + 0x1e + (0x28 * "%abil_num%")) "abil_fx_num" READ_SHORT ("%abil_off%" + 0x20 + (0x28 * "%abil_num%")) "abil_fx_idx" WHILE ("%abil_fx_num%" > 0) BEGIN SET "abil_fx_num" = ("%abil_fx_num%" - 1) READ_SHORT ("%fx_off%" + (0x30 * ("%abil_fx_idx%" + "%abil_fx_num%"))) "opcode" READ_LONG ("%fx_off%" + 0x0e + (0x30 * ("%abil_fx_idx%" + "%abil_fx_num%"))) "duration" PATCH_IF (("%duration%" > 5) AND ("%min_lev%" = 1)) BEGIN // fix level 1 durations WRITE_LONG ("%fx_off%" + 0x0e + (0x30 * ("%abil_fx_idx%" + "%abil_fx_num%"))) 6 END PATCH_IF (("%duration%" > 5) AND ("%min_lev%" = 5)) BEGIN // fix level 5 durations WRITE_LONG ("%fx_off%" + 0x0e + (0x30 * ("%abil_fx_idx%" + "%abil_fx_num%"))) 18 END PATCH_IF ("%opcode%" = 0) BEGIN // armor class penalty WRITE_BYTE ("%fx_off%" + 0x02 + (0x30 * ("%abil_fx_idx%" + "%abil_fx_num%"))) 2 // target: preset target END ELSE PATCH_IF (("%opcode%" = 139) OR ("%opcode%" = 142)) BEGIN // display portrait icon or display string WRITE_BYTE ("%fx_off%" + 0x0d + (0x30 * ("%abil_fx_idx%" + "%abil_fx_num%"))) 1 // dispel/not bypass END ELSE PATCH_IF ("%opcode%" = 55) BEGIN // slay WRITE_BYTE ("%fx_off%" + 0x0d + (0x30 * ("%abil_fx_idx%" + "%abil_fx_num%"))) 2 // not dispel/not bypass END END END END BUT_ONLY_IF_IT_CHANGES For Find Familiar, I thought casting time of one round = 9 casting speed, not 1. // find familiar casting time COPY_EXISTING ~spwi102.spl~ ~override~ READ_LONG 0x64 "abil_off" READ_SHORT 0x68 "abil_num" FOR ("index" = 0; "%index%" < "%abil_num%"; "index" = ("%index%" + 1)) BEGIN // fix existing effects WRITE_SHORT ("%abil_off%" + 0x12 + ("%index%" * 0x28)) 9 // casting time END BUT_ONLY_IF_IT_CHANGES Nahal's Reckless Dweomer fixes. // nahal's reckless dweomer casting time, school COPY_EXISTING ~spwi124.spl~ ~override~ WRITE_BYTE 0x22 15 // invocation WRITE_SHORT 0x25 6 // invoker READ_LONG 0x64 "abil_off" READ_SHORT 0x68 "abil_num" FOR ("index" = 0; "%index%" < "%abil_num%"; "index" = ("%index%" + 1)) BEGIN // fix existing effects WRITE_SHORT ("%abil_off%" + 0x12 + ("%index%" * 0x28)) 5 // casting time END BUT_ONLY_IF_IT_CHANGES Link to comment
CamDawg Posted January 15, 2008 Share Posted January 15, 2008 SPWI205 - Horror Duration: 1 turn 18 (should be 60) // horror duration incorrect COPY_EXISTING ~spwi205.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 // cycle thru abilities 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 * ("%index2%" + "%abil_fx_idx%"))) "opcode" READ_LONG ("%fx_off%" + 0x0e + (0x30 * ("%index2%" + "%abil_fx_idx%"))) "duration" PATCH_IF ("%duration%" = 18) BEGIN WRITE_LONG ("%fx_off%" + 0x0e + (0x30 * ("%index2%" + "%abil_fx_idx%"))) 60 END END END BUT_ONLY_IF_IT_CHANGES SPWI208 - Know Alignment Casting Time: 1 round 2 (should be 9) SPWI209 - Luck Duration: 3 rounds 20 (should be 18) SPWI211 - Melf's Acid Arrow Casting Time: 2 3 (should be 2) SPWI214 - Strength Casting Time: 1 round 2 (should be 9) SPWI217 - Agannazar's Scorcher Casting Time: 3 2 (should be 3) SPWI222 - Chaos Shield School: Abjuration Some fields Illusion, others Abjuration Already fixed. SPWI220 - Power Word Sleep Duration: 5 rounds permanent (err, is this right?) Yes--new info for the IESDP. Opcode 217 (PW Sleep/Sleep 20HP) is hardcoded to last 5 rounds and ignores timing 0 (instant/limited). You can use timing 4 (delay/permanent) to delay the effect, but once it goes into effect it'll still last five rounds, i.e. timing 4 with duration 6 will cause the target to stand there for 6 seconds, then sleep for 30. And if no one has extended this thread in the 2 1/2 years it languished in Pending, then I don't feel bad about moving it to Archives. (Though, please, if anyone wishes to do this sort of anal-retentive analysis for the rest of the spells...) Link to comment
Nythrun Posted January 19, 2008 Share Posted January 19, 2008 I'd been waiting until I finished a DECOMPRESS_BAMC_TO_BAM macro to take another pass through spells (that's just for checking vvc durations). Here's a slightly abridged form of my false positive generator (by Logspammer Technologies©) if you want it. spcl342.spl // Find Familiar: Has 1 global effect(s) spin649.spl // Pocket Plane: Has 2 global effect(s) spin680.spl // Deathsong: Has 3 global effect(s) spin681.spl // Wail of the Banshee: Has 1 global effect(s) spin692.spl // Silence 15' Radius: >>Header 0: Required level of first extended header is 20 rather than one! spin701.spl // FireBall: Has 1 global effect(s) spin714.spl // Lightning Bolt: >>Header 1: Projectile (stone) does not match projectile in header 0 (spattck2) spin789.spl // Demilich Howl: Has 1 global effect(s) spin820.spl // Wail of the Banshee: Has 1 global effect(s) spin897.spl // Gas Spore: >>Header 1: Projectile (stone) does not match projectile in header 0 (arrowfli) sppr101.spl // Bless: >>Header 0: Range (40) does not match description (60) sppr102.spl // Command: >>Header 0: Range (35) does not match description (30) >>>>Header 0 Effects 0 through 19 (opcode 177): Power level (0) does not match level (1) sppr104.spl // Detect Evil: >>Header 0: Range (5) is not exactly visual range >>>>Header 0 Effect 0 (opcode 146): Power level (0) does not match level (1) sppr105.spl // Entangle: >>Header 0: Range (120) is not exactly visual range sppr106.spl // Magic Stone: >>Header 0: Range (50) does not match description (0) sppr108.spl // Remove Fear: >>Header 0: Range (30) does not match description (10) sppr113.spl // Doom: >>Header 0: Casting time in description (9) does not match casting time (1) Range (25) is not exactly visual range sppr105.spl // Entangle: >>>>Header 0 Effect 3 (opcode 174): Power level (2) does not match level (1) sppr201.spl // Aid: No spell school or multiple schools found in description sppr204.spl // Charm Person or Mammal: >>Header 0: Range (25) is not exactly visual range >>>>Header 0 Effects 0 through 27 (opcode 177): Power level (0) does not match level (2) sppr207.spl // Good Berries: No spell school or multiple schools found in description sppr208.spl // Hold Person: >>Header 0: Range (35) is not exactly visual range sppr209.spl // Know Alignment: >>Header 0: Range (20) does not match description (10) sppr210.spl // Resist Fire/Cold: >>>>Header 3 Effect 4 (opcode 139): Power level (0) does not match level (2) sppr211.spl // Silence 15' Radius: >>Headers 0 through 19: Range (80) is not exactly visual range sppr301.spl // Animate Dead: >>Headers 0 through 10: Range (20) does not match description (10) sppr302.spl // Call Lightning: >>Headers 0 through 13: Casting time in description (90) does not match casting time (9) Range (80) does not match description (0) sppr303.spl // Dispel Magic: >>Header 0: Range (40) is not exactly visual range >>>>Header 0 Effect 9 (opcode 215): Power level (3) does not match previous effect (0) >>>>Header 0 Effect 40 (opcode 77): Power level (3) does not match previous effect (0) sppr304.spl // Glyph of Warding: No spell school or multiple schools found in description >>Header 0 through 13: Casting time in description (Special) does not match casting time (9) Range (60) does not match description (20) sppr305.spl // Hold Animal: >>Header 0: Range (35) is not exactly visual range sppr306.spl // Protection From Fire: >>>>Headers 0 through 19 Effect 1 (opcode 50): Power level (1) does not match level (3) sppr308.spl // Remove Paralysis: >>Header 0: Range (150) does not match description (10) >>>>Header 0 Effect 5 (opcode 240): Power level (0) does not match level (3) >>>>Header 0 Effect 6 (opcode 240): Power level (0) does not match level (3) sppr309.spl // Invisibility Purge: >>Header 0: Range (1) is not exactly visual range sppr310.spl // Miscast Magic: >>Header 0: Range (50) is not exactly visual range sppr311.spl // Rigid Thinking: >>Header 0: Range (35) is not exactly visual range sppr313.spl // Holy Smite: >>Headers 0 through 15: Range (25) is not exactly visual range sppr314.spl // Unholy Blight: >>Header 0 through 15: Range (25) is not exactly visual range sppr315.spl // Cure Medium Wounds: >>>>Header 0 Effect 3 (opcode 164): Power level (0) does not match level (3) sppr317.spl // Cure Disease: No level found in description sppr318.spl // Zone of Sweet Air: No level found in description >>Header 0: Range (1) does not match description (30) sppr319.spl // Summon Insects: No level found in description >>Header 0: Range (60) does not match description (30) sppr401.spl // Cure Serious Wounds: >>>>Header 0 Effect 3 (opcode 164): Power level (0) does not match level (4) sppr402.spl // Animal Summoning I: No spell school or multiple schools found in description >>Header 0: Range (30) does not match description (20) sppr405.spl // Mental Domination: >>Header 0: Range (40) is not exactly visual range >>>>Header 0 Effects 0 through 13 (opcode 177): Power level (0) does not match level (4) sppr406.spl // Defensive Harmony: >>Header 0: Range (15) does not match description (0) sppr408.spl // Protection From Evil 10' radius: >>Headers 0 through 13: Range (15) does not match description (0) >>>>Headers 2 through 6 Effect 0 (opcode 215): Power level (0) does not match level (4) sppr409.spl // Death Ward: >>Headers 0 through 13: Casting time in description (9) does not match casting time (1) Range (25) is not exactly visual range sppr410.spl // Call Woodland Beings: No spell school or multiple schools found in description sppr411.spl // Poison: >>Headers 0 through 4: Range (10) does not match description (15) sppr413.spl // Negative Plane Protection: No level found in description Spell school in description (Abjuration) does not match primary type (8) >>Header 0: Range (30) does not match description (0) sppr414.spl // Cause Serious Wounds: >>>>Header 0 Effect 0 (opcode 111): Power level (0) does not match level (4) >>>>Header 0 Effect 1 (opcode 174): Power level (0) does not match level (4) >>>>Header 0 Effect 2 (opcode 50): Power level (0) does not match level (4) >>>>Header 0 Effect 3 (opcode 141): Power level (0) does not match level (4) sppr415.spl // Farsight: >>Headers 0 through 19: Range (6) does not match description (0) >>>>Headers 0 through 19 Effect 0 (opcode 239): Power level (0) does not match level (4) >>>>Headers 0 through 19 Effect 1 (opcode 174): Power level (0) does not match level (4) sppr416.spl // Cloak of Fear: No level found in description sppr417.spl // Lesser Restoration: Spell school in description (Necromancy) does not match primary type (8) >>>>Header 0 Effect 3 (opcode 93): Power level (7) does not match level (4) sppr501.spl // Animal Summoning II: >>Header 0: Range (30) does not match description (60) sppr502.spl // Cure Critical Wounds: >>>>Header 0 Effect 2 (opcode 139): Power level (6) does not match level (5) >>>>Header 0 Effect 3 (opcode 164): Power level (0) does not match level (5) sppr503.spl // Flame Strike: >>Headers 0 through 11: Range (40) is not exactly visual range >>>>Headers 0 through 11 Effects 2 through 3 (opcode 215): Power level (0) does not match level (5) sppr504.spl // Raise Dead: >>Header 0: Range (30) does not match description (0) sppr505.spl // True Seeing: >>Header 0: Range (40) does not match description (0) sppr506.spl // Iron Skins: >>>>Header 7 Effect 2 (opcode 174): Power level (4) does not match level (5) sppr507.spl // Champion's Strength: >>Headers 0 through 9: Range (40) is not exactly visual range sppr508.spl // Chaotic Commands: >>Headers 0 through 9: Range (40) does not match description (0) >>Header 9: Projectile (sparklpu) does not match projectile in header 8 (sparklgo) sppr511.spl // Slay Living: >>>>Header 0 Effect 0 (opcode 111): Power level (0) does not match level (5) >>>>Header 0 Effect 1 (opcode 50): Power level (0) does not match level (5) sppr512.spl // Greater Command: >>Headers 0 through 11: Range (35) is not exactly visual range >>Header 11: Projectile (sparblpa) does not match projectile in header 10 (spklarre) >>>>Headers 0 through 11 Effects 0 through 9 (opcode 177): Power level (0) does not match level (5) >>>>Headers 0 through 11 Effect 13 (opcode 215): Power level (1) does not match level (5) sppr514.spl // Mass Cure: >>Headers 0 through 11: Range (20) does not match description (0) sppr515.spl // Repulse Undead: >>>>Header 0 Effect 1 (opcode 8): Power level (0) does not match level (5) sppr517.spl // Insect Plague: >>Header 0: Range (40) does not match description (12) sppr601.spl // Aerial Servant: >>Headers 0 through 9: Range (20) does not match description (15) sppr602.spl // Animal Summoning III: >>Header 0: Range (120) does not match description (60) sppr604.spl // Conjure Animals: Spell school in description (Conjuration) does not match primary type (4) >>Header 0: Range (30) does not match description (60) sppr605.spl // Conjure Fire Elemental: >>Headers 0 through 9: Range (35) is not exactly visual range sppr609.spl // False Dawn: >>>>Header 0 Effect 0 (opcode 146): Power level (0) does not match level (6) sppr610.spl // Dolorous Decay: No spell school or multiple schools found in description >>Header 0: Range (20) does not match description (10) sppr612.spl // Bolt of Glory: >>Header 0: Range (40) does not match description (20) sppr613.spl // Physical Mirror: >>Header 0: Range (1) does not match description (30) >>>>Header 0 Effect 18 (opcode 174): Power level (3) does not match level (6) sppr614.spl // Sol's Searing Orb: >>Header 0: Range (1) does not match description (30) sppr702.spl // Conjure Earth Elemental: >>Headers 0 through 6: Range (35) is not exactly visual range sppr703.spl // Gate: No spell school or multiple schools found in description >>Header 0: Range (30) does not match description (20) >>>>Header 0 Effect 0 (opcode 177): Power level (9) does not match level (7) sppr705.spl // Fire Storm: >>Headers 0 through 6: Range (80) does not match description (40) sppr706.spl // Symbol, Fear: No spell school or multiple schools found in description sppr707.spl // Sunray: No spell school or multiple schools found in description >>Headers 0 through 6: Range (8) does not match description (20) >>>>Headers 0 through 6 Effect 0 (opcode 146): Power level (6) does not match level (7) >>>>Headers 0 through 6 Effect 7 (opcode 174): Power level (6) does not match level (7) sppr708.spl // Finger of Death: >>Headers 0 through 6: Range (40) is not exactly visual range sppr709.spl // Confusion: >>Headers 0 through 3: Range (45) is not exactly visual range sppr712.spl // Resurrection: >>Header 0: Range (30) does not match description (0) >>>>Header 0 Effects 3 through 21 (opcode 172): Power level (5) does not match level (7) sppr717.spl // Creeping Doom: >>Header 0: Range (160) does not match description (80) sppr718.spl // Symbol, Stun: No spell school or multiple schools found in description >>Headers 0 through 3: Range (70) does not match description (30) sppr719.spl // Symbol, Death: No spell school or multiple schools found in description >>Header 0: Range (70) does not match description (30) sppr720.spl // Earthquake: >>Header 0: Range (40) does not match description (12) sppr722.spl // Storm of Vengeance: >>Header 0: Range (50) does not match description (90) sppr723.spl // Elemental Summoning: >>Header 0: Range (35) does not match description (10) sppr724.spl // Greater Elemental Summoning: >>Header 0: Range (35) does not match description (10) sppr728.spl // Implosion: Spell school in description (Evocation) does not match primary type (0) >>Header 0: Range (40) is not exactly visual range >>>>Header 0 Effect 6 (opcode 215): Power level (0) does not match level (7) >>>>Header 0 Effect 7 (opcode 215): Power level (0) does not match level (7) sppr729.spl // Mass Raise Dead: >>Headers 0 through 19: Range (30) does not match description (0) >>>>Headers 0 through 19 Effect 1 (opcode 215): Power level (5) does not match level (7) >>>>Headers 0 though 19 Effects 2 through 26 (opcode 172): Power level (5) does not match level (7) >>>>Headers 0 through 19 Effect 27 (opcode 17): Power level (6) does not match level (7) >>>>Headers 0 through 19 Effect 28 (opcode 50): Power level (6) does not match level (7) >>>>Headers 0 through 19 Effect 29 (opcode 215): Power level (6) does not match level (7) >>>>Headers 0 through 19 Effect 30 (opcode 139): Power level (6) does not match level (7) sppr730.spl // Aura of Flaming Death: >>Headers 0 through 4: Range (40) does not match description (0) >>>>Headers 0 through 4 Effect 8 (opcode 232): Power level (0) does not match level (7) sppr731.spl // Fire Elemental Transformation: >>>>Header 0 Effect 0 (opcode 172): Power level (0) does not match level (1) >>>>Header 0 Effect 1 (opcode 135): Power level (7) does not match level (1) >>>>Header 0 Effect 2 (opcode 111): Power level (0) does not match level (1) >>>>Header 0 Effect 3 (opcode 172): Power level (0) does not match level (1) >>>>Header 0 Effect 4 (opcode 172): Power level (0) does not match level (1) >>>>Header 0 Effect 5 (opcode 172): Power level (0) does not match level (1) >>>>Header 0 Effect 6 (opcode 171): Power level (0) does not match level (1) >>>>Header 0 Effect 7 (opcode 215): Power level (0) does not match level (1) >>>>Header 0 Effect 8 (opcode 215): Power level (0) does not match level (1) >>>>Header 0 Effect 9 (opcode 142): Power level (7) does not match level (1) sppr732.spl // Earth Elemental Transformation: >>>>Header 0 Effect 0 (opcode 172): Power level (0) does not match level (1) >>>>Header 0 Effect 1 (opcode 135): Power level (7) does not match level (1) >>>>Header 0 Effect 2 (opcode 111): Power level (0) does not match level (1) >>>>Header 0 Effect 3 (opcode 172): Power level (0) does not match level (1) >>>>Header 0 Effect 4 (opcode 172): Power level (0) does not match level (1) >>>>Header 0 Effect 5 (opcode 172): Power level (0) does not match level (1) >>>>Header 0 Effect 6 (opcode 171): Power level (0) does not match level (1) >>>>Header 0 Effect 7 (opcode 215): Power level (0) does not match level (1) >>>>Header 0 Effect 8 (opcode 215): Power level (0) does not match level (1) >>>>Header 0 Effect 9 (opcode 142): Power level (7) does not match level (1) spwi101.spl // Grease: >>>>Headers 0 through 19 Effect 0 (opcode 158): Saving throw modifier (2) does not match description (0) >>>>Headers 0 through 19 Effect 1 (opcode 126): Saving throw modifier (2) does not match description (0) >>>>Headers 0 through 19 Effect 2 (opcode 174): Saving throw (0) does not match previous effect (1) >>>>Headers 0 through 19 Effect 3 (opcode 142): Saving throw modifier (2) does not match description (0) Saving throw (1) does not match previous effect (0) spwi103.spl // Burning Hands: >>Headers 0 through 5: Range (5) does not match description (0) spwi104.spl // Charm Person: >>Header 0: Range (60) is not exactly visual range >>>>Header 0 Effects 0 through 13 (opcode 177): Power level (0) does not match level (1) spwi105.spl // Color Spray: >>>>Header 0 Effects 0 through 9 (opcode 177): Power level (0) does not match level (1) spwi106.spl // Blindness: >>Header 0: Range (60) is not exactly visual range >>>>Header 0 Effect 2 (opcode 139): Power level (0) does not match level (1) spwi107.spl // Friends: Colorglow Pulse effect has zero duration, which I hadn't noticed even after hours of fussing, ha! >>>>Headers 0 through 19 Effect 1 (opcode 139): Power level (0) does not match level (1) spwi111.spl // Infravision: >>Header 0: Casting time in description (Special) does not match casting time (1) >>>>Header 0 Effect 1 (opcode 139): Power level (0) does not match level (1) spwi112.spl // Magic Missile: >>Headers 0 through 4: Range (60) is not exactly visual range >>>>Headers 0 through 4 Effect 1 (opcode 141): Power level (0) does not match level (1) spwi113.spl // Protection From Evil: >>>>Headers 0 through 19 Effect 0 (opcode 139): Power level (0) does not match level (1) >>>>Headers 0 through 19 Effect 1 (opcode 142): Power level (0) does not match level (1) spwi114.spl // Shield: >>>>Header 0 Effect 2 (opcode 139): Power level (0) does not match level (1) spwi115.spl // Shocking Grasp: >>>>Header 0 Effect 0 (opcode 111): Power level (0) does not match level (1) >>>>Headers 0 through 19 Effect 0 (opcode 111): Power level (0) does not match level (1) >>>>Headers 1 through 19 Effect 1 (opcode 174): Power level (0) does not match level (1) spwi116.spl // Sleep: >>Headers 0 through 19: Range (90) does not match description (30) >>>>Headers 0 though 19 Effects 0 through 9 (opcode 177): Power level (0) does not match level (1) spwi118.spl // Chromatic Orb: >>Headers 0 through 8: Range (90) does not match description (30) >>>>Header 3 Effect 3 (opcode 139): Saving throw modifier (0) does not match description (6) spwi119.spl // Larloch's Minor Drain: >>Header 0: Range (90) does not match description (30) spwi123.spl // Find Familiar: Has 1 global effect(s) >>>>Global effects: Power level (0) does not match level (1) >>Header 0: Range (20) does not match description (0) spwi124.spl // Nahal's Reckless Dweomer: >>Header 0: Range (20) does not match description (0) >>>>Header 0 Effect 1 (opcode 280): Power level (0) does not match level (1) spwi125.spl // Spook: >>Headers 0 through 6: Range (60) does not match description (30) spwi202.spl // Detect Evil: Description indicates level 1 while resref indicates level 2 >>Header 0: Range (5) is not exactly visual range >>>>Header 0 Effect 0 (opcode 146): Power level (0) does not match level (2) spwi205.spl // Horror: >>Header 0: Range (40) does not match description (25) spwi207.spl // Knock: >>Header 0: Range (20) is not exactly visual range spwi208.spl // Know Alignment: >>Header 0: Range (30) does not match description (10) spwi209.spl // Luck: >>Header 0: Range (15) does not match description (10) >>>>Header 0 Effect 0 (opcode 133): Duration (20) does not match description (18) >>>>Header 0 Effect 3 (opcode 142): Duration (20) does not match description (18) >>>>Header 0 Effect 4 (opcode 174): Duration (0) does not match description (18) >>>>Header 0 Effect 5 (opcode 174): Duration (20) does not match description (18) spwi210.spl // Resist Fear: >>Header 0: Range (30) does not match description (10) >>>>Header 0 Effect 12 (opcode 215): Power level (1) does not match level (2) spwi211.spl // Melf's Acid Arrow: >>Headers 0 through 6: Range (60) is not exactly visual range >>Header 1: Spell form (1) does not match previous header 0 (2) spwi213.spl // Stinking Cloud: >>Header 0: Range (40) does not match description (30) >>>>Header 0 Effects 0 through 9 (opcode 177): Power level (0) does not match level (2) >>>>Header 0 Effect 10 (opcode 39): Saving throw modifier (2) does not match description (0) >>>>Header 0 Effect 11 (opcode 142): Saving throw modifier (2) does not match description (0) spwi214.spl // Strength: >>Headers 0 through 20: Range (20) does not match description (0) spwi215.spl // Web: >>Header 0: Range (40) is not exactly visual range spwi217.spl // Agannazar's Scorcher: >>Header 0: Range (15) does not match description (20) >>>>Header 0 Effect 1 (opcode 165): Power level (0) does not match level (2) >>>>Header 0 Effect 2 (opcode 174): Power level (0) does not match level (2) spwi219.spl // Vocalize: >>>>Header 0 Effect 7 (opcode 215): Power level (1) does not match level (2) spwi220.spl // Power Word Sleep: >>Header 0: Range (40) does not match description (30) spwi221.spl // Ray of Enfeeblement: >>Headers 0 through 17: Range (40) is not exactly visual range >>>>Header 0s through 17 Effect 2 (opcode 139): Saving throw modifier (-2) does not match description (0) spwi222.spl // Chaos Shield*: >>>>Headers 0 through 4 Effect 0 (opcode 281): Power level (0) does not match level (2) >>>>Headers 0 through 4 Effect 1 (opcode 142): Power level (0) does not match level (2) >>>>Headers 0 through 4 Effect 2 (opcode 215): Power level (4) does not match level (2) >>>>Headers 0 through 4 Effect 3 (opcode 206): Power level (0) does not match level (2) >>>>Headers 0 through 4 Effect 4 (opcode 206): Power level (0) does not match level (2) spwi223.spl // Deafness: >>Header 0: Range (40) does not match description (60) >>>>Header 0 Effect 2 (opcode 215): Power level (1) does not match level (2) >>>>Header 0 Effect 3 (opcode 215): Power level (1) does not match level (2) spwi224.spl // Glitterdust: >>Header 0: Range (20) does not match description (10) >>>>Header 0 Effect 3 (opcode 215): Power level (4) does not match level (2) spwi302.spl // Remove Magic: >>Header 0: Range (40) is not exactly visual range >>>>Header 0 Effect 9 (opcode 215): Power level (3) does not match previous effect (0) spwi303.spl // Flame Arrow: >>Headers 0 through 3: Range (60) is not exactly visual range spwi304.spl // FireBall: Has 1 global effect(s) >>>>Global effects: Power level (0) does not match level (3) >>Headers 0 through 5: Range (40) is not exactly visual range spwi305.spl // Haste: >>Headers 0 through 15: Range (15) is not exactly visual range spwi306.spl // Hold Person: >>Header 0: Range (35) is not exactly visual range >>>>Header 0 Effect 0 (opcode 175): Saving throw modifier (-1) does not match description (0) >>>>Header 0 Effect 1 (opcode 174): Saving throw modifier (-1) does not match description (0) >>>>Header 0 Effect 2 (opcode 142): Saving throw modifier (-1) does not match description (0) >>>>Header 0 Effect 3 (opcode 215): Saving throw modifier (-1) does not match description (0) spwi308.spl // Lightning Bolt: >>Header 1: Range (60) does not match description (100) >>Header 2: Range (70) does not match description (110) >>Header 3: Range (80) does not match description (120) >>Header 4: Range (90) does not match description (130) >>Header 5: Range (100) does not match description (140) spwi309.spl // Monster Summoning I: >>Headers 0 through 15: Range (20) does not match description (40) spwi312.spl // Slow: >>Header 0: Range (25) is not exactly visual range spwi313.spl // Skull Trap: No spell school or multiple schools found in description >>Header 0: Range (55) does not match description (20) >>Headers 1 through 15: Range (15) does not match description (20) spwi316.spl // Dire Charm: >>Header 0: Range (35) does not match description (20) >>>>Header 0 Effects 0 though 13 (opcode 177): Power level (0) does not match level (3) >>>>Header 0 Effect 17 (opcode 215): Saving throw modifier (3) does not match description (0) spwi318.spl // Minor Spell Deflection: >>>>Header 6 Effect 9 (opcode 201): Duration (180) does not match description (198) >>>>Header 6 Effect 10 (opcode 201): Duration (180) does not match description (198) spwi321.spl // Spell Thrust: >>Header 0: Range (25) is not exactly visual range spwi324.spl // Hold Undead: >>Headers 0 through 15: Range (35) is not exactly visual range spwi325.spl // Melf's Minute Meteors: No spell school or multiple schools found in description >>Headers 0 through 15: Range (1) does not match description (70) spwi326.spl // Dispel Magic: >>Header 0: Range (40) is not exactly visual range >>>>Header 0 Effect 9 (opcode 215): Power level (3) does not match previous effect (0) >>>>Header 0 Effect 40 (opcode 77): Power level (3) does not match previous effect (0) spwi401.spl // Confusion: >>Headers 0 through 3: Range (35) is not exactly visual range spwi403.spl // Fire Shield (Blue): No spell school or multiple schools found in description spwi407.spl // Monster Summoning II: >>Headers 0 through 13: Range (20) does not match description (40) spwi409.spl // Contagion: >>Header 0: Range (1) does not match description (30) spwi410.spl // Remove Curse: >>>>Header 0 Effect 0 (opcode 26): Power level (3) does not match level (4) >>>>Header 0 Effect 1 (opcode 50): Power level (3) does not match level (4) >>>>Header 0 Effect 2 (opcode 139): Power level (3) does not match level (4) spwi411.spl // Emotion: >>Headers 0 through 13: Range (50) is not exactly visual range >>>>Headers 0 through 13 Effects 6 through 15 (opcode 177): Power level (0) does not match level (4) spwi412.spl // Greater Malison: >>Headers 0 through 13: Range (50) is not exactly visual range spwi413.spl // Otiluke's Resilient Sphere: >>Header 0: Range (40) does not match description (0) >>>>Header 0 Effect 21 (opcode 102): Duration (60) does not match previous effect (42) spwi414.spl // Spirit Armor: >>>>Header 0 Effect 1 (opcode 139): Power level (3) does not match level (4) spwi415.spl // Polymorph Other: >>Header 0: Range (40) is not exactly visual range spwi418.spl // Fire Shield (Red): No spell school or multiple schools found in description >>Headers 0 through 13: Range (40) does not match description (0) >>>>Headers 0 through 13 Effect 6 (opcode 232): Power level (0) does not match level (4) spwi419.spl // Secret Word: >>Header 0: Range (40) is not exactly visual range spwi421.spl // Teleport Field: >>Header 0: Range (40) is not exactly visual range spwi423.spl // Spider Spawn: >>Headers 0 through 11: Range (25) does not match description (40) spwi424.spl // Farsight: >>Headers 0 through 13: Range (6) does not match description (0) spwi425.spl // Wizard Eye: No spell school or multiple schools found in description >>Headers 0 through 13: Range (30) does not match description (0) spwi490.spl // Shapeshifts Natural Form: >>>>Header 0 Effect 14 (opcode 215): Power level (4) does not match level (1) spwi491.spl // Shapeshifts Natural Form: >>>>Header 0 Effect 13 (opcode 215): Power level (4) does not match level (1) >>>>Header 0 Effect 14 (opcode 215): Power level (4) does not match level (1) >>>>Header 0 Effect 15 (opcode 112): Power level (4) does not match level (1) spwi493.spl // Shapeshifts Flind: Power level (4) does not match level (1) >>>>Header 0 Effect 11 (opcode 215): Power level (4) does not match level (1) spwi494.spl // Shapeshifts Ogre: >>>>Header 0 Effect 10 (opcode 215): Power level (4) does not match level (1) spwi495.spl // Shapeshifts Spider: >>>>Header 0 Effect 10 (opcode 215): Power level (4) does not match level (1) spwi496.spl // Shapeshifts Mustard Jelly: >>>>Header 0 Effect 10 (opcode 215): Power level (4) does not match level (1) spwi497.spl // Shapeshifts Brown Bear: >>>>Header 0 Effect 10 (opcode 215): Power level (4) does not match level (1) spwi498.spl // Shapeshifts Black Bear: >>>>Header 0 Effect 10 (opcode 215): Power level (4) does not match level (1) spwi499.spl // Shapeshifts Wolf: >>>>Header 0 Effect 10 (opcode 215): Power level (4) does not match level (1) spwi501.spl // Animate Dead: >>Headers 0 through 6: Range (20) does not match description (10) >>>>Header 0 Effect 1 (opcode 177): Power level (3) does not match level (5) >>>>Header 0 Effect 2 (opcode 177): Power level (3) does not match level (5) spwi502.spl // Cloud Kill: >>Header 0: Range (40) does not match description (10) spwi503.spl // Cone of Cold: >>Header 0: Range (8) does not match description (0) >>Headers 1 through 11: Range (12) does not match description (0) spwi504.spl // Monster Summoning III: >>Headers 0 through 11: Range (20) does not match description (40) spwi505.spl // Shadow Door: >>Headers 0 through 11: Range (1) does not match description (10) >>>>Headers 0 through 11 Effect 1 (opcode141): Power level (0) does not match level (5) spwi506.spl // Domination: >>Header 0: Range (40) is not exactly visual range >>>>Header 0 Effects 0 though 13 (opcode 177): Power level (0) does not match level (5) spwi507.spl // Hold Monster: >>Headers 0 through 11: Range (40) is not exactly visual range spwi508.spl // Chaos: >>Headers 0 through 3: Range (35) is not exactly visual range spwi513.spl // Breach: >>Header 0: Range (40) is not exactly visual range spwi514.spl // Lower Resistance: No spell school or multiple schools found in description >>Header 0 through 11: Range (40) is not exactly visual range spwi515.spl // Oracle: >>Header 0: Range (35) does not match description (0) spwi516.spl // Conjure Lesser Fire Elemental: >>Headers 0 through 11: Casting time in description (Special) does not match casting time (9) spwi518.spl // Phantom Blade: >>>>Header 8 Effect 2 (opcode 174): Duration (72) does not match description (120) spwi520.spl // Conjure Lesser Air Elemental: >>Headers 0 through 11: Casting time in description (Special) does not match casting time (9) spwi521.spl // Conjure Lesser Earth Elemental: >>Headers 0 through 11: Casting time in description (Special) does not match casting time (9) spwi522.spl // Minor Spell Turning: >>>>Header 11 Effect 5 (opcode 50): Power level (3) does not match level (5) spwi523.spl // Sunfire: >>>>Header 1 Effect 0 (opcode 12): Power level (3) does not match level (5) >>>>Header 1 Effect 1 (opcode 12): Power level (3) does not match level (5) >>>>Header 2 Effect 0 (opcode 12): Power level (6) does not match level (5) spwi602.spl // Globe of Invulnerability: >>>>Header 1 Effect 7 (opcode 8): Power level (4) does not match level (6) >>>>Header 1 Effect 8 (opcode 139): Power level (4) does not match level (6) >>>>Header 4 Effect 19 (opcode 206): Power level (170) does not match level (6) >>>>Header 6 Effect 16 (opcode 8): Power level (4) does not match level (6) spwi604.spl // Flesh to Stone: >>Header 0: Range (50) is not exactly visual range spwi605.spl // Death Spell: >>Header 0: Range (50) is not exactly visual range spwi608.spl // Pierce Magic: >>Headers 0 through 8: Range (40) is not exactly visual range spwi609.spl // True Sight: >>Header 0: Range (40) does not match description (0) spwi612.spl // Power Word Silence: >>Header 0: Range (80) does not match description (30) spwi613.spl // Improved Haste: >>Headers 0 through 8: Range (40) is not exactly visual range >>>>Headers 0 through 8 Effect 0 (opcode 16): Power level (3) does not match level (6) >>>>Headers 0 through 8 Effect 1 (opcode 141): Power level (3) does not match level (6) >>>>Headers 0 through 8 Effect 2 (opcode 139): Power level (3) does not match level (6) >>>>Headers 0 through 8 Effect 3 (opcode 174): Power level (3) does not match level (6) >>>>Headers 0 through 8 Effect 4 (opcode 174): Power level (3) does not match level (6) spwi614.spl // Death Fog: >>Header 0: Range (40) does not match description (10) >>>>Header 0 Effect 1 (opcode 141): Power level (0) does not match level (6) spwi615.spl // Chain Lightning: >>Headers 0 through 4: Range (40) is not exactly visual range spwi617.spl // Contingency: >>Headers 0 though 2: Casting time in description (90) does not match casting time (9) Range (40) is not exactly visual range spwi619.spl // Wyvern Call: >>Headers 0 through 8: Range (30) does not match description (40) spwi620.spl // Conjure Fire Elemental: Exclusion flags do not match spell school (2) >>Headers 0 through 9: Range (35) is not exactly visual range spwi621.spl // Conjure Air Elemental: >>Headers 0 though 9: Range (35) is not exactly visual range spwi622.spl // Conjure Earth Elemental: >>Headers 0 though 9: Range (35) is not exactly visual range spwi623.spl // Carrion Summons: >>Headers 0 through 9: Range (25) does not match description (40) >>>>Header 6 Effects 0 though 2 (opcode 177): Duration (142) does not match description (144) >>>>Header 7 Effects 0 though 2 (opcode 177): Duration (148) does not match description (150) >>>>Header 8 Effects 0 though 2 (opcode 177): Duration (154) does not match description (156) >>>>Header 9 Effects 0 though 2 (opcode 177): Duration (160) does not match description (162) spwi624.spl // Summon Nishruu: >>Headers 0 through 9: Range (25) does not match description (40) >>>>Header 7 Effect 0 (opcode 177): Duration (116) does not match description (114) >>>>Header 8 Effect 0 (opcode 177): Duration (122) does not match description (120) spwi625.spl // Stone to Flesh: >>Header 0: Range (50) is not exactly visual range spwi704.spl // Ruby Ray of Reversal: >>Header 0: Range (40) is not exactly visual range spwi705.spl // Khelben's Warding Whip: >>Header 0: Range (20) does not match description (10) spwi707.spl // Cacofiend: >>Header 0: Casting time in description (Special) does not match casting time (9) Range (35) is not exactly visual range spwi711.spl // Sphere of Chaos: >>Header 0: Range (40) is not exactly visual range >>>>Header 0 Effects 0 though 9 (opcode 177): Power level (0) does not match level (7) >>>>Header 0 Effect 23 (opcode 174): Power level (4) does not match level (7) spwi712.spl // Delayed Blast Fireball: >>Header 0: Range (40) is not exactly visual range spwi713.spl // Finger of Death: >>Header 0: Range (40) is not exactly visual range spwi714.spl // Prismatic Spray: >>Header 0: Range (15) does not match description (20) spwi715.spl // Power Word, Stun: No spell school or multiple schools found in description spwi717.spl // Summon Efreeti: >>Headers 0 through 6: Range (25) does not match description (40) >>>>Header 5 Effect 0 (opcode 177): Duration (164) does not match description (162) >>>>Header 6 Effect 0 (opcode 177): Duration (170) does not match description (168) spwi718.spl // Summon Djinni: >>Headers 0 through 6: Range (25) does not match description (40) spwi719.spl // Summon Hakeashar: >>Headers 0 through 6: Range (25) does not match description (40) spwi720.spl // Control Undead: >>Headers 0 through 6: Range (40) is not exactly visual range spwi721.spl // Mass Invisibility: >>Headers 0 through 6: Range (35) is not exactly visual range >>>>Headers 0 though 6 Effect 0 (opcode 146): Power level (4) does not match level (7) >>>>Headers 0 though 6 Effect 1 (opcode 20): Power level (4) does not match level (7) >>>>Headers 0 though 6 Effect 2 (opcode 139): Power level (4) does not match level (7) >>>>Headers 0 though 6 Effect 3 (opcode 141): Power level (4) does not match level (7) >>>>Headers 0 though 6 Effect 4 (opcode 20): Power level (4) does not match level (7) >>>>Headers 0 though 6 Effect 7 (opcode 146): Power level (4) does not match level (7) spwi722.spl // Limited Wish: No spell school or multiple schools found in description >>>>Header 0 Effect 0 (opcode 177): Power level (0) does not match level (7) spwi723.spl // Improved Chaos Shield*: >>>>Header 0 Effect 0 (opcode 281): Power level (0) does not match level (7) >>>>Header 0 Effect 1 (opcode 142): Power level (0) does not match level (7) >>>>Header 0 Effect 2 (opcode 215): Power level (4) does not match level (7) >>>>Header 0 Effect 3 (opcode 206): Power level (0) does not match level (7) >>>>Header 0 Effect 4 (opcode 206): Power level (0) does not match level (7) spwi803.spl // Protection From Energy: >>>>Headers 1 though 4 Effect 11 (opcode 215): Power level (7) does not match level (8) spwi805.spl // Pierce Shield: >>Headers 0 through 4: Range (40) is not exactly visual range spwi807.spl // Summon Fiend: >>Header 0: Range (35) is not exactly visual range spwi810.spl // Incendiary Cloud: >>Headers 0 through 4: Range (40) is not exactly visual range spwi811.spl // Symbol, Fear: No spell school or multiple schools found in description >>Headers 0 through 2: Range (70) does not match description (30) spwi812.spl // Abi-Dalzim's Horrid Wilting: >>Headers 0 through 4: Range (40) is not exactly visual range >>>>Headers 0 though 4 Effect 2 (opcode 141): Power level (0) does not match level (8) spwi813.spl // Maze: No spell school or multiple schools found in description >>Header 0: Range (3) does not match description (0) spwi816.spl // Symbol, Stun: No spell school or multiple schools found in description >>Headers 0 through 2: Range (70) does not match description (30) spwi817.spl // Symbol, Death: No spell school or multiple schools found in description >>Header 0: Range (70) does not match description (30) spwi818.spl // Bigby's Clenched Fist: >>Header 0: Range (35) is not exactly visual range >>>>Header 0 Effect 1 (opcode 174): Power level (3) does not match level (8) >>>>Header 0 Effect 15 (opcode 215): Power level (3) does not match level (8) spwi903.spl // Spellstrike: No spell school or multiple schools found in description >>Header 0: Range (80) is not exactly visual range spwi905.spl // Gate: No spell school or multiple schools found in description >>Header 0: Range (30) is not exactly visual range spwi908.spl // Chain Contingency: >>Header 0: Casting time in description (90) does not match casting time (9) >>>>Header 0 Effect 0 (opcode 234): Power level (0) does not match level (9) spwi910.spl // Imprisonment: >>>>Header 0 Effect 2 (opcode 215): Power level (8) does not match level (9) >>>>Header 0 Effect 3 (opcode 215): Power level (8) does not match level (9) spwi911.spl // Meteor Swarm: >>Header 0: Range (50) does not match description (90) spwi912.spl // Power Word, Kill: No spell school or multiple schools found in description >>Header 0: Range (80) is not exactly visual range spwi913.spl // Wail of the Banshee: >>>>Header 0 Effect 2 (opcode 174): Power level (7) does not match level (9) >>>>Global effects: Power level (0) does not match level (9) spwi916.spl // Shapechange: >>>>Header 0 Effect 19 (opcode 215): Power level (4) does not match level (9) >>>>Header 0 Effect 20 (opcode 215): Power level (4) does not match level (9) >>>>Header 0 Effect 21 (opcode 206): spwi917.spl // Freedom: >>Header 0: Range (320) does not match description (0) >>>>Header 0 Effect 1 (opcode 146): Power level (0) does not match level (9) spwi918.spl // Bigby's Crushing Hand: >>Header 0: Range (35) is not exactly visual range spwi919.spl // Wish: No spell school or multiple schools found in description >>>>Header 0 Effect 0 (opcode 67): Power level (0) does not match level (9) spwi921.spl // Improved Alacrity: Power level (1) does not match previous effect (9) spwi922.spl // Dragon's Breath: >>Header 0: Range (320) is not exactly visual range spwi925.spl // Comet: >>Header 0: Range (50) does not match description (90) spwi999.spl // <Invalid Strref -1>: >>Header 0: Required level of first extended header is 5 rather than one! Sorry, manual labor is all kinds of beneath me. Link to comment
Miloch Posted January 19, 2008 Share Posted January 19, 2008 I'd been waiting until I finished a DECOMPRESS_BAMC_TO_BAM macroLet me know if you do, unless bigg beats you to it. Link to comment
Nythrun Posted January 19, 2008 Share Posted January 19, 2008 Other than cussedness*, there's really no reason not to do ACTION_IF NOT FILE_EXISTS ~override/bam.bam~ THEN BEGIN COPY_EXISTING bam.bam override AT_NOW batch_file_what_calls_zlib END COPY_EXISTING bam.bam DO_PATCHES. *by cussedness I mean "let's dodge the Vista bullet", which OS probably won't even let you install archive compressors you might have contracted from bittorrent just in case you might accidentally squish a .dll. Link to comment
Nythrun Posted January 20, 2008 Share Posted January 20, 2008 In the above list, pretty much all of the .eff errors are from the elven/sleep charm fix not adding saving throws or power levels (and being added to stuff like Emotion where it ought not go, but that's another matter). Fewer than 10% of player accessible spells with descriptions got their range correct - either the area of effect is confused with the range, or feet are confused with yards, or visual range is a number between 5 and 140, or.... Some of the power errors are probably Bioware's attempt to make always-run effects. The implementation is so inconsistent it's hard to say in any given situation what's going on. Summoning spells still ought to be power zero. The only global effect that probably isn't a misimplementation isFireball's set global variable. Too bad its usage in script is not all that dependable. Link to comment
devSin Posted January 20, 2008 Author Share Posted January 20, 2008 The only global effect that probably isn't a misimplementation isFireball's set global variable. Too bad its usage in script is not all that dependable.Oh, I think the slaver mages and bounty hunters in AR1800 would beg to differ! Scatter! The global effects are cool except for the Wail immunities ('cause, like, the projectile can't even target the caster). Sunfire was also like that (instead of using the no-center projectile), but I guess we (or you) already change it since it doesn't show up with global effects. Ranges >= 30 are valid as Range: 30 and Range: Visual (since spellcasting is capped at 30, there's no difference between it and 140). Link to comment
Nythrun Posted January 20, 2008 Share Posted January 20, 2008 I remember reloading several times to get that to trigger - it was an awfully cool idea. They get to take about a step before the spell goes off and it's haywire time if the last FireBall© cast by [ANYONE] was interrupted, but it's another attempt at detectable spells that doesn't clog stats. Perhaps not cool enough to have been sloppily cut and pasted into Solar Stance, but cool idea all the same. The global effects on snares don't work in ToB and contributed to crashes in SoA, so I plucked them out already, along with all the dumb banshee clones. Ranges > 30 should only matter in cases of NPC "attack my target" scripts with a spotter, or PCs using Wizard Eye. It's awfully marginal to be bothering with, but so's the rest of it I'd love to know how the random projectile changes in Chaotic Commands and Greater Command might have happened. DLTCP is making the Bioware editors look bad Link to comment
devSin Posted January 20, 2008 Author Share Posted January 20, 2008 The global effects on snares don't work in ToB and contributed to crashes in SoA, so I plucked them out already, along with all the dumb banshee clones.Really? Or just a "too many map notes" crash? I never payed attention with SoA, and they don't do anything bad or good in ToB, so it just kept my patch size down to ignore them (lord knows my patch for Yoshimo's special trap is already hideous). Ranges > 30 should only matter in cases of NPC "attack my target" scripts with a spotter, or PCs using Wizard Eye. It's awfully marginal to be bothering with, but so's the rest of it IIRC, the spellcaster should still walk to their own visual range, but I've never actually payed attention to the ins and outs of the mechanics (certainly just having a PC or familiar who can see the target doesn't increase the casting range beyond 30). ForceSpell() and such can target any range (the spell's range is completely ignored) and through any obstacle. I'd love to know how the random projectile changes in Chaotic Commands and Greater Command might have happened. DLTCP is making the Bioware editors look bad It does suck. Based on how they built or modified other spells, maybe they created the first ability for a spell and then duplicated for the rest; the stink is whether the original projectile is the right one (they created the "ideal" header) or whether it's a mistake introduced when copying from a template or another similar spell (and was corrected with additional abilities as they had to change all the effects anyway). Luckily, the schools correspond to unique colors of the "sparkle" projectiles, so it's easy to figure out what's right for enchantments (although I thought Chaotic Commands should be touch -- Range 1 with no projectile); Greater Command should have been an invisible area with whip animations (I think I make this change if the effects aren't already there). Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.