kreso Posted October 12, 2014 Share Posted October 12, 2014 Ok.... Now I think I understand why clerics in BG2 never cast Blade Barrier - it's missing from instantprep.ssl in bg2/prepblocks for priests. It indeed works in BG1, since instanprep.ssl in bg1/prepblocks includes it. Try adding this to instantprep.ssl for bg2: IF TRIGGER IgnoreBlock(IsOptionThree) RequireBlock(HasL6) IgnoreBlock(IsDruid) optiontwosub1 THEN DO Action(SpellPrecast,CLERIC_BLADE_BARRIER, p603) END And Raest was right - spell needs to be renamed from NPC_BLADE___blah blah to CLERIC_BLADE_BARRIER, all occurances. Should be only three anyway (2 for BG1 and 1 for BG2 in /mydefences.ssl, but that one doesn't really count.) Oddly, contrary to what Raest said, Symbol spells are used. The 3 mages he mentioned (hellslay, azamantes etc. ) cre files should be included in mage library (mage.tpa, there's a list at the bottom of script). Mad Mate, your turn. EDIT: There's also a (probably) never used occurance of Globe of Blades. priest/ssl/bg2/prepblocks/instantprep.ssl line 190 change to IF TRIGGER IgnoreBlock(IsOptionThree) optiontwosub1 !HasItem("dw#nopre",Myself) IgnoreBlock(HasNoPrep) RequireBlock(HasL7) IgnoreBlock(IsDruid) THEN DO Action(SpellPrecastHide,CLERIC_GLOBE_OF_BLADES, p725) END Should work I guess. Link to comment
Mad Mate Posted October 12, 2014 Share Posted October 12, 2014 snip NPC_BLADE_BARRIER is found in: ascension\ssl\finmaril.ssl fiend\ssl\marilith.ssl celestial\ssl\dw#dvpla.ssl celestial\ssl\dw#dvdev.ssl priest\ssl\bg1\combatblocks\my_defences.ssl priest\ssl\bg2\prepblocks\instantprep.ssl priest\ssl\bg2\combatblocks\my_defences.ssl Should I replace all occurrences with CLERIC_BLADE_BARRIER? If I replace it in bg2\prepblocks\instantprep.ssl, I don't have to add anything there. And CLERIC_GLOBE_OF_BLADES is already used in line 25 of the same instantprep.ssl Link to comment
kreso Posted October 12, 2014 Share Posted October 12, 2014 ..... I'll let you know tomorrow f I replace it in bg2\prepblocks\instantprep.ssl, I don't have to add anything there. And CLERIC_GLOBE_OF_BLADES is already used in line 25 of the same instantprep.ssl Globe of Blades I haven't seen used. It's possible my code in the post above is wrong. I'll check it out again tomorrow, I'm afwully sleepy. You can add this in bg2\prepblocks\instantprep.ssl, near the end if the code. That makes priests use Blade barrier in BG2. They won't use it otherwise, even if they have it memorized - and plenty of them do. IF TRIGGER IgnoreBlock(IsOptionThree) RequireBlock(HasL6) optiontwosub1 THEN DO Action(SpellPrecast,CLERIC_BLADE_BARRIER, p603) END (that Ignore if Druid is SR specific, so you don't have to use it) Link to comment
Mad Mate Posted October 13, 2014 Share Posted October 13, 2014 gorlic01, firlch01 and hellslay must be added in the mage.tpa bg2 scriptlist otherwise they are vanilla. Thank you, again, for reporting this. I added these 3 to the list and now they look like they should, level, spells, everything. snip What I meant to say :-) is (in priest\ssl\bg2\prepblocks\instantprep.ssl): I can change (line 199): Action(SpellPrecastHide,NPC_BLADE_BARRIER,p698) to Action(SpellPrecastHide,CLERIC_BLADE_BARRIER,p603) Then, I don't have to add any new code. But, we can do that tomorrow. :-) P.S. Updated file in post with: -mage\mage.tpa (line 1072) telwrai gororc03 bg2mage2 to telwrai gororc03 bg2mage2 gorlic01 firlch01 hellslay Reason: added 3 cre to mage list so they can get their levels and spells -drow\drow.tpa (line 10) ACTION_IF version=2 BEGIN to ACTION_IF version=1 BEGIN Reason: fixed Improved drow component (version 1 is Upgrade Ust Natha's defences, version 2 is Leave Ust Natha's defences alone), but code called opposite. Link to comment
kreso Posted October 13, 2014 Share Posted October 13, 2014 Then, I don't have to add any new code. But, we can do that tomorrow. :-) LOL. Yea, that will do. Link to comment
kreso Posted October 13, 2014 Share Posted October 13, 2014 There's two more nasty bugs. One is how innocent creatures turn hostile (example, in BG1, killing Iron Throne leaders in Candlekeep results in everybody going hostile); and the other is in Aldeth Sashenstar's quest in Baldurs Gate city - if you play that Dopplganger quest of his, you'll never be able to finish it since enemies will never turn into dopplegangers. Main suspects - for 1) probably something in "better calls for help" 2) can't really say; wild guess - some creature swaps/kit enforcement Link to comment
Salk Posted October 13, 2014 Share Posted October 13, 2014 Wow Mad Mate... Thanks for the excellent job of maintenance here... I am impressed... Link to comment
n-ghost Posted October 13, 2014 Share Posted October 13, 2014 Speaking of golems and statues — there's a similar encounter in Durlag's tower, iirc all creatures there are 'golems' (so they can't use potions etc), but they still can cast spells and such. Link to comment
kreso Posted October 13, 2014 Share Posted October 13, 2014 I think you may include Raest's list in mage list. It compiles correctly, I can't check in game since that blasted bug is still preventing my install.....grrr. Fixed. I cannot believe it. After 30-or-so re-installs, double-triple checks of my tweaked scripts, going back an forth, completely reinstalling BG2 (not from backup, I tought backup got bugged somehow, but from DVD), exploring SCS scripts inward and outward, asking for help (thanks Miloch!), searching on-line for possible sollutions, nothing worked. Install started to fail even w/o my scripting changes. Have I messed up something so bad, so the install botches out on a single creature - hellslay.cre? Should I delete it from override? Been there, done that. Didn't work.... Maybe DavidW specifically created a Weidu-trap for script editing, so one has to wait for all of "initialize mod", "smarter general AI" and "smarter mages" to install; which takes an hour w/o any other mods, just to bug out - on the very last piece of patching? I was about to give up. Nothing seemed to work - apart a succesfull install on EE 1. But there's no hellslay.cre there.... Then....a moment of prescience. It's not my code that's bugging out. It's a conspiracy code, and it's made for one sole reason - to give me an extra 10 hours work. And it's in these few, innocent-looking lines, made by Mad Mate to enable install with no HLAs. Brace yourselves - 'cause this code comes straight from Hell: LAF check_label STR_VAR label=dw#hla RET value END ACTION_IF value BEGIN ACTION_IF FILE_CONTAINS "%workspace%/hla_cre.2da" hellslay BEGIN ACTION_IF !VARIABLE_IS_SET hla_innate BEGIN LAF check_if_hlas_are_innate RET hla_innate END END END Jokes aside, what this does is prevent any install with HLA's.....there will be no hellslay.cre to patch..... Link to comment
Linthar Posted October 13, 2014 Share Posted October 13, 2014 I was just about to post about that same bit of code. Although my testing is showing that the problem seems to be specifically with the "All eligible spellcasters in Throne of Bhaal and Shadows of Amn get HLAs version" version of the HLA component and while I can't fully explain why the error occurs, I think I've figured out how to fix it. That particular version of the HLA component doesn't add individual creatures to the hla_cre.2da file like all the other component and instead simply adds the line UNIVERSAL. As such I've tried changing the line ACTION_IF FILE_CONTAINS "%workspace%/hla_cre.2da" hellslay BEGIN to ACTION_IF FILE_CONTAINS "%workspace%/hla_cre.2da" ~hellslay\|UNIVERSAL~ BEGIN which if I'm remembering my regex's right should now be saying to check for the presence of hellslay or UNIVERSAL in the hla_cre.2da file. I've done some quick testing and the smarter mage component now seems to install properly without the HLA component, with the add spells to select creatures in TOB and SOA version, and with the add HLA to all eligble spellcasters version. I haven't had a chance to test this ingame yet, but hopefully it's actually working right now. Link to comment
Mad Mate Posted October 13, 2014 Share Posted October 13, 2014 There's two more nasty bugs. One is how innocent creatures turn hostile (example, in BG1, killing Iron Throne leaders in Candlekeep results in everybody going hostile); and the other is in Aldeth Sashenstar's quest in Baldurs Gate city - if you play that Dopplganger quest of his, you'll never be able to finish it since enemies will never turn into dopplegangers. Main suspects - for 1) probably something in "better calls for help" 2) can't really say; wild guess - some creature swaps/kit enforcement I will check this tonight. Speaking of golems and statues — there's a similar encounter in Durlag's tower, iirc all creatures there are 'golems' (so they can't use potions etc), but they still can cast spells and such. Will check, thanks snip Kreso, I'm sorry to hear this. I don't know why this has happen to you. I just added check for HLA component. Rest of the code is the same, including a part that is bugging. I'll test all combinations of components tonight and report. I did multiple installs last days, and this never braked. Truth to be said, I never used "All eligible spellcasters in Throne of Bhaal and Shadows of Amn get HLAs version". I was just about to post about that same bit of code. Although my testing is showing that the problem seems to be specifically with the "All eligible spellcasters in Throne of Bhaal and Shadows of Amn get HLAs version" version of the HLA component and while I can't fully explain why the error occurs, I think I've figured out how to fix it. That particular version of the HLA component doesn't add individual creatures to the hla_cre.2da file like all the other component and instead simply adds the line UNIVERSAL. As such I've tried changing the line ACTION_IF FILE_CONTAINS "%workspace%/hla_cre.2da" hellslay BEGIN to ACTION_IF FILE_CONTAINS "%workspace%/hla_cre.2da" ~hellslay\|UNIVERSAL~ BEGIN which if I'm remembering my regex's right should now be saying to check for the presence of hellslay or UNIVERSAL in the hla_cre.2da file. I've done some quick testing and the smarter mage component now seems to install properly without the HLA component, with the add spells to select creatures in TOB and SOA version, and with the add HLA to all eligble spellcasters version. I haven't had a chance to test this ingame yet, but hopefully it's actually working right now. Thank you for report. It helps a lot. Link to comment
kreso Posted October 13, 2014 Share Posted October 13, 2014 Kreso, I'm sorry to hear this. Don't worry about it, man . At least it's found now. Here's more: truesight.ssl - (mage) - line 34 - says require level 6, should be 5, since Oracle is 5th level barrage.ssl - the block that checks if Melf's should be casted, ends with Spell(scstarget,WIZARD_MELF_ACID_ARROW) Spell(scstarget,WIZARD_MELF_ACID_ARROW) Spell(scstarget,WIZARD_MELF_ACID_ARROW) is wrongfully checking for Magic damage resistance, so you may delete that line (!CheckStatGT(scstarget,30,MAGICDAMAGERESISTANCE) and add the resist acid check in the main, thus it looks like this: TriggerBlock(MR100|SIConjuration|MirrorImage|MinorGlobe|ArrowSafe|SpellTurn|Enemy|ResistAcid) Final I found (so far) is missing Chaotic Command block in bg2/priest/longprep_core.ssl Script says it will look for DW and CC. CC block is non-existant however. Added: IF TRIGGER IgnoreBlock(SpellsAreBG1) Global("longprep","LOCALS",0) RequireBlock(HasL5) IgnoreBlock(SpellsAreBG1) THEN DO Action(SpellPrecast,CLERIC_CHAOTIC_COMMANDS) END Link to comment
Mad Mate Posted October 13, 2014 Share Posted October 13, 2014 Kreso, I'm sorry to hear this. Don't worry about it, man . At least it's found now. I found out why. It was entirely my fault. I placed END in the middle, but it should be at end of code part. Sorry again about this. As of the rest, will work on it tonight. Thanks! Link to comment
Mad Mate Posted October 14, 2014 Share Posted October 14, 2014 the other is in Aldeth Sashenstar's quest in Baldurs Gate city - if you play that Dopplganger quest of his, you'll never be able to finish it since enemies will never turn into dopplegangers. Fixed this. Problem was in tactical_bg1\ssl\irlentre.ssl. There was missing trigger, resulting in doppelgangers not spawning, if you haven't Easy Option enabled in ini file. Updated file in previous post with this and: -initial\initial.tpa (line 441) add END ELSE BEGIN LAF run STR_VAR file=beholder_pnp_antimagic locbase=beholder END Reason: compatibility with Spell Revisions v4, because SCS skips Spell Shield Patch if you have SR4 installed, but patch includes important tpa for beholders to work -various kreso fixes from this post. -changed NPC_BLADE_BARRIER to CLERIC_BLADE_BARRIER in 7 files from this post as reported by Raest. -fixed code that comes straight from Hell from this post Link to comment
kreso Posted October 14, 2014 Share Posted October 14, 2014 -drow\drow.tpa (line 10) ACTION_IF version=2 BEGIN to ACTION_IF version=1 BEGIN The more I think about this, the more I find it hilarious. There are dozens of posts about "Ust Natha defences not spawning", and all it took is changing a single number?! -initial\initial.tpa (line 441) add END ELSE BEGINLAF run STR_VAR file=beholder_pnp_antimagic locbase=beholder END Reason: compatibility with Spell Revisions v4, because SCS skips Spell Shield Patch if you have SR4 installed, but patch includes important tpa for beholders to work Ummm....what did you do here? I do know SCS skips that, but SRv4 hasn't fixed spell shield (yet). Thus one has to either comment out SR marker or SCS check for SRv4, until SR does include Spell Shield fix. If SRv4 isn't installed (or SCS thinks it isn't) this won't break anything, right? Anyways, great job. I think this about covers most of the known bugs. -fixed code that comes straight from Hell from this post Anyways, I've decided to add SR/IR compatibility code, not simply overwrite. This means that the tweaks I'm doing should be fully compatible with both SR and non-SR install (it's always "IgnoreBlock(Demivrgvs)" and "RequireBlock(Demivrgvs)". Ofc, this takes a lot of manual work (I'm accounting for each spell change that SCS will use and Item Revisions as well). As so far, I've sorted out mage and cleric/druid scripts to account for SR, and quickly tested to see if druids still get the spells they shouldn't (they don't), if mages properly react to IR (they do) etc. I'm very pleased. However, it will take two full runs through BGT (with and w/o SR) to check if I messed up something (probably not, but still....), and will have to re-check IR items with immunities to see if I had forgotten something (probably yes). Then (and when SRv4 is out) this goes public. If anybody wishes to help playtest this with SR/IR, let me know, the rest of the code will be done either today or tomorrow, and I'll send it to him (few conditions however - it must be a fairly skilled player/no backstabs/completionist run/no cheese like casting off-screen spells etc. Not that I mind that, however it's crucial to see AI in action, not actually beat it to pulp). Thus, whoever whishes, send me a PM, I'll send scripts. This will mean that SR/IR game will become a bit harder however. If somebody isn't happy with that, SCS ini file includes the option that AI doesn't detect items' immunites, thus I guess it's fine (i.e. right now AI detects Confusion immunity from Lirarcor, but not ADHW immunity from IR Wave halberd. Now it will ) Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.