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

Play RetroMUD
Post new topic  Reply to topic     Home » Forums » zMUD General Discussion
Articnal
Apprentice


Joined: 19 Jan 2002
Posts: 107

PostPosted: Sat Mar 08, 2003 10:14 pm   

Acces violation
 
Hi.
I am using zmud 6.16,and i got a problem.
Everything works great,i tryed zmud 6.40 and 6.53,and i had mapping problems,because the mapper war REALLY slow,much than zmud 6.16,and i decided to go back to 6.16 ver because i need fastness,im pk.
I read something about this bug is solved in version 6.40,but i dont want to return to that version because of maps.
My problem is about an infinite loop,that i think that doesnt exists.
The error message is:
Acces violation at address 004807bc in module 'zmud.exe'. Read of address FFFFFFFF

I made 3 alias:
alias aportodo value aporelbote;aporelrollo
alias aportodo2 value aportodo;#wait 120000;aportodo2
alias aporelbote value c viaje shagrat;c 'destruir maldad' sha;coger todo sha;acasa
alias aporelrollo value c viaje maestro traductor;c espinas traductor;coger todo asistente;acasa
and using aportodo2 alias tells me,after being able to wait for 2 or 3 times and executing this alias again for 2 or 3 times,that an infinite loop has being detected.

Any ideas?
Thank You
Articnal
Reply with quote
Emit
Magician


Joined: 24 Feb 2001
Posts: 342
Location: USA

PostPosted: Sat Mar 08, 2003 11:27 pm   
 
quote:

alias aportodo2 value aportodo;#wait 120000;aportodo2



This isn't exactly an infinite loop, more like infinite recursion. it amounts to the same thing, except, none of the alias calls ever end, and so remain on the call stack. Here is what you can do instead:

#alarm "aportodo2" {*2:00} {aportodo}

--
it will do the same thing (execute aportodo every 2 minutes) but you won't have any nasty access violations. Turn it on or off at your desire with commands
#t+ "aportodo2"
#t- "aportodo2"
respectively.

--------

moon.icebound.net:9000
Reply with quote
Articnal
Apprentice


Joined: 19 Jan 2002
Posts: 107

PostPosted: Sat Mar 08, 2003 11:51 pm   
 
Well,thanks a lot :)
Reply with quote
Articnal
Apprentice


Joined: 19 Jan 2002
Posts: 107

PostPosted: Sun Mar 09, 2003 12:05 am   
 
Ok i got another question about that ^^
If i wanted to stop that time,for,for example,start the countdown again,but i still want the alias to keep working,so i cant use #t- "aportodo2",do i have any option? or will i have to quit and rejoin the character?
Thanks again :D
Reply with quote
Emit
Magician


Joined: 24 Feb 2001
Posts: 342
Location: USA

PostPosted: Sun Mar 09, 2003 12:56 am   
 
to just restart the countdown? just do this

#t- aportodo2;#t+ aportodo2

and it will go back up to the top 2 minutes

--------

moon.icebound.net:9000
Reply with quote
Articnal
Apprentice


Joined: 19 Jan 2002
Posts: 107

PostPosted: Sun Mar 09, 2003 10:07 am   
 
Ok the last solution didnt work,and i think its because the alarm isnt created on the aportodo2 folder,but in the main one.
How to force the alias to create it on the subfolder aportodo2?
Reply with quote
Emit
Magician


Joined: 24 Feb 2001
Posts: 342
Location: USA

PostPosted: Sun Mar 09, 2003 10:25 am   
 
um, if its not working i don't think the folder issue is the problem. To answer your question though, the argument in the #trigger (or #alarm, #oninput, or #temp) directly after the commands is the class the #trigger should be created in.

However, the optional argument before the pattern (using double quotes to distinguish it from the pattern), is the trigger ID. A single trigger can be #t+'d or #t-'d using its id name, instead of its class name, which is what i was trying to do.

When i tested it on v6.53, using alarms with short intervels (10 seconds) turning the #alarm off and then on again appeared to reset the timer to 10. If that doesn't do it then i don't really know what will, except deleting the #alarm and recreating it.

--------

moon.icebound.net:9000
Reply with quote
Articnal
Apprentice


Joined: 19 Jan 2002
Posts: 107

PostPosted: Sun Mar 09, 2003 11:15 am   
 
Ok now i used the line:
#alarm "aportodo2" {*2:00} {aportodo2} [noestoy]
now the tigger is created on the class i want,[noestoy],and when i disable class it stops working,if i enable it again,and use the alias aportodo2,it does what it has to do,but repeats it another time before 2 min,so i think any other tigger keeps working... dunno... how to disable it...or...
Thanks for ur help
Articnal
Reply with quote
Emit
Magician


Joined: 24 Feb 2001
Posts: 342
Location: USA

PostPosted: Sun Mar 09, 2003 7:28 pm   
 
I'm a little confused, what is your goal with this trigger? I originally thought you wanted to execute the alias aprotodo every 2 minutes. If this is the case, then the trigger you want is this one:

#alarm "aportodo2" {*2:00} {aportodo}

and you should delete the alias aportodo2.

--------

moon.icebound.net:9000
Reply with quote
Display posts from previous:   
Post new topic   Reply to topic     Home » Forums » zMUD General Discussion 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