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
adamwalker
Apprentice


Joined: 12 Mar 2005
Posts: 195

PostPosted: Sun Nov 12, 2006 12:47 am   

[1.15] Calling alias from an alias crash
 
Clean install. System totally clean using compatability editor to root things out (at last)

alias attack

Code:
attack target
#deli targetlist D
#deli targetlist A
targettoggle


alias targettoggle
Code:

#if ((%ismember( "E", @targetlist )) and (%ismember( "A", @targetlist ))) {#say on} {#t- buttonb}
#if ((%ismember( "FI", @targetlist )) and (%ismember( "W", @targetlist ))) {#say on} {#t- buttona}



ok, when i call the alias "attack" i get a crash. If I remove "targettoggle" from the alias. it doesnt crash. however when calling targettoggle alone it doesnt crash. so its something to do with how they all work together

the #t- turn off certain buttons

sent you the crash report via email zugg[/code]
Reply with quote
Vijilante
SubAdmin


Joined: 18 Nov 2001
Posts: 5182

PostPosted: Sun Nov 12, 2006 5:59 am   
 
I can't see anything really wrong with what you posted. You have a few extra pairs of parenthesis, but that doesn't actually hurt anything. Spaces between the @targetlist reference and close parenthesis are the only thing I could imagine might cause a problem. Try changing that spacing then report back,
_________________
The only good questions are the ones we have never answered before.
Search the Forums
Reply with quote
Arminas
Wizard


Joined: 11 Jul 2002
Posts: 1265
Location: USA

PostPosted: Sun Nov 12, 2006 6:20 am   
 
I'm working on it now, He didn't give us everything. I am recreating the crash. And working on a way to narrow it more.
_________________
Arminas, The Invisible horseman
Windows 7 Pro 32 bit
AMD 64 X2 2.51 Dual Core, 2 GB of Ram
Reply with quote
Arminas
Wizard


Joined: 11 Jul 2002
Posts: 1265
Location: USA

PostPosted: Sun Nov 12, 2006 7:14 am   
 
For starters If you ONLY create the first alias and actually use it you get an Access Violation.
First you get the loop pop up and after you click ok you get.

Error: Access violation at 0X0040539E(tried to write to 0X00030FFC), program terminated.

After that, if you put a ~ before the attack target to keep away the infinate loop. When you create a second alias. His targettoggle, and place #say on in the value and check to be sure it compiles, heck even run it. Now type attack.

The contents of the value of the variable are echoed to the screen as if the Alias didn't compile. If you keep going you can make the value complex enough to cause the crash he described but I think this is enough weirdness to hunt down the bug.
_________________
Arminas, The Invisible horseman
Windows 7 Pro 32 bit
AMD 64 X2 2.51 Dual Core, 2 GB of Ram
Reply with quote
adamwalker
Apprentice


Joined: 12 Mar 2005
Posts: 195

PostPosted: Sun Nov 12, 2006 10:39 am   
 
here is a more extensive version of the same code that is suffering from the same crash.

ALIAS - "cloak"
Code:

evoke cloak
#deli spiritsketch D
#deli spiritsketch A
spirittoggle


ALIAS - "spirittoggle"
Code:

#if ((%ismember( "E", @spiritsketch)) and (%ismember( "A", @spiritsketch))) {} {#t- sorcwater}
#if ((%ismember( "FI", @spiritsketch)) and (%ismember( "W", @spiritsketch))) {} {#t- sorcresist}
#if ((%ismember( "A", @spiritsketch)) and (%ismember( "D", @spiritsketch))) {} {#t- sorccloak}
#if ((%ismember( "E", @spiritsketch)) and (%ismember( "FI", @spiritsketch)) and (%ismember( "W", @spiritsketch))) {} {#t- sorcbladebar}
#if ((%ismember( "FI", @spiritsketch)) and (%ismember( "A", @spiritsketch)) and (%ismember( "FO", @spiritsketch))) {} {#t- sorcfear}
#if ((%ismember( "A", @spiritsketch)) and (%ismember( "D", @spiritsketch)) and (%ismember( "FO", @spiritsketch))) {} {#t- sorclead}
#if ((%ismember( "FI", @spiritsketch)) and (%ismember( "E", @spiritsketch)) and (%ismember( "W", @spiritsketch))) {} {#t- sorcgate}
#if ((%ismember( "FI", @spiritsketch)) and (%ismember( "L", @spiritsketch))) {} {#t- sorcstun}
#if ((%ismember( "D", @spiritsketch))) {} {#t- sorcdark}
#if ((%ismember( "D", @spiritsketch)) and (%ismember( "FI", @spiritsketch))) {} {#t- sorcwar}



Then there are buttons labelled sorcwar, sorcdark, sorcstun, sorcgate and so on....

edit. what this script does is hides the buttons that have been used.
Reply with quote
Zugg
MASTER


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

PostPosted: Mon Nov 13, 2006 8:05 pm   
 
Very wierd. It seems to be something to do with the #DELITEM calls in the first alias. If I replace these with #NOOP, then it works. But #DELITEM and #ADDITEM both cause it to fail. Looks like some obscure parser issue, so I've added it to the bug list.
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