CamDawg Posted March 25, 2005 Share Posted March 25, 2005 Holy Smite has some issues at levels 6 and 7--blind is permanent and without duration, and hitinvwa had incorrect timing. It has the additional issue of missing its level 20 ability header (and necessary eff). // new eff needed for level 20 holy smite COPY_EXISTING ~SP313L19.EFF~ ~override/SP313L20.EFF~ WRITE_LONG 0x38 20 // holy smite missing level 20 abilities, a few effects mistargeted and/or wrong duration at lev 6, 7 COPY_EXISTING ~sppr313.spl~ ~override~ READ_LONG 0x64 "abil_off" READ_SHORT 0x68 "abil_num" READ_LONG 0x6a "fx_off" SET "delta" = 0 SET "loops" = 0 SET "min_lev" = 0 WHILE ("%abil_num%" > 0) BEGIN // grabs last ability (lev 19) and does patching for lev 6, 7 abilities SET "abil_num" = ("%abil_num%" - 1) READ_SHORT ("%abil_off%" + 0x10 + (0x28 * "%abil_num%")) "level" PATCH_IF ("%min_lev%" = 0) BEGIN SET "min_lev" = "%level%" // sets min_lev to use last ability END PATCH_IF (("%level%" = 6) OR ("%level%" = 7)) 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_ASCII ("%fx_off%" + 0x14 + (0x30 * ("%abil_fx_idx%" + "%abil_fx_num%"))) "eff_file" PATCH_IF ("%eff_file%" STRING_COMPARE_CASE "hitinvwa" = 0) BEGIN WRITE_BYTE ("%fx_off%" + 0x0c + (0x30 * ("%abil_fx_idx%" + "%abil_fx_num%"))) 1 // instant/permanent END ELSE PATCH_IF ("%eff_file%" STRING_COMPARE_CASE "blind" = 0) BEGIN WRITE_BYTE ("%fx_off%" + 0x0c + (0x30 * ("%abil_fx_idx%" + "%abil_fx_num%"))) 0 // instant/limited WRITE_LONG ("%fx_off%" + 0x0e + (0x30 * ("%abil_fx_idx%" + "%abil_fx_num%"))) 6 // duration END END END END PATCH_IF ("%min_lev%" < 20) BEGIN INSERT_BYTES "%fx_off%" 0x28 SET "delta" = 1 READ_LONG (("%fx_off%" - 0x28) ) "abil_clone1" READ_LONG (("%fx_off%" - 0x28) + 0x04) "abil_clone2" READ_LONG (("%fx_off%" - 0x28) + 0x08) "abil_clone3" READ_LONG (("%fx_off%" - 0x28) + 0x0c) "abil_clone4" READ_LONG (("%fx_off%" - 0x28) + 0x12) "abil_clone5" READ_LONG (("%fx_off%" - 0x28) + 0x16) "abil_clone6" READ_LONG (("%fx_off%" - 0x28) + 0x1a) "abil_clone7" READ_SHORT (("%fx_off%" - 0x28) + 0x1e) "abil_fx_num" READ_SHORT (("%fx_off%" - 0x28) + 0x20) "abil_fx_idx" READ_LONG (("%fx_off%" - 0x28) + 0x22) "abil_clone8" READ_SHORT (("%fx_off%" - 0x28) + 0x26) "abil_clone9" END WHILE ("%delta%" > "%loops%") BEGIN // this clones the lev 19 abilities to the lev 20 one WRITE_LONG (("%fx_off%" + (0x28 * "%loops%")) ) "%abil_clone1%" WRITE_LONG (("%fx_off%" + (0x28 * "%loops%")) + 0x04) "%abil_clone2%" WRITE_LONG (("%fx_off%" + (0x28 * "%loops%")) + 0x08) "%abil_clone3%" WRITE_LONG (("%fx_off%" + (0x28 * "%loops%")) + 0x0c) "%abil_clone4%" WRITE_SHORT (("%fx_off%" + (0x28 * "%loops%")) + 0x10) ("%min_lev%" + 1 + "%loops%") WRITE_LONG (("%fx_off%" + (0x28 * "%loops%")) + 0x12) "%abil_clone5%" WRITE_LONG (("%fx_off%" + (0x28 * "%loops%")) + 0x16) "%abil_clone6%" WRITE_LONG (("%fx_off%" + (0x28 * "%loops%")) + 0x1a) "%abil_clone7%" WRITE_SHORT (("%fx_off%" + (0x28 * "%loops%")) + 0x1e) "%abil_fx_num%" WRITE_SHORT (("%fx_off%" + (0x28 * "%loops%")) + 0x20) ("%abil_fx_idx%" + (("%loops%" + 1) * "%abil_fx_num%")) WRITE_LONG (("%fx_off%" + (0x28 * "%loops%")) + 0x22) "%abil_clone8%" WRITE_SHORT (("%fx_off%" + (0x28 * "%loops%")) + 0x26) "%abil_clone9%" SET "loops" = ("%loops%" + 1) END WRITE_SHORT 0x68 ("%abil_num%" + "%delta%") SET "fx_off" = ("%fx_off%" + (0x28 * "%delta%")) WRITE_LONG 0x6a "%fx_off%" INSERT_BYTES ("%fx_off%" + (0x30 * ("%abil_fx_num%" + "%abil_fx_idx%"))) (0x30 * ("%delta%" * "%abil_fx_num%")) WHILE ("%delta%" > 0) BEGIN SET "loops" = "%abil_fx_num%" WHILE ("%loops%" > 0) BEGIN SET "loops" = ("%loops%" - 1) READ_LONG ("%fx_off%" + 0x00 + (0x30 * ("%loops%" + "%abil_fx_idx%"))) "clone" WRITE_LONG ("%fx_off%" + 0x00 + (0x30 * ("%loops%" + "%abil_fx_idx%")) + ("%delta%" * (0x30 * "%abil_fx_num%"))) "%clone%" READ_LONG ("%fx_off%" + 0x04 + (0x30 * ("%loops%" + "%abil_fx_idx%"))) "clone" WRITE_LONG ("%fx_off%" + 0x04 + (0x30 * ("%loops%" + "%abil_fx_idx%")) + ("%delta%" * (0x30 * "%abil_fx_num%"))) "%clone%" READ_LONG ("%fx_off%" + 0x08 + (0x30 * ("%loops%" + "%abil_fx_idx%"))) "clone" WRITE_LONG ("%fx_off%" + 0x08 + (0x30 * ("%loops%" + "%abil_fx_idx%")) + ("%delta%" * (0x30 * "%abil_fx_num%"))) "%clone%" READ_LONG ("%fx_off%" + 0x0c + (0x30 * ("%loops%" + "%abil_fx_idx%"))) "clone" WRITE_LONG ("%fx_off%" + 0x0c + (0x30 * ("%loops%" + "%abil_fx_idx%")) + ("%delta%" * (0x30 * "%abil_fx_num%"))) "%clone%" READ_LONG ("%fx_off%" + 0x10 + (0x30 * ("%loops%" + "%abil_fx_idx%"))) "clone" WRITE_LONG ("%fx_off%" + 0x10 + (0x30 * ("%loops%" + "%abil_fx_idx%")) + ("%delta%" * (0x30 * "%abil_fx_num%"))) "%clone%" READ_ASCII ("%fx_off%" + 0x14 + (0x30 * ("%loops%" + "%abil_fx_idx%"))) "eff_again" PATCH_IF ("%eff_again%" STRING_COMPARE_CASE "sp313l19" = 0) BEGIN WRITE_ASCII ("%fx_off%" + 0x14 + (0x30 * ("%loops%" + "%abil_fx_idx%")) + ("%delta%" * (0x30 * "%abil_fx_num%"))) ~sp313l20~ END ELSE BEGIN WRITE_EVALUATED_ASCII ("%fx_off%" + 0x14 + (0x30 * ("%loops%" + "%abil_fx_idx%")) + ("%delta%" * (0x30 * "%abil_fx_num%"))) "%eff_again%" END READ_LONG ("%fx_off%" + 0x1c + (0x30 * ("%loops%" + "%abil_fx_idx%"))) "clone" WRITE_LONG ("%fx_off%" + 0x1c + (0x30 * ("%loops%" + "%abil_fx_idx%")) + ("%delta%" * (0x30 * "%abil_fx_num%"))) "%clone%" READ_LONG ("%fx_off%" + 0x20 + (0x30 * ("%loops%" + "%abil_fx_idx%"))) "clone" WRITE_LONG ("%fx_off%" + 0x20 + (0x30 * ("%loops%" + "%abil_fx_idx%")) + ("%delta%" * (0x30 * "%abil_fx_num%"))) "%clone%" READ_LONG ("%fx_off%" + 0x24 + (0x30 * ("%loops%" + "%abil_fx_idx%"))) "clone" WRITE_LONG ("%fx_off%" + 0x24 + (0x30 * ("%loops%" + "%abil_fx_idx%")) + ("%delta%" * (0x30 * "%abil_fx_num%"))) "%clone%" READ_LONG ("%fx_off%" + 0x28 + (0x30 * ("%loops%" + "%abil_fx_idx%"))) "clone" WRITE_LONG ("%fx_off%" + 0x28 + (0x30 * ("%loops%" + "%abil_fx_idx%")) + ("%delta%" * (0x30 * "%abil_fx_num%"))) "%clone%" READ_LONG ("%fx_off%" + 0x2c + (0x30 * ("%loops%" + "%abil_fx_idx%"))) "clone" WRITE_LONG ("%fx_off%" + 0x2c + (0x30 * ("%loops%" + "%abil_fx_idx%")) + ("%delta%" * (0x30 * "%abil_fx_num%"))) "%clone%" END SET "delta" = ("%delta%" - 1) END BUT_ONLY_IF_IT_CHANGES Link to comment
CamDawg Posted March 28, 2005 Author Share Posted March 28, 2005 Included in alpha 3. Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.