jmerry Posted July 31, 2023 Author Posted July 31, 2023 I had an idea on the script side, guarding the whole thing with a SetInterrupt(FALSE) and SetInterrupt(TRUE) pair. That should stop the block from being interrupted, right? Nope. It didn't work. I could still issue commands to the elemental as normal, resetting its side of the struggle. Does that script action even do anything? Quote
polytope Posted July 31, 2023 Posted July 31, 2023 9 hours ago, jmerry said: I had an idea on the script side, guarding the whole thing with a SetInterrupt(FALSE) and SetInterrupt(TRUE) pair. That should stop the block from being interrupted, right? Nope. It didn't work. I could still issue commands to the elemental as normal, resetting its side of the struggle. Does that script action even do anything? I believe that in a script... RESPONSE#100 SetInterrupt(FALSE) *other scripted actions* SetInterrupt(TRUE) ...will allow separate & time consuming actions in the block to be executed consecutively without interruption by other prompts in the script. As for the Wizard-summoned elementals, if I was doing it I'd apply a spell via opcode #146 to each such creature file which: Sets movement rate and APR to nil for 3 rounds, could also apply blindness if you think it's worthwhile. For PC summoned elementals only has a 15% chance at the end of the three rounds to firstly remove any enchantment school effects, secondly to set reaction, opcode #72, to ENEMY Quote
jmerry Posted July 31, 2023 Author Posted July 31, 2023 3 hours ago, polytope said: will allow separate & time consuming actions in the block to be executed consecutively without interruption by other prompts in the script. What's that even supposed to mean? Of course a script isn't going to interrupt itself; once the game starts executing an action block, it keeps going until either the block is done or some outside influence interrupts it. The game doesn't run the script again unless the block is already interrupted. If that's how SetInterrupt works, it might as well be NoAction(). The obvious interpretation is that SetInterrupt(FALSE) is supposed to make it so the following script actions can't be interrupted. And that's what the IESDP says it does. But in my testing, with that in place, the wait did get interrupted. Something's wrong here. Quote
polytope Posted August 1, 2023 Posted August 1, 2023 11 hours ago, jmerry said: What's that even supposed to mean? Of course a script isn't going to interrupt itself; once the game starts executing an action block, it keeps going until either the block is done or some outside influence interrupts it. The game doesn't run the script again unless the block is already interrupted. If that's how SetInterrupt works, it might as well be NoAction(). Have you actually tested this? RunAwayFrom(), MoveToObject() and probably other actions that eat up game time are often interruptible by other prioritized scripted actions. It's not really relevant to the elementals anyway, and won't work if you can select them and give orders, which overrides script actions for friendly creatures. Quote
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.