devSin Posted April 4, 2006 Share Posted April 4, 2006 My Hardiness only has two abilities (identical, no less). The desc says 1 round / 2 levels (max 15 rounds at L30). I can't decide which is the bug, and I don't know if it's been fixed here. The Wish version almost makes it, but stops at L28. I guess the solution is somewhere in-between. Link to comment
CamDawg Posted April 8, 2006 Share Posted April 8, 2006 I hate missing spell headers. // hardiness missing high level headers COPY_EXISTING ~spcl907.spl~ ~override~ // hardiness hla ~spwish12.spl~ ~override~ // hardiness via wish READ_LONG 0x64 "abil_off" READ_SHORT 0x68 "abil_num" READ_LONG 0x6a "fx_off" READ_LONG ("%abil_off%" + 0x10 + (("%abil_num%" - 1) * 0x28)) "min_level" // min level of last ability header FOR (index = min_level + 2; index < 31; index = index + 2) BEGIN READ_ASCII ("%abil_off%" + (("%abil_num%" - 1) * 0x28)) "abil_clone" (0x28) // reads last ability as block READ_SHORT ("%abil_off%" + 0x1e + (("%abil_num%" - 1) * 0x28)) "abil_fx_num" // reads number of fx from last ability READ_SHORT ("%abil_off%" + 0x20 + (("%abil_num%" - 1) * 0x28)) "abil_fx_idx" // reads index of last effects from last ability // create effects for next level based off previous level effects FOR (index2 = 0; index2 < abil_fx_num; index2 = index2 + 1) BEGIN READ_ASCII ("%fx_off%" + (("%abil_fx_idx%" + "%index2%") * 0x30)) "clone_fx" (0x30) // reads entire effect READ_LONG ("%fx_off%" + 0x0e + (("%abil_fx_idx%" + "%index2%") * 0x30)) "duration" // duration INSERT_BYTES ("%fx_off%" + (("%abil_fx_idx%" + "%abil_fx_num%" + "%index2%") * 0x30)) 0x30 WRITE_EVALUATED_ASCII ("%fx_off%" + (("%abil_fx_idx%" + "%abil_fx_num%" + "%index2%") * 0x30)) "%clone_fx%" // clones effect PATCH_IF ("%duration%" > 5) BEGIN // if more than one round WRITE_LONG ("%fx_off%" + 0x0e + (("%abil_fx_idx%" + "%abil_fx_num%" + "%index2%") * 0x30)) ("%duration%" + 6) // duration + round END END // effects created, now add new ability INSERT_BYTES ("%abil_off%" + ("%abil_num%" * 0x28)) 0x28 WRITE_EVALUATED_ASCII ("%abil_off%" + ("%abil_num%" * 0x28)) "%abil_clone%" // clones last ability WRITE_LONG ("%abil_off%" + 0x10 + ("%abil_num%" * 0x28)) "%index%" // min level WRITE_SHORT ("%abil_off%" + 0x20 + ("%abil_num%" * 0x28)) ("%abil_fx_num%" + "%abil_fx_idx%") // corrects fx index SET "fx_off" = ("%fx_off%" + 0x28) SET "abil_num" = "%abil_num%" + 1 END WRITE_SHORT 0x68 "%abil_num%" WRITE_LONG 0x6a "%fx_off%" BUT_ONLY_IF_IT_CHANGES This gives both a full suite of level 20 - level 30 headers. Where are you getting the level 30 cap info? I don't see it in the description. Link to comment
devSin Posted April 8, 2006 Author Share Posted April 8, 2006 High-level junk caps out at 30 (according to how BioWare did the unused ToB Bhaalspawn abilities and such). I don't know why, but it seems a reasonable arbitrary decision. Link to comment
CamDawg Posted April 8, 2006 Share Posted April 8, 2006 Consistency is good enough for me. Moving to archived fixes... Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.