CamDawg Posted February 21, 2007 Share Posted February 21, 2007 ... is missing level 19 and 20 headers. In addition, durations on all effects at levels 17 and 18 are incorrect--the sound that plays at expiration goes off way too early, otherwise the durations should all be two seconds longer. Link to comment
CamDawg Posted March 1, 2007 Author Share Posted March 1, 2007 Fixed for v3. // champion's strength missing level 19,20 headers, wrong durations at levels 17,18 COPY_EXISTING ~sppr507.spl~ ~override~ // champion's strength READ_LONG 0x64 "abil_off" READ_SHORT 0x68 "abil_num" READ_LONG 0x6a "fx_off" READ_SHORT ("%abil_off%" + 0x10 + (("%abil_num%" - 1) * 0x28)) "min_level" // min level of last ability header FOR (index = min_level + 1; index < 21; index = index + 1) 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 INSERT_BYTES ("%fx_off%" + (("%abil_fx_idx%" + "%abil_fx_num%" + "%index2%") * 0x30)) 0x30 WRITE_ASCIIE ("%fx_off%" + (("%abil_fx_idx%" + "%abil_fx_num%" + "%index2%") * 0x30)) "%clone_fx%" // clones effect 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_SHORT ("%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%" // fixes durations for new abilities and levels 17,18 FOR (index = 0; index < abil_num; index = index + 1) BEGIN READ_SHORT ("%abil_off%" + 0x10 + ("%index%" * 0x28)) "min_lev" READ_SHORT ("%abil_off%" + 0x1e + ("%index%" * 0x28)) "abil_fx_num" READ_SHORT ("%abil_off%" + 0x20 + ("%index%" * 0x28)) "abil_fx_idx" PATCH_IF ("%min_lev%" = 1) BEGIN SET "min_lev" = 9 END FOR (index2 = 0; index2 < abil_fx_num; index2 = index2 + 1) BEGIN READ_LONG ("%fx_off%" + 0x0e + (("%abil_fx_idx%" + "%index2%") * 0x30)) "duration" PATCH_IF ("%duration%" > 5) BEGIN // if more than one round WRITE_LONG ("%fx_off%" + 0x0e + (("%abil_fx_idx%" + "%index2%") * 0x30)) ("%min_lev%" * 18) // 3 rounds/level END END END BUT_ONLY_IF_IT_CHANGES Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.