Jump to content

[35.17] Shamanic dance summons do not disappear when moving shaman


Guest Wody

Recommended Posts

Guest Wody

Found an issue with using Shamanic Dance. I've isolated it to SCS, which I installed last. I tested the dance before installing SCS and it worked and after it stopped working.

The summons are not despawning at all once I stop dancing and even follow me into a cave or building. Tried on a new game.

The game description says that spirit should disappear if the Shaman moves, and as far as i know SCS is not supposed to change it.

WeiDUhttps://pastebin.com/E6G462Ac

Link to comment

Base game mechanics are a little wonky here. If you move while actively dancing, that cancels the dance and immediately unsummons all spirits. If, on the other hand, you hit the button/hotkey to stop dancing and then move, the spirits don't immediately unsummon. You instead have a few seconds to reposition and start dancing again; if you're in a dance state when the check happens (once per round?), the summons stay.

Spirits following you ... inconsistent between games. And it looks like an outright bug. Well, that's one for the EE Fixpack.

What you're reporting here may not be the result of any mod at all. Unless the spirits stick around for multiple rounds while you're not dancing; that would be a definite mod bug.

Link to comment
Posted (edited)

OK, that definitely looks like things are broken for you.

All shaman spirits, in the unmodded game, share a script "bdshunsu" in the override slot. The first block of that script unsummons the spirit if no party member has the "dance" spell state; this state is applied once per round while dancing, with a duration of 7 seconds. The second block tells the spirits to move to a friendly shaman if there's no fight. Except that block is broken in BGEE with SoD, and instead triggers only if the spirits can't find a friendly shaman - so it does nothing. The third block unsummons the spirits if they can't find a friendly shaman. But if it's BGEE with SoD and you're not in combat, this block gets preempted by the second and never triggers. And after that, the rest of the script implements the various spirit-boosting items.

Now, what does SCS do with summon scripting? Well, the "general AI" component is the place to look, and the spirits (like other summons) use bdsum00 as their combat script...

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////    Go through the script slots (hardcoded) looking for a combat script. If found, return loc=location (0-5) of
////    first script and delete all scripts. Also return wander=1 if script is wdasight or the like, and delete gpuse et al.
////	If we find bdsum00, automatically treat it as a combat script and also insert dw#sumei at the top. 
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Oh. Oh, no. That sounds like we're bumping bdshunsu down a slot in favor of dw#sumei. Which, given the nature of bdshunsu, breaks things. In fact, here's what dw#sumei does:

IF
    Allegiance(LastSummonerOf(Myself),GOODCUTOFF)
THEN
    RESPONSE #100
        ChangeAIScript("",OVERRIDE)
        ChangeAIScript("dw#summe",CLASS)
        ChangeAIScript("",RACE)
        ChangeAIScript("",GENERAL)
        ChangeAIScript("",DEFAULT)
END

A party shaman dances up a spirit. That script runs. And the bdshunsu script is just gone. No bonuses from the items which are supposed to boost spirits. No unsummoning the spirits when you stop dancing (though they do still have a finite duration of eight hours). This is broken.

Edited by jmerry
Link to comment

Thank you for the explanation. I have no experience with modding, so I had to re-read it a couple of times to understand it.

So bdshunsu, which is half-way broken in SoD, at least does the job of unsummoning and applying bonuses. But the general AI component overrides and prevents it from running. That makes sense.

I wonder if nobody ever noticed before because Shamans are so rarely used. Lol.

Link to comment
Posted (edited)

And while shaman spirits have it the worst, it's not just them. Nearly all of the SoD summons get dumber or lose non-combat scripting with the SCS general AI component:

- Ankhegs (bdankhsu). They have two scripts, with ANKHEG (a mixed melee/ranged combat script) at higher priority than BDSUM00. Since SCS does not recognize ANKHEG as a combat script, it notes these as summons when it finds that BDSUM00 script. So ANKHEG gets wiped, and because these critters don't have any ranged weapon proficiencies they forget they have two attacks and turn into pure melee attackers.

- M'Khiin's goblin ghosts (bdgogh01, bdgogh02). These have an override script BDGOGH01 at a higher priority than bdsum00, telling them to go into formation with her. That gets wiped, though at least the warrior remembers how to use his bow.

- Mephits (bdmepsue, bdmepsuf, bdmepsui, bdmepsul). They have individual scripts at a higher priority than bdsum00, telling them how to use their spells. Forget that with SCS - they're pure melee attackers now.

- Red Myconid (bdmycsu1). This has the BDMYCSU1 script at a higher priority than bdsum00, telling it how to use its Hallucinator Spores ability. Wipe that with SCS, leave a pure melee attacker.

- Lesser Stone Golem (bdpetsgs). This has the BDPETSGS script at a higher priority than bdsum00, which does two things - it only lets you summon one golem at a time, and it tells the golem how to use its Slow spell. That gets wiped with SCS, leaving a pure melee attacker and letting you summon all three at once if you want to.

The only SoD-specific summon that comes out of this intact is the Lesser Water Elemental. It's a pure melee attacker both before and after the script changes.

Edited by jmerry
Link to comment

Yeah, this is SCS scripting that predates SoD (pretty much predates the EE) getting tripped up by later changes to the underlying game - that's the problem with modding a game (then) still under development, I guess.

Thanks for catching; at this point I might just disable SCS's summon-AI tweaks for EE. since the EE AI is more or less functional.

Link to comment

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...