Guest Morgoth Posted January 11, 2022 Share Posted January 11, 2022 if you installed dark side kobolds, it's intended. Link to comment
Chitown Willie Posted January 11, 2022 Share Posted January 11, 2022 54 minutes ago, Guest Morgoth said: if you installed dark side kobolds, it's intended. But SCS documentation states: "Kobold commandos get an enhanced Dexterity score and an extra pip in Shortbow (low-level humanoids are only normally allowed 1 pip) to compensate for the decrease in their abilities from standardising THAC0 and toning down elemental arrows. (They should now be about back up to vanilla power)." Link to comment
subtledoctor Posted January 11, 2022 Share Posted January 11, 2022 By my lights, a kobold (1-2HD?) with 17 DEX and ++ in shortbows should have a final thac0 of (generously 19 base, -2 for DEX, -1 for spec) 16. Right? 12 thac0 for such low-level mobs is ridiculous. Even 15 seems OP. Link to comment
Chitown Willie Posted January 11, 2022 Share Posted January 11, 2022 (edited) I'm with ya, Subtledoctor. Just wondering if something is squirrely with my install. Can someone w/ 34.3 check 'em out in NI? Edited January 11, 2022 by Chitown Willie Link to comment
boof Posted January 14, 2022 Share Posted January 14, 2022 (edited) So just had my first run-in with Kangaxx. Readme states he's supposed to be level 35 in demilich form, but he's 30, same as in his regular lich form. On top of that, he never once used trap the soul. Literally sat the whole party around him with no protections console healing them until he ran out of spells, and he didn't use it once. Oh yeah, and low level anti magic spells like secret word work on him even in demilich form. Latest bg2ee and scs versions. On a related note, can anyone recommend a game and scs version combo that is really solid? Because honestly, I'm finding problems with this one daily and it's starting to drain me. Edited January 14, 2022 by boof Link to comment
jmerry Posted January 14, 2022 Share Posted January 14, 2022 That would be the "spellcasting demiliches" component changing things on you. The component intentionally removes their blanket immunity to level 6+ spells, though they still have a number of specific immunities. In addition, it removes the script that previously used Trap the Soul, and doesn't include the spell in the new spellcaster script that replaces it - that part might be an oversight. You're not necessarily immune to imprisonment in that fight; Kangaxx gets level 9 spells which can include the mage version. As for Secret Word working, that hits as a level 5 spell, and the component that makes Breach work on liches and the like removes blanket level 5 immunity. There are a number of specific immunities that get added to replace it, but protection-breakers like Secret Word and Breach are allowed through. The one spell breaker that doesn't work is Spell Thrust (hits as level 4); all that does against a lich or demilich is trade with a Spell Shield. Link to comment
Graion Dilach Posted January 14, 2022 Share Posted January 14, 2022 Trap the Soul is included in the Override script though, which should be there even if Spellcasting Demiliches is installed, but if Iook closer to my script, that !PC and NEUTRAL is probably the problem. IF !GlobalTimerNotExpired("castspell","LOCALS") !See([PC]) See([NEUTRAL]) THEN RESPONSE #100 SetGlobalTimer("castspell","LOCALS",ONE_ROUND) ForceSpell(LastSeenBy(Myself),DEMILICH_TRAP_SOUL) // SPIN788.SPL (Trap the Soul) RESPONSE #100 SetGlobalTimer("castspell","LOCALS",ONE_ROUND) SpellNoDec(LastSeenBy(Myself),WIZARD_FLAME_ARROW) // SPWI303.SPL (Flame Arrow) RESPONSE #100 SetGlobalTimer("castspell","LOCALS",ONE_ROUND) SpellNoDec(LastSeenBy(Myself),WIZARD_SKULL_TRAP) // SPWI313.SPL (Skull Trap) END Link to comment
TotoR Posted January 14, 2022 Share Posted January 14, 2022 (edited) 9 hours ago, boof said: On top of that, he never once used trap the soul. Some time ago I was looking for the same thing and I found that the trap soul ability is includ in the dw#lich.ssl file that is installed once you choose component 6030 (smarter mages): \stratagems\mage\ssl\combatblocks\dw#lich.ssl: Spoiler ////////////////////////////////////////////////////////////////////////////////////// /// demilich soul trap /////////////////////////////////////////////////////////////////////////////////// INCLUDE FILE(%MOD_FOLDER%/mage/ssl/combatblocks/trap_the_soul.ssl) however this file (trap_the_soul.ssl) is empty... so the trap soul ability is not created as it should. In v33.7 the file (trap_the_soul.ssl) was: Spoiler ////////////////////////////////////////////////////////////////////////// //// Trap the Soul ///////////////////////////////////////////////////////////////////////// IF TRIGGER IgnoreBlock(SafeImprisonment) !GlobalTimerNotExpired("trapsoul","LOCALS") TargetBlock(PCsInOrder) TargetBlock(Celestials) !GlobalTimerNotExpired("DMWWTimestopRunning","GLOBAL") !GlobalTimerNotExpired("timestop","LOCALS") TriggerBlock(SpellTurn|Enemy|Helpless) OR(2) GlobalTimerNotExpired("seeabjuration","LOCALS") !CheckStat(scstarget,1,WIZARD_SPELL_IMMUNITY) OR(2) GlobalTimerNotExpired("seeabjuration","LOCALS") CheckStatGT(scstarget,0,SAVEVSDEATH) OR(2) !InPartySlot(scstarget,0) // isn't Player 1 Global("DMWWImprisonPlayer","GLOBAL",1) THEN DO Combine() SetGlobalTimer("trapsoul","LOCALS",6) Action(ReallyForceSpell,DEMILICH_TRAP_SOUL) END IF TRIGGER IgnoreBlock(SafeImprisonment) !GlobalTimerNotExpired("trapsoul","LOCALS") TargetBlock(PCsInOrder) TargetBlock(Celestials) !GlobalTimerNotExpired("DMWWTimestopRunning","GLOBAL") !GlobalTimerNotExpired("timestop","LOCALS") TriggerBlock(SpellTurn|Enemy|Helpless) OR(2) GlobalTimerNotExpired("seeabjuration","LOCALS") !CheckStat(scstarget,1,WIZARD_SPELL_IMMUNITY) OR(2) !InPartySlot(scstarget,0) // isn't Player 1 Global("DMWWImprisonPlayer","GLOBAL",1) THEN DO Combine() SetGlobalTimer("trapsoul","LOCALS",6) Action(ReallyForceSpell,DEMILICH_TRAP_SOUL) END IF TRIGGER RequireBlock(SafeImprisonment) !GlobalTimerNotExpired("trapsoul","LOCALS") TargetBlock(PCsInOrder) TargetBlock(Celestials) !GlobalTimerNotExpired("DMWWTimestopRunning","GLOBAL") !GlobalTimerNotExpired("timestop","LOCALS") TriggerBlock(SpellTurn|Enemy|Helpless) OR(2) GlobalTimerNotExpired("seeabjuration","LOCALS") !CheckStat(scstarget,1,WIZARD_SPELL_IMMUNITY) OR(2) GlobalTimerNotExpired("seeabjuration","LOCALS") CheckStatGT(scstarget,0,SAVEVSDEATH) THEN DO Combine() SetGlobalTimer("trapsoul","LOCALS",6) Action(ReallyForceSpell,DEMILICH_TRAP_SOUL) END IF TRIGGER RequireBlock(SafeImprisonment) !GlobalTimerNotExpired("trapsoul","LOCALS") TargetBlock(PCsInOrder) TargetBlock(Celestials) !GlobalTimerNotExpired("DMWWTimestopRunning","GLOBAL") !GlobalTimerNotExpired("timestop","LOCALS") TriggerBlock(SpellTurn|Enemy|Helpless) OR(2) GlobalTimerNotExpired("seeabjuration","LOCALS") !CheckStat(scstarget,1,WIZARD_SPELL_IMMUNITY) THEN DO Combine() SetGlobalTimer("trapsoul","LOCALS",6) Action(ReallyForceSpell,DEMILICH_TRAP_SOUL) END I thinks it is an overview, so if you choose to reinstall Stratagems you should use the above file "trap_the_soul.ssl" (copy/past). As I am at it, There are two other empty file : fleecloud_fm.ssl (marter mage) and gohostile.ssl (smarter priest). For fleecloud_fm.ssl it should be : Spoiler DEFAULT TRIGGER( OR(2) ActionListEmpty() !GlobalTimerExpired("castspell","LOCALS")) BEGIN LOOP(scscloudmelee|| ) BEGIN LOOP(scscloudresponse|| RunAwayFrom(LastHeardBy(Myself),30)) INCLUDE FILE(%MOD_FOLDER%/genai/ssl/fleecloud.ssl) END LOOP END LOOP DEFAULT TRIGGER( OR(2) ActionListEmpty() !GlobalTimerExpired("castspell","LOCALS")) BEGIN LOOP(scscloudmelee||See([PC]) ) BEGIN LOOP(scscloudresponse|| MoveToObject([PC])) INCLUDE FILE(%MOD_FOLDER%/genai/ssl/fleecloud.ssl) END LOOP END LOOP DEFAULT TRIGGER() For gohostile.ssl it should be: Spoiler /// strictly the "go hostile" block, but here we incorporate various /// other combat-related things to be done before sighting the foe ////////////////////////////////////////////////////////////////// /////// Top of chase block ////////////////////////////////////////////////////////////////// INCLUDE FILE(%MOD_FOLDER%/genai/ssl/chase_top.ssl) ////////////////////////////////////////////////////////////////// /////// Record created-in-sight status ////////////////////////////////////////////////////////////////// IF TRIGGER Global("created_out_of_sight","LOCALS",0) OR(2) !Allegiance(Myself,ENEMY) !See(NearestEnemyOf(Myself)) THEN DO Action(Literal) SetGlobal("created_out_of_sight","LOCALS",1) Continue() END ////////////////////////////////////////////////////////////////// /////// Go hostile ////////////////////////////////////////////////////////////////// IF TRIGGER !Allegiance(Myself,ENEMY) TriggerBlock(AttackedByPlayer) IgnoreBlock(NeverGoHostile) THEN DO Action(Literal) Enemy() Continue() END /////////////////////////////////////////////////// //// If attacked by an unseen foe, mill around //// in confusion. You never know, you might //// bump into them! ////////////////////////////////////////////////// IF TRIGGER Allegiance(Myself,ENEMY) RequireBlock(EasyPlus) OR(12) AttackedBy([GOODCUTOFF.0.0.0.0.SUMMONED],DEFAULT) AttackedBy([PC],DEFAULT) AttackedBy([FAMILIAR],DEFAULT) AttackedBy([ALLY],DEFAULT) AttackedBy([CONTROLLED],DEFAULT) AttackedBy([CHARMED],DEFAULT) SpellCastOnMe([GOODCUTOFF.0.0.0.0.SUMMONED],0) SpellCastOnMe([PC],0) SpellCastOnMe([FAMILIAR],0) SpellCastOnMe([ALLY],0) SpellCastOnMe([CONTROLLED],0) SpellCastOnMe([CHARMED],0) !GlobalTimerNotExpired("whatthe","LOCALS") !See(NearestEnemyOf(Myself)) THEN DO Action(Literal) SetGlobalTimer("whatthe","LOCALS",12) SetGlobal("inafight","LOCALS",1) Continue() END IF TRIGGER RequireBlock(EasyPlus) !See(NearestEnemyOf(Myself)) !Heard([ANYONE],404) GlobalTimerNotExpired("whatthe","LOCALS") THEN DO Action(Literal) RandomWalkContinuous() END ///////////////////////////////////////////////////////////////// /// Handle Cloud Kill spells ///////////////////////////////////////////////////////////////// IF Heard([ANYONE],404) !General(Myself,UNDEAD) !Race(Myself,RAKSHASA) !Race(Myself,DEMONIC) !See([PC]) Range(LastHeardBy(Myself),20) THEN RESPONSE #100 SetInterrupt(FALSE) RunAwayFrom(LastHeardBy(Myself),45) SetInterrupt(TRUE) END ///////////////////////////////////////////////////////////////// /// Block to prevent neutrals prebuffing ///////////////////////////////////////////////////////////////// IF !Allegiance(Myself,ENEMY) !HasItem("dw#mally",Myself) !Global("DMWWNeutralPrebuff","GLOBAL",1) THEN RESPONSE #100 NoAction() END Edited January 14, 2022 by TotoR Link to comment
boof Posted January 14, 2022 Share Posted January 14, 2022 3 hours ago, jmerry said: As for Secret Word working, that hits as a level 5 spell Hm ok, that's news to me. Didn't see that documented anywhere. 3 hours ago, TotoR said: Some time ago I was looking for the same thing and I found that the trap soul ability is includ in the dw#lich.ssl file that is installed once you choose component 6030 (smarter mages): \stratagems\mage\ssl\combatblocks\dw#lich.ssl: Reveal hidden contents ////////////////////////////////////////////////////////////////////////////////////// /// demilich soul trap /////////////////////////////////////////////////////////////////////////////////// INCLUDE FILE(%MOD_FOLDER%/mage/ssl/combatblocks/trap_the_soul.ssl) however this file (trap_the_soul.ssl) is empty... so the trap soul ability is not created as it should. In v33.7 the file (trap_the_soul.ssl) was: Reveal hidden contents ////////////////////////////////////////////////////////////////////////// //// Trap the Soul ///////////////////////////////////////////////////////////////////////// IF TRIGGER IgnoreBlock(SafeImprisonment) !GlobalTimerNotExpired("trapsoul","LOCALS") TargetBlock(PCsInOrder) TargetBlock(Celestials) !GlobalTimerNotExpired("DMWWTimestopRunning","GLOBAL") !GlobalTimerNotExpired("timestop","LOCALS") TriggerBlock(SpellTurn|Enemy|Helpless) OR(2) GlobalTimerNotExpired("seeabjuration","LOCALS") !CheckStat(scstarget,1,WIZARD_SPELL_IMMUNITY) OR(2) GlobalTimerNotExpired("seeabjuration","LOCALS") CheckStatGT(scstarget,0,SAVEVSDEATH) OR(2) !InPartySlot(scstarget,0) // isn't Player 1 Global("DMWWImprisonPlayer","GLOBAL",1) THEN DO Combine() SetGlobalTimer("trapsoul","LOCALS",6) Action(ReallyForceSpell,DEMILICH_TRAP_SOUL) END IF TRIGGER IgnoreBlock(SafeImprisonment) !GlobalTimerNotExpired("trapsoul","LOCALS") TargetBlock(PCsInOrder) TargetBlock(Celestials) !GlobalTimerNotExpired("DMWWTimestopRunning","GLOBAL") !GlobalTimerNotExpired("timestop","LOCALS") TriggerBlock(SpellTurn|Enemy|Helpless) OR(2) GlobalTimerNotExpired("seeabjuration","LOCALS") !CheckStat(scstarget,1,WIZARD_SPELL_IMMUNITY) OR(2) !InPartySlot(scstarget,0) // isn't Player 1 Global("DMWWImprisonPlayer","GLOBAL",1) THEN DO Combine() SetGlobalTimer("trapsoul","LOCALS",6) Action(ReallyForceSpell,DEMILICH_TRAP_SOUL) END IF TRIGGER RequireBlock(SafeImprisonment) !GlobalTimerNotExpired("trapsoul","LOCALS") TargetBlock(PCsInOrder) TargetBlock(Celestials) !GlobalTimerNotExpired("DMWWTimestopRunning","GLOBAL") !GlobalTimerNotExpired("timestop","LOCALS") TriggerBlock(SpellTurn|Enemy|Helpless) OR(2) GlobalTimerNotExpired("seeabjuration","LOCALS") !CheckStat(scstarget,1,WIZARD_SPELL_IMMUNITY) OR(2) GlobalTimerNotExpired("seeabjuration","LOCALS") CheckStatGT(scstarget,0,SAVEVSDEATH) THEN DO Combine() SetGlobalTimer("trapsoul","LOCALS",6) Action(ReallyForceSpell,DEMILICH_TRAP_SOUL) END IF TRIGGER RequireBlock(SafeImprisonment) !GlobalTimerNotExpired("trapsoul","LOCALS") TargetBlock(PCsInOrder) TargetBlock(Celestials) !GlobalTimerNotExpired("DMWWTimestopRunning","GLOBAL") !GlobalTimerNotExpired("timestop","LOCALS") TriggerBlock(SpellTurn|Enemy|Helpless) OR(2) GlobalTimerNotExpired("seeabjuration","LOCALS") !CheckStat(scstarget,1,WIZARD_SPELL_IMMUNITY) THEN DO Combine() SetGlobalTimer("trapsoul","LOCALS",6) Action(ReallyForceSpell,DEMILICH_TRAP_SOUL) END I thinks it is an overview, so if you choose to reinstall Stratagems you should use the above file "trap_the_soul.ssl" (copy/past). As I am at it, There are two other empty file : fleecloud_fm.ssl (marter mage) and gohostile.ssl (smarter priest). For fleecloud_fm.ssl it should be : Reveal hidden contents DEFAULT TRIGGER( OR(2) ActionListEmpty() !GlobalTimerExpired("castspell","LOCALS")) BEGIN LOOP(scscloudmelee|| ) BEGIN LOOP(scscloudresponse|| RunAwayFrom(LastHeardBy(Myself),30)) INCLUDE FILE(%MOD_FOLDER%/genai/ssl/fleecloud.ssl) END LOOP END LOOP DEFAULT TRIGGER( OR(2) ActionListEmpty() !GlobalTimerExpired("castspell","LOCALS")) BEGIN LOOP(scscloudmelee||See([PC]) ) BEGIN LOOP(scscloudresponse|| MoveToObject([PC])) INCLUDE FILE(%MOD_FOLDER%/genai/ssl/fleecloud.ssl) END LOOP END LOOP DEFAULT TRIGGER() For gohostile.ssl it should be: Reveal hidden contents /// strictly the "go hostile" block, but here we incorporate various /// other combat-related things to be done before sighting the foe ////////////////////////////////////////////////////////////////// /////// Top of chase block ////////////////////////////////////////////////////////////////// INCLUDE FILE(%MOD_FOLDER%/genai/ssl/chase_top.ssl) ////////////////////////////////////////////////////////////////// /////// Record created-in-sight status ////////////////////////////////////////////////////////////////// IF TRIGGER Global("created_out_of_sight","LOCALS",0) OR(2) !Allegiance(Myself,ENEMY) !See(NearestEnemyOf(Myself)) THEN DO Action(Literal) SetGlobal("created_out_of_sight","LOCALS",1) Continue() END ////////////////////////////////////////////////////////////////// /////// Go hostile ////////////////////////////////////////////////////////////////// IF TRIGGER !Allegiance(Myself,ENEMY) TriggerBlock(AttackedByPlayer) IgnoreBlock(NeverGoHostile) THEN DO Action(Literal) Enemy() Continue() END /////////////////////////////////////////////////// //// If attacked by an unseen foe, mill around //// in confusion. You never know, you might //// bump into them! ////////////////////////////////////////////////// IF TRIGGER Allegiance(Myself,ENEMY) RequireBlock(EasyPlus) OR(12) AttackedBy([GOODCUTOFF.0.0.0.0.SUMMONED],DEFAULT) AttackedBy([PC],DEFAULT) AttackedBy([FAMILIAR],DEFAULT) AttackedBy([ALLY],DEFAULT) AttackedBy([CONTROLLED],DEFAULT) AttackedBy([CHARMED],DEFAULT) SpellCastOnMe([GOODCUTOFF.0.0.0.0.SUMMONED],0) SpellCastOnMe([PC],0) SpellCastOnMe([FAMILIAR],0) SpellCastOnMe([ALLY],0) SpellCastOnMe([CONTROLLED],0) SpellCastOnMe([CHARMED],0) !GlobalTimerNotExpired("whatthe","LOCALS") !See(NearestEnemyOf(Myself)) THEN DO Action(Literal) SetGlobalTimer("whatthe","LOCALS",12) SetGlobal("inafight","LOCALS",1) Continue() END IF TRIGGER RequireBlock(EasyPlus) !See(NearestEnemyOf(Myself)) !Heard([ANYONE],404) GlobalTimerNotExpired("whatthe","LOCALS") THEN DO Action(Literal) RandomWalkContinuous() END ///////////////////////////////////////////////////////////////// /// Handle Cloud Kill spells ///////////////////////////////////////////////////////////////// IF Heard([ANYONE],404) !General(Myself,UNDEAD) !Race(Myself,RAKSHASA) !Race(Myself,DEMONIC) !See([PC]) Range(LastHeardBy(Myself),20) THEN RESPONSE #100 SetInterrupt(FALSE) RunAwayFrom(LastHeardBy(Myself),45) SetInterrupt(TRUE) END ///////////////////////////////////////////////////////////////// /// Block to prevent neutrals prebuffing ///////////////////////////////////////////////////////////////// IF !Allegiance(Myself,ENEMY) !HasItem("dw#mally",Myself) !Global("DMWWNeutralPrebuff","GLOBAL",1) THEN RESPONSE #100 NoAction() END Interesting, thanks for that. So I'd have to reinstall for this to work? Can't just copy paste into the empty files now? Link to comment
TotoR Posted January 14, 2022 Share Posted January 14, 2022 Just now, boof said: So I'd have to reinstall for this to work? Can't just copy paste into the empty files now? Copy/past ssl files is useless without reinstalling the mod. Link to comment
boof Posted January 15, 2022 Share Posted January 15, 2022 (edited) Never mind. Edited January 15, 2022 by boof Link to comment
Angel Posted January 16, 2022 Share Posted January 16, 2022 On 1/14/2022 at 11:06 AM, TotoR said: As I am at it, There are two other empty file : fleecloud_fm.ssl (marter mage) and gohostile.ssl (smarter priest). Files bodhi/ssl/bodhi_setup.ssl and caster_shared/clericmage/ssl/cmraksh.ssl are also empty. I'm not sure what effect that has. Link to comment
Gordian Posted January 16, 2022 Share Posted January 16, 2022 (edited) Those two were already empty as of SCS 33.7 - not sure whether it would be wise to go digging and adding their contents from an even earlier version. Edit: bodhi_setup.ssl has been empty since SCS v31 at least; cmraksh.ssl didn't exist back then, checking. Perhaps they've always been empty as a quick repository search indicated. While checking I saw that caster_shared\clericmage\druid_mages.2da is empty as well. Maybe they're all unused at the moment and might serve a purpose later down the line/haven't been scrapped. I'm pretty new to this thus might be missing something evident. Edited January 16, 2022 by Gordian Link to comment
Angel Posted January 16, 2022 Share Posted January 16, 2022 (edited) 16 hours ago, Gordian said: Those two were already empty as of SCS 33.7 - not sure whether it would be wise to go digging and adding their contents from an even earlier version. Edit: bodhi_setup.ssl has been empty since SCS v31 at least; cmraksh.ssl didn't exist back then, checking. Perhaps they've always been empty as a quick repository search indicated. While checking I saw that caster_shared\clericmage\druid_mages.2da is empty as well. Maybe they're all unused at the moment and might serve a purpose later down the line/haven't been scrapped. I'm pretty new to this thus might be missing something evident. I found content for cmraksh.ssl as recent as v33.4. Here you go. Spoiler VARIABLE(IsRakshasa=True) VARIABLE(ImmuneToNormal=True) ////////////////////////////////////////////////////////////////////////////////// /// /// Define actions /// //////////////////////////////////////////////////////////////////////////////////////// BEGIN LOOP(AttackReevaluate(scstarget,30)||AttackOneRound(scstarget)) INCLUDE FILE(%scsroot%/caster_shared/caster_definitions.ssl) END LOOP //////////////////////////////////////////////////////////////// /// Labelling, break-invisibility, hostile-undead, panic, etc //////////////////////////////////////////////////////////////////////////////////////// INCLUDE FILE(%scsroot%/mage/ssl/main/preamble.ssl) ////////////////////////////////////////////////////////////////////////////////// //// Setup, prep ////////////////////////////////////////////////////////////////////////////////// INCLUDE FILE(%scsroot%/caster_shared/clericmage/ssl/clericmage_setup.ssl) ////////////////////////////////////////////////////////////////////////////////// //// If non-hostile, closedown - this script doesn't pretend to fight bad guys ////////////////////////////////////////////////////////////////////////////////// IF !Allegiance(Myself,ENEMY) IgnoreBlock(IsPartyAlly) THEN RESPONSE #100 NoAction() END ////////////////////////////////////////////////////////////////////// ///CPU saver ////////////////////////////////////////////////////////////////////// IF !Detect(NearestEnemyOf(Myself)) !HPPercentLT(Myself,100) !Global("inafight","LOCALS",1) THEN RESPONSE #100 NoAction() END //////////////////////////////////////////////////////////////////////////// /// Contingencies renew defences //////////////////////////////////////////////////////////////////////////// INCLUDE FILE(%scsroot%/mage/ssl/generalblocks/contingency.ssl) /////////////////////////////////////////////////////////////////////////// // Turn undead /////////////////////////////////////////////////////////////////////////// IF IgnoreBlock(IsDruid) See([GOODCUTOFF.UNDEAD]) !StateCheck(LastSeenBy(Myself),STATE_DISABLED) !GlobalTimerNotExpired("castspell","LOCALS") !GlobalTimerNotExpired("turninitialise","LOCALS") THEN RESPONSE #100 SetGlobalTimer("turninitialise","LOCALS",30) SetGlobalTimer("turning","LOCALS",4) Continue() END IF IgnoreBlock(IsDruid) See([GOODCUTOFF.UNDEAD]) !StateCheck(LastSeenBy(Myself),STATE_DISABLED) !GlobalTimerNotExpired("castspell","LOCALS") OR(2) !GlobalTimerNotExpired("turninitialise","LOCALS") GlobalTimerNotExpired("turning","LOCALS") THEN RESPONSE #100 Turn() END /////////////////////////////////////////////////////////////////////////// // Melee /////////////////////////////////////////////////////////////////////////// INCLUDE FILE(%scsroot%/mage/ssl/generalblocks/melfsetup.ssl) INCLUDE FILE(%scsroot%/priest/ssl/meleeblocks/touchattack.ssl) INCLUDE FILE(%scsroot%/mage/ssl/meleeblocks/fmmelee.ssl) ////////////////////////////////////////////////////////////////////////// // Renew and retreat ////////////////////////////////////////////////////////////////////////// DEFAULT TRIGGER() INCLUDE FILE(%scsroot%/mage/ssl/generalblocks/renew.ssl) INCLUDE FILE(%scsroot%/priest/ssl/generalblocks/renew.ssl) ////////////////////////////////////////////////////////////////////////// // Easiest-level block ////////////////////////////////////////////////////////////////////////// DEFAULT TRIGGER() INCLUDE FILE(%scsroot%/caster_shared/clericmage/ssl/easy.ssl) ////////////////////////////////////////////////////////////////////////// // Look for PCs ////////////////////////////////////////////////////////////////////////// DEFAULT TRIGGER(!GlobalTimerNotExpired("castspell","LOCALS")) INCLUDE FILE(%scsroot%/mage/ssl/generalblocks/chase.ssl) //////////////////////////////////////////////////////////////////////////// // Core magic block /////////////////////////////////////////////////////////////////////////// DEFAULT TRIGGER() INCLUDE FILE(%scsroot%/caster_shared/clericmage/ssl/standard_clericmage.ssl) INCLUDE FILE(%scsroot%/mage/ssl/generalblocks/closedown.ssl) As you say bodhi_setup.ssl has been empty for a long time, since 2018 at least according to the time stamps. Edited January 16, 2022 by Angel Link to comment
pochesun Posted January 22, 2022 Share Posted January 22, 2022 On 1/14/2022 at 3:43 AM, boof said: On a related note, can anyone recommend a game and scs version combo that is really solid? Because honestly, I'm finding problems with this one daily and it's starting to drain me. If you are looking for decent builds of SCS i would recommend something along with 32 version or early varieties of 33 version (for instance v 33.3 was pretty ok). I personally find v 32 a very solid and stable build and even with some very minor tweaks you can fix couple of bugs on your own. However if you use any other additional mods you might want to run a check for compatibility. I only use IRR and SRR as additional mods anlongside SCS and last time i checked (last summer) they were ok with v 32 SCS. But both IRR and SRR been updated regularly (which is pretty commendable) so again you better check for compatibility. Also i have heard that Tweaks had some issues with last v of SCS but i am not sure about it. Also, probably, its a good option, after all, to wait for next version of SCS since the current one been a complete mess. Link to comment
Recommended Posts