plainab Posted October 21, 2008 Share Posted October 21, 2008 Just got here to report an issue and noticed that there is a new version. Perhaps this has been fixed and I have yet to find out. I will report what I have found and you can check it out for yourself. I noticed this when doing some work on my party ai script. The following trigger caused my script's installation to fail in an EasyTutu install with SCS among other things installed. CheckStatGT(Myself,1,HIDEINSHADOWS) Why do I ask in SCS about this? SCS version 8 does the following to the stats.ids file COPY_EXISTING ~STATS.IDS~ ~override~ // SET_2DA_ENTRY 0 0 1 ~1~ //that's a trick for WeiDU to handle row numbers properly - removes all leading empty rows COUNT_2DA_ROWS 2 "rows_cnt" FOR( cnt=1; cnt<"%rows_cnt%"+1; cnt=cnt+1 ) BEGIN READ_2DA_ENTRY (cnt+0xffffffff) 0 2 "id" PATCH_IF( "%id%" = 109 ) BEGIN SET_2DA_ENTRY cnt 1 2 ~CLERIC_HALLOW~ END PATCH_IF( "%id%" = 110 ) BEGIN SET_2DA_ENTRY cnt 1 2 ~CLERIC_ARMOR_OF_FAITH~ END PATCH_IF( "%id%" = 116 ) BEGIN SET_2DA_ENTRY cnt 1 2 ~WIZARD_SPELL_DEFLECTION~ END PATCH_IF( "%id%" = 117 ) BEGIN SET_2DA_ENTRY cnt 1 2 ~PROTECTION_FROM_EVIL~ END PATCH_IF( "%id%" = 118 ) BEGIN SET_2DA_ENTRY cnt 1 2 ~TRUE_SIGHT~ END PATCH_IF( "%id%" = 119 ) BEGIN SET_2DA_ENTRY cnt 1 2 ~CLERIC_CHAOTIC_COMMANDS~ END PATCH_IF( "%id%" = 120 ) BEGIN SET_2DA_ENTRY cnt 1 2 ~CLERIC_INSECT_PLAGUE~ END PATCH_IF( "%id%" = 121 ) BEGIN SET_2DA_ENTRY cnt 1 2 ~CLERIC_BLADE_BARRIER~ END PATCH_IF( "%id%" = 122 ) BEGIN SET_2DA_ENTRY cnt 1 2 ~CLERIC_PHYSICAL_MIRROR~ END PATCH_IF( "%id%" = 123 ) BEGIN SET_2DA_ENTRY cnt 1 2 ~CLERIC_SHIELD_OF_THE_ARCHONS~ END PATCH_IF( "%id%" = 124 ) BEGIN SET_2DA_ENTRY cnt 1 2 ~CLERIC_REGENERATION~ END PATCH_IF( "%id%" = 125 ) BEGIN SET_2DA_ENTRY cnt 1 2 ~WIZARD_FIRE_SHIELD~ END PATCH_IF( "%id%" = 126 ) BEGIN SET_2DA_ENTRY cnt 1 2 ~WIZARD_PROTECTION_FROM_MAGIC_ENERGY~ END PATCH_IF( "%id%" = 127 ) BEGIN SET_2DA_ENTRY cnt 1 2 ~WIZARD_MISLEAD~ END PATCH_IF( "%id%" = 128 ) BEGIN SET_2DA_ENTRY cnt 1 2 ~WIZARD_PROTECTION_FROM_MAGIC_WEAPONS~ END PATCH_IF( "%id%" = 129 ) BEGIN SET_2DA_ENTRY cnt 1 2 ~WIZARD_SPELL_TURNING~ END PATCH_IF( "%id%" = 130 ) BEGIN SET_2DA_ENTRY cnt 1 2 ~WIZARD_PROTECTION_FROM_THE_ELEMENTS~ END PATCH_IF( "%id%" = 131 ) BEGIN SET_2DA_ENTRY cnt 1 2 ~CLERIC_FREE_ACTION~ END PATCH_IF( "%id%" = 132 ) BEGIN SET_2DA_ENTRY cnt 1 2 ~WIZARD_KHELBANS_WARDING_WHIP~ END PATCH_IF( "%id%" = 133 ) BEGIN SET_2DA_ENTRY cnt 1 2 ~CLERIC_DEFENSIVE_HARMONY~ END PATCH_IF( "%id%" = 134 ) BEGIN SET_2DA_ENTRY cnt 1 2 ~LEVELDRAIN~ END PATCH_IF( "%id%" = 156 ) BEGIN SET_2DA_ENTRY cnt 1 2 ~SCRIPTINGSTATE1~ END PATCH_IF( "%id%" = 157 ) BEGIN SET_2DA_ENTRY cnt 1 2 ~SCRIPTINGSTATE2~ END PATCH_IF( "%id%" = 158 ) BEGIN SET_2DA_ENTRY cnt 1 2 ~SCRIPTINGSTATE3~ END PATCH_IF( "%id%" = 159 ) BEGIN SET_2DA_ENTRY cnt 1 2 ~SCRIPTINGSTATE4~ END PATCH_IF( "%id%" = 160 ) BEGIN SET_2DA_ENTRY cnt 1 2 ~SCRIPTINGSTATE5~ END PATCH_IF( "%id%" = 161 ) BEGIN SET_2DA_ENTRY cnt 1 2 ~SCRIPTINGSTATE6~ END PATCH_IF( "%id%" = 162 ) BEGIN SET_2DA_ENTRY cnt 1 2 ~WIZARD_SPELL_IMMUNITY~ END PATCH_IF( "%id%" = 163 ) BEGIN SET_2DA_ENTRY cnt 1 2 ~WIZARD_PROTECTION_FROM_ENERGY~ END PATCH_IF( "%id%" = 164 ) BEGIN SET_2DA_ENTRY cnt 1 2 ~WIZARD_SPELL_TRAP~ END PATCH_IF( "%id%" = 165 ) BEGIN SET_2DA_ENTRY cnt 1 2 ~WIZARD_IMPROVED_ALACRITY~ END PATCH_IF( "%id%" = 176 ) BEGIN SET_2DA_ENTRY cnt 1 2 ~WIZARD_PROTECTION_FROM_PETRIFICATION~ END PATCH_IF( "%id%" = 177 ) BEGIN SET_2DA_ENTRY cnt 1 2 ~WIZARD_SPELL_SHIELD~ END PATCH_IF( "%id%" = 178 ) BEGIN SET_2DA_ENTRY cnt 1 2 ~WIZARD_RESIST_FEAR~ END PATCH_IF( "%id%" = 179 ) BEGIN SET_2DA_ENTRY cnt 1 2 ~WIZARD_PROTECTION_FROM_NORMAL_MISSILES~ END PATCH_IF( "%id%" = 180 ) BEGIN SET_2DA_ENTRY cnt 1 2 ~WIZARD_GREATER_MALISON~ END PATCH_IF( "%id%" = 181 ) BEGIN SET_2DA_ENTRY cnt 1 2 ~WIZARD_PROTECTION_FROM_NORMAL_WEAPONS~ END PATCH_IF( "%id%" = 182 ) BEGIN SET_2DA_ENTRY cnt 1 2 ~WIZARD_TENSERS_TRANSFORMATION~ END PATCH_IF( "%id%" = 200 ) BEGIN SET_2DA_ENTRY cnt 1 2 ~LEVELDRAIN_WRONG~ END END BUT_ONLY_IF_IT_CHANGES Where I have a real concern is this PATCH_IF( "%id%" = 134 ) BEGIN SET_2DA_ENTRY cnt 1 2 ~LEVELDRAIN~ END In my finalized stats.ids file I have 134 CLERIC_DEFENSIVE_HARMONY 135 LEVELDRAIN instead of the intended 134 LEVELDRAIN 135 HIDEINSHADOWS as entry 135 is the value for HIDEINSHADOWS in the original file. If one is off perhaps the entire list is off and who knows for sure what that could do to other stat checks throughout the game. I think the problem stems from the reading of the ID value with this READ_2DA_ENTRY (cnt+0xffffffff) 0 2 "id" and then just setting with this SET_2DA_ENTRY cnt 1 2 ~LEVELDRAIN~ What I'm trying to say is that if READ_2DA_ENTRY (cnt+0xffffffff) 0 2 equals 134 then it makes sense to use SET_2DA_ENTRY (cnt+0xffffffff) 1 2 ~LEVELDRAIN~ But I really don't understand why you add that 0xffffffff Here's an example of how I would have done it using your variables so that if after checking into things and this does need to be addressed in version 9 you can just try out my code here and copy in the other entries. COPY_EXISTING ~STATS.IDS~ ~override~ COUNT_2DA_COLS ~cols~ COUNT_2DA_ROWS %cols% ~rows_cnt~ FOR (cnt=0;cnt<%rows_cnt%;cnt+=1) BEGIN READ_2DA_ENTRY %cnt% 0 %cols% ~id~ PATCH_IF (%id% = 134) BEGIN SET_2DA_ENTRY %cnt% 1 %cols% ~LEVELDRAIN~ END END BUT_ONLY_IF_IT_CHANGES Link to comment
Taimon Posted October 23, 2008 Share Posted October 23, 2008 I think this has been replaced with the new Detectable Spells version. Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.