Register to post in forums, or Log in to your existing account
 

Play RetroMUD
Post new topic  Reply to topic     Home » Forums » CMUD Beta Forum
The Raven
Magician


Joined: 13 Oct 2000
Posts: 463

PostPosted: 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.
Reply with quote
The Raven
Magician


Joined: 13 Oct 2000
Posts: 463

PostPosted: 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.
Reply with quote
Zugg
MASTER


Joined: 25 Sep 2000
Posts: 23379
Location: Colorado, USA

PostPosted: 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.
Reply with quote
Display posts from previous:   
Post new topic   Reply to topic     Home » Forums » CMUD Beta Forum All times are GMT
Page 1 of 1

 
Jump to:  
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

© 2009 Zugg Software. Hosted by Wolfpaw.net