Continuted experiments with different variants of the same script led to me switching switching to AssignCommand - ActionSpeakString for the error message, which by itself has no message being delivered at all.
Adding a 0.1 second delay before that, as in,
DelayCommand(0.1, AssignCommand(oUser, ActionSpeakString("You have no reason to go in here.")));
has the PC correctly delivering the error message upon trying to use the door.
Very interesting development: So do the NPCs' attempts to use the door... And by that I mean, they make the PC speak the error line (if the PC has previously used the door and thus qualifies to be the Last User of the door) not the NPC who attempted to use the door. BUT: If the NPC does not *use* the door or call it's scripts to transition, therefore not becoming the Last User, why does adding a script that prevents the player from passing through the door also stop NPCs?
Another interesting observation: If the door is closed at the time, the NPC who reaches it first and gets to *open* the door successfully transitions. All others remain standing in/before it, looking lost.
Also worth noting: Without a script in OnAreaTransitionClick, all NPCs (and, of course, the PC, which is not desired) transition successfully.
I... think I need to find the scripts that define the behavior of mobile-ambient-animations-active NPCs. The answer must be lurking in them. Gonna update my findings if I somehow, miraculously, manage to figure it out, for posterity and all.
Further helpful suggestions and/or solutions are always welcome. ^^
Modifié par Wyndhane, 13 novembre 2012 - 10:22 .