 |
The Raven Magician
Joined: 13 Oct 2000 Posts: 463
|
Posted: Fri Nov 17, 2006 9:19 pm
[1.15] Trigger not fully processing before more lines rcvd. |
Ok, this is a very odd bug. I have several triggers that parse the output from the "status" command. The first trigger checks whether the status line is of the same vehicle as the last time I ran a status. If not, it clears the stored unit data, and resets it. The colored lines below are the output in the MUD.
===============================================
status
Mech Name: T2 Archer ID:[EM] Mech Reference: ARC-4M
StartMechParsing1
Tonnage: 70 MaxSpeed: 64 JumpRange: 0
Pilot Name: Tikatt Ren Pilot Injury: 0
...
... about 10 other lines of non-triggering output ...
...
MediumLaser [ 0] Left Arm Ready || LRM-20 A 24
Reparse: 3
MediumLaser [ 1] Right Arm Ready ||
Reparse: 3
Deleting unit data.
End Status
StartMechParsing2
===============================================
Now there's a few things going horribly wrong. The first two lines of the very first trigger are:
#ECHO StartMechParsing1
#IF (...) {ResetUnitData}
Inside the ResetUnitData alias, there is an echo 'Deleting unit data.'. The last line of the trigger echoes 'StartMechParsing2'
So if this trigger were executing properly, there would be THREE echoed lines in a row...
StartMechParsing1
Deleting unit data.
StartMechParsing2
But take a look at the output above. Those lines are separated by over a dozen others. Other TRIGGERS are firing while the first trigger hasn't even finished! This is completely backwards from what Zugg has stated, that a trigger always finishes parsing before the next line of the MUD gets displayed.
As far as I can tell, all the triggers and aliases involved are compiling properly, and they DO execute like they're supposed to... they just do this wonky out-of-order execution that is horribly breaking the results of the triggers. |
|
|
 |
The Raven Magician
Joined: 13 Oct 2000 Posts: 463
|
Posted: Fri Nov 17, 2006 9:21 pm |
As another note... if the #IF statement above does not get executed (if the expression is false, and 'ResetUnitData' is not called) then it executes properly... the first trigger ends before going on to the rest of the triggers. It seems very odd that executing an alias would cause the execution of the trigger to alter. I'm pretty sure that's a bug.
|
|
|
 |
Zugg MASTER

Joined: 25 Sep 2000 Posts: 23379 Location: Colorado, USA
|
Posted: Mon Nov 20, 2006 3:35 pm |
Do you have any #WHILE or #UNTIL commands in your script? Or any #WAIT commands or anything else like this? I'm having a hard time reproducing this problem, so I'll probably need to see more details of your exact script.
|
|
|
 |
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|