Tasks are not like subroutines or events, they're more like individual threads. Once a task is set it will keep running until it is unset again or the quest ends.
Some actions like "pc at" work like a toggle. They will turn the target task on when player is at that location and off again when player is not at that location. A good example of this set/unset behaviour is the ghosts and wraiths in Daggerfall city at night. The task holding the "create foe" action switches on and off based on time of day and whether player is inside the city limits.
So what's happening when using multiple "pc at" conditions for the same target task is that one "pc at" condition might be trying to turn the task off while another one is trying to turn it on. Simply put, the "pc at" command isn't capable of setting a task then terminating.
I can't change behaviour of "pc at" as it's too embedded in the quest system to work in this specific way. But there are ways we can work around it, including adding a new variant of the action to help.
Would some variant of "pc at" to only set a task then stop checking be suitable? Maybe something like the below:
Code: Select all
pc at _place1_ set _event_ notoggle
The "notoggle" tag would suppress the toggle behaviour and cause action to terminate once the set fires. That should help you solve the problem, no?