Guest Iroquois Posted August 17, 2007 Share Posted August 17, 2007 I looked through the documented fixes and forum, but I didn't see any of these. If you already have them fixed, or don't think they should, then don't worry about it. Melf's Acid Arrow's portrait icon bypasses resistance, level 1 set to projectile with casting time 2. Berserker's Enrage Immunity to Maze not dispellable. Mace of Disruption +1/+2 only does 2 extra damage to undead. Teleport Field is no save/not dispellable/bypass resistance I heard the fixpack makes Spell Shield dispellable. I am strongly against this, as it is one of the few ways to beat beholders. If I read the forum right you gave ipsion.itm immunity to intelligence bonus. Ipsion.itm does not need immunity to intelligence bonus, this is included in the sword01.cre file, and makes the ipsion.itm more than an immunity to psionics item. The rest I have read so far I either agree with, or don't have any opinion on. Link to comment
Nythrun Posted December 12, 2007 Share Posted December 12, 2007 I think the only active issues here are the Melf's screwiness and the teleport field description/file mismatch. Greenstone amulets are inaccessible to the player in BGII, and Spell Shield is not being made dispellable Link to comment
CamDawg Posted January 7, 2008 Share Posted January 7, 2008 Melf's Acid Arrow's portrait icon bypasses resistance, level 1 set to projectile with casting time 2. // portrait icon for melf's acid arrow bypasses MR though spell itself does not COPY_EXISTING ~spwi211.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 WRITE_SHORT ("%abil_off%" + (0x28 * "%index%")) 1 // change to melee (lvl 1 header is ranged) 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" PATCH_IF ("%opcode%" = 142) BEGIN WRITE_BYTE ("%fx_off%" + 0x0d + (0x30 * ("%index2%" + "%abil_fx_idx%"))) 1 // dispel/not bypass MR END END END BUT_ONLY_IF_IT_CHANGES Berserker's Enrage Immunity to Maze not dispellable. No effects are dispellable here. Mace of Disruption +1/+2 only does 2 extra damage to undead. This is that lovely new non-behavior of damage v. type noted by demivrgvs; the extra damage is supposed to be 1d6 +2 but the die roll is ignored. Argh. The IMoD patch was already pretty nasty, so this just gets rolled into the existing patch. // %$#*$&^ damage vs type opcode. remove global 'use eff' opcode; move to melee header // see macedisr.eff for second half of this fix COPY_EXISTING ~blun12.itm~ ~override~ READ_LONG 0x64 "abil_off" READ_SHORT 0x68 "abil_num" READ_LONG 0x6a "fx_off" READ_SHORT 0x70 "fx_num" SET "fx_delta" = 0 FOR (index = 0; index < fx_num; index = index + 1) BEGIN READ_SHORT ("%fx_off%" + ("%index%" * 0x30)) "type" READ_ASCII ("%fx_off%" + 0x14 + ("%index%" * 0x30)) "eff_file" PATCH_IF (("%type%" = 177) AND ("macedisr" STRING_COMPARE_CASE "%eff_file%" = 0)) BEGIN DELETE_BYTES ("%fx_off%" + ("%index%" * 0x30)) 0x30 // delete effect SET "fx_num" = ("%fx_num%" - 1) SET "fx_delta" = ("%fx_delta%" - 1) SET "index" = ("%index%" - 1) END END WRITE_SHORT 0x70 "%fx_num%" FOR (index2 = 0; index2 < abil_num; index2 = index2 + 1) BEGIN READ_BYTE ("%abil_off%" + ("%index2%" * 0x38)) "type" READ_SHORT ("%abil_off%" + 0x20 + ("%index2%" * 0x38)) "abil_fx_idx" SET "abil_fx_idx" = ("%abil_fx_idx%" + "%fx_delta%") WRITE_SHORT ("%abil_off%" + 0x20 + ("%index2%" * 0x38)) "%abil_fx_idx%" PATCH_IF ("%type%" = 1) BEGIN // melee ability check READ_SHORT ("%abil_off%" + 0x1e + ("%index2%" * 0x38)) "abil_fx_num" WRITE_SHORT ("%abil_off%" + 0x1e + ("%index2%" * 0x38)) ("%abil_fx_num%" + 1) INSERT_BYTES ("%fx_off%" + ("%abil_fx_idx%" * 0x30)) 0x30 // new effect WRITE_SHORT ("%fx_off%" + ("%abil_fx_idx%" * 0x30)) 177 // use eff WRITE_BYTE ("%fx_off%" + 0x02 + ("%abil_fx_idx%" * 0x30)) 2 // target: preset target WRITE_LONG ("%fx_off%" + 0x04 + ("%abil_fx_idx%" * 0x30)) 4 // UNDEAD from... WRITE_LONG ("%fx_off%" + 0x08 + ("%abil_fx_idx%" * 0x30)) 3 // general.ids WRITE_BYTE ("%fx_off%" + 0x0c + ("%abil_fx_idx%" * 0x30)) 1 // instant/permanent WRITE_BYTE ("%fx_off%" + 0x12 + ("%abil_fx_idx%" * 0x30)) 100 // probability WRITE_ASCII ("%fx_off%" + 0x14 + ("%abil_fx_idx%" * 0x30)) ~macedisr~ // resref SET "fx_delta" = ("%fx_delta%" + 1) END END BUT_ONLY_IF_IT_CHANGES // level drain now handled by batch fixes // changes the icon from generic mace to MoD's one. Also see macedisu.eff. // new for v4; fix ^&% damage v opcode no-die bug COPY_EXISTING ~blun25.itm~ ~override~ WRITE_ASCII 0x3a ~iblun12~ #8 // use MoD BAM WRITE_ASCII 0x44 ~gblun06~ #8 // use MoD BAM WRITE_ASCII 0x58 ~cblun12~ #8 // use MoD BAM READ_LONG 0x64 "abil_off" READ_SHORT 0x68 "abil_num" READ_LONG 0x6a "fx_off" READ_SHORT 0x70 "fx_num" SET "fx_delta" = 0 FOR (index = 0; index < fx_num; index = index + 1) BEGIN READ_SHORT ("%fx_off%" + ("%index%" * 0x30)) "type" READ_ASCII ("%fx_off%" + 0x14 + ("%index%" * 0x30)) "eff_file" PATCH_IF (("%type%" = 177) AND ("macedisr" STRING_COMPARE_CASE "%eff_file%" = 0)) BEGIN // change use macedisr eff to colorglow pulse WRITE_SHORT ("%fx_off%" + ("%index%" * 0x30)) 9 // colorglow pulse WRITE_BYTE ("%fx_off%" + 0x02 + ("%index%" * 0x30)) 1 // target self WRITE_BYTE ("%fx_off%" + 0x06 + ("%index%" * 0x30)) 202 // green WRITE_BYTE ("%fx_off%" + 0x07 + ("%index%" * 0x30)) 255 // blue WRITE_SHORT ("%fx_off%" + 0x08 + ("%index%" * 0x30)) 21 // weapon head/blade minor WRITE_SHORT ("%fx_off%" + 0x0a + ("%index%" * 0x30)) 0x6e // cycle speed WRITE_BYTE ("%fx_off%" + 0x0c + ("%index%" * 0x30)) 2 // instant/while equipped WRITE_LONG ("%fx_off%" + 0x0e + ("%index%" * 0x30)) 0 // duration WRITE_BYTE ("%fx_off%" + 0x12 + ("%index%" * 0x30)) 100 // probability 1 WRITE_LONG ("%fx_off%" + 0x24 + ("%index%" * 0x30)) 0 // blank save, just in case END END FOR (index2 = 0; index2 < abil_num; index2 = index2 + 1) BEGIN READ_BYTE ("%abil_off%" + ("%index2%" * 0x38)) "type" READ_SHORT ("%abil_off%" + 0x1e + ("%index2%" * 0x38)) "abil_fx_num" READ_SHORT ("%abil_off%" + 0x20 + ("%index2%" * 0x38)) "abil_fx_idx" SET "abil_fx_idx" = ("%abil_fx_idx%" + "%fx_delta%") WRITE_SHORT ("%abil_off%" + 0x20 + ("%index2%" * 0x38)) ("%abil_fx_idx%") PATCH_IF ("%type%" = 1) BEGIN // melee ability check SET "eff_count" = 0 WRITE_ASCII (0x04 + "%abil_off%" + ("%index2%" * 0x38)) ~iblun12~ #8 // use MoD BAM FOR (index3 = 0; index3 < abil_fx_num; index3 = index3 + 1) BEGIN READ_SHORT ("%fx_off%" + (("%abil_fx_idx%" + "%index3%") * 0x30)) "opcode" READ_ASCII ("%fx_off%" + 0x14 + (("%abil_fx_idx%" + "%index3%") * 0x30)) "resref" // first fix misordered effects bug PATCH_IF (("%opcode%" = 177) AND (("mesdie" STRING_COMPARE_CASE "%resref%" = 0) OR ("die" STRING_COMPARE_CASE "%resref%" = 0))) BEGIN PATCH_IF ("%eff_count%" = 0) BEGIN WRITE_ASCII ("%fx_off%" + 0x14 + (("%abil_fx_idx%" + "%index3%") * 0x30)) "mesdie" #8 SET "eff_count" = 1 END ELSE BEGIN WRITE_ASCII ("%fx_off%" + 0x14 + (("%abil_fx_idx%" + "%index3%") * 0x30)) "die" #8 END WRITE_LONG ("%fx_off%" + 0x24 + (("%abil_fx_idx%" + "%index3%") * 0x30)) 17 // save handled by EFF WRITE_LONG ("%fx_off%" + 0x28 + (("%abil_fx_idx%" + "%index3%") * 0x30)) 19 // save handled by EFF END END // then add new effect for undead damage WRITE_SHORT ("%abil_off%" + 0x1e + ("%index2%" * 0x38)) ("%abil_fx_num%" + 1) INSERT_BYTES ("%fx_off%" + ("%abil_fx_idx%" * 0x30)) 0x30 // new effect WRITE_SHORT ("%fx_off%" + ("%abil_fx_idx%" * 0x30)) 177 // use eff WRITE_BYTE ("%fx_off%" + 0x02 + ("%abil_fx_idx%" * 0x30)) 2 // target: preset target WRITE_LONG ("%fx_off%" + 0x04 + ("%abil_fx_idx%" * 0x30)) 4 // UNDEAD from... WRITE_LONG ("%fx_off%" + 0x08 + ("%abil_fx_idx%" * 0x30)) 3 // general.ids WRITE_BYTE ("%fx_off%" + 0x0c + ("%abil_fx_idx%" * 0x30)) 1 // instant/permanent WRITE_BYTE ("%fx_off%" + 0x12 + ("%abil_fx_idx%" * 0x30)) 100 // probability WRITE_ASCII ("%fx_off%" + 0x14 + ("%abil_fx_idx%" * 0x30)) ~macedisu~ // resref SET "fx_delta" = ("%fx_delta%" + 1) END END BUT_ONLY_IF_IT_CHANGES // change from damage v type (179) to damage (12); see blun12.itm COPY_EXISTING ~macedisr.eff~ ~override~ WRITE_LONG 0x10 12 // opcode: damage WRITE_LONG 0x1c 2 // fixed damage WRITE_SHORT 0x20 0 // straight butter, baby WRITE_SHORT 0x60 0 // param3 not needed BUT_ONLY_IF_IT_CHANGES // changes bonus damage to undead for IMoD (blun25.itm) to 1d6 + 1 to bring total to 2d6 +4 COPY_EXISTING ~macedisr.eff~ ~override/macedisu.eff~ WRITE_LONG 0x1c 1 // fixed damage Teleport Field is no save/not dispellable/bypass resistance The description mentions that saves negate the effect, but it's coded for no save. Usual question: change spell or description? Link to comment
Caedwyr Posted January 8, 2008 Share Posted January 8, 2008 QUOTE(Iroquois @ Aug 16 2007, 07:54 PM) *Teleport Field is no save/not dispellable/bypass resistance The description mentions that saves negate the effect, but it's coded for no save. Usual question: change spell or description? I vote for change description. It'd be a fairly severe nerf of an already largely middling spell if the save were allowed. Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.