Dan_P Posted January 3, 2022 Share Posted January 3, 2022 Hi, I thought this was worth highlighting because this is a common script action, and it appears at the top of the Actions pages, so wrong info is very likely to be seen. On the pages for BG1, IWD1, IWD2, and PsT, it says this line: This command also sets a creatures ModalState to 0, and so can be used to stop other modal actions (e.g. Bard Song). I haven't checked PsT, but for the other games, this is incorrect. NoAction() works the same as in the EEs and BG2. It blocks script actions below it, but does not disable Modal States (thankfully, or it would break my scripts for these games). All my tests are done with GOG versions of the game, so I don't know how non-expansion versions work. This can be tested really easily by giving a character a script with just this block: IF True() THEN RESPONSE #100 NoAction() END Give it to a bard or cleric, and have them use Bard Song or Turn Undead. Then watch those abilities not get deactivated. The only case where I've noticed NoAction() disabling Modal states, is if installing TobEx with BG2 (tested with v26 and v28, with and without TobEx Afterlife). Specifically, the Expanded Actions hack will change NoAction() to stop Modal States. Disabling the hack will prevent this. Note that TobEx files added by others mods don't necessarily do this. For instance, the TobEx files added with Ascension (the one from this site), do not change how NoAction() functions. Quote Link to comment
Jarno Mikkola Posted January 3, 2022 Share Posted January 3, 2022 (edited) 10 minutes ago, Dan_P said: For instance, the TobEx files added with Ascension (the one from this site), do not change how NoAction() functions. The ToBEx has 2 configuration files that can be used to set or disable all it's parts. Meaning that it's not an install time thing, but an edit to the .ini file... after having installed it. The files being "TobExCore.ini" and "TobExTweak.ini". Edited January 3, 2022 by Jarno Mikkola Quote Link to comment
Dan_P Posted January 3, 2022 Author Share Posted January 3, 2022 12 minutes ago, Jarno Mikkola said: The ToBEx has 2 configuration files that can be used to set or disable all it's parts. Meaning that it's not an install time thing, but an edit to the .ini file... after having installed it. The files being "TobExCore.ini" and "TobExTweak.ini". You're right. To be more clear, what I meant was, Expanded Actions is enabled in the TobExCore.ini file with Ascension, but doesn't change how NoAction() functions. When installing the standalone TobEx installer (at least with v26 and v28), that specific hack is what makes the change, and setting it to =0 in the ini will prevent it. Quote Link to comment
lynx Posted January 3, 2022 Share Posted January 3, 2022 This was added 17 years ago, so the info is unrelated to ToBEx. Could be a reverse-engineering mistake. What I think it refers to is the scripted modal actions, not the GUI triggered ones (though internally I'm pretty sure they share the code). The example given does not make much sense though, since all these actions are blocking and I don't know of any other way to set a modal state. So you'd have to use ActionOverride which then kills the previous action anyway. IF ModalState(BATTLESONG) THEN RESPONSE #100 NoAction() END Quote Link to comment
Jarno Mikkola Posted January 3, 2022 Share Posted January 3, 2022 33 minutes ago, lynx said: ... IF ModalState(BATTLESONG) THEN RESPONSE #100 NoAction() END But that's not at all what was discussed. As in, what was was: the NoAction() -action does NOT revert the ModalState to no state, as it keeps on chirping. By this we would note; say, we use this script as the Override script, "in combat", on a cleric that passively turns undead, or a thief that is detecting traps: IF CombatCounter(0) THEN RESPONSE #100 NoAction() END IF !CombatCounter(0) THEN RESPONSE #100 Attack(NearestEnemyOf()) END The not in combat state will never stop ModalStates if they were activated by the player, but any combat will. Quote Link to comment
Dan_P Posted January 3, 2022 Author Share Posted January 3, 2022 11 hours ago, lynx said: This was added 17 years ago, so the info is unrelated to ToBEx. Could be a reverse-engineering mistake. What I think it refers to is the scripted modal actions, not the GUI triggered ones (though internally I'm pretty sure they share the code). The example given does not make much sense though, since all these actions are blocking and I don't know of any other way to set a modal state. So you'd have to use ActionOverride which then kills the previous action anyway. IF ModalState(BATTLESONG) THEN RESPONSE #100 NoAction() END Basically what Jarno says in the last post is true. Your example block actually fits my observations. That block will never disable Bard Song, unless you install TobEx. What that block will do is prevent lower blocks from triggering if the character has Bard Song active. Quote Link to comment
lynx Posted January 3, 2022 Share Posted January 3, 2022 That's what I'm saying, it's a bad example. I'll just remove the distinction between the versions. Bubb confirms it for ees here: Quote Link to comment
Recommended Posts
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.