Jump to content

Version 28 of Sword Coast Stratagems released


DavidW

Recommended Posts

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

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

.....

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

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

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

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

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

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, 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

 

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

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

-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 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

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

 

:D

 

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 :D )

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...