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
erazmus
Beginner


Joined: 05 Apr 2004
Posts: 11
Location: New Zealand

PostPosted: Sat Apr 24, 2004 1:30 pm   

Some help please....
 
I have 2 aliases which are part of an eq changing routine.
However I find that while it *seems* to be set out right, the output is not correct.
In the following please ignore the :'s along the left hand side, they're just there to keep spacing and don't appear in the real thing...

The first trigger is called eqChangeCombat and is as follows...

#IF (isAsleep) {
::wake
::wokenUp = true
::isAsleep = false
} {}
#IF (%arrget( locFloat, @wornIsInvis) or %arrget( locFloat, @combatIsInvis)) {
::#IF (@canSeeInvis) {eqSwap locFloat @eqCombat @eqCombatContainer} {
::::get @detectFood @detectContainer
::::eat @detectFood
::::eqSwap locFloat @eqCombat @eqCombatContainer
::}
} {eqSwap locFloat @eqCombat @eqCombatContainer}

From what I can tell this seems to be working correctly.
The 2nd alias is called eqSwap and you see it called a few times above and I think it is this that is screwing up....
I have changed the layout a little from how zMud tries to display it to hopefully make it more readable but it has exactly the same content.

;eqSwap %1 %2 %3
;Parameters : %1 is the location,%2 is the @eqIndex ie. @eqCombat etc, and %3 is the container for the new eq.
;also if the location being changed is the light then do things in a different order, so as to avoid being left in
;the dark
#IF (%1 <> "locLight") {
::#IF (%arrget( %1, @eqWorn)<>%arrget( %1, %2)) {
::::get %arrget( %1, %2) %3
::::remove %arrget( %1, @eqWorn)
::::put %arrget( %1, @eqWorn) %arrget( %1, @eqWornContainer)
::::wear %arrget( %1, %2)
::::#NOOP %arrset( %1, @eqWorn, %arrget( %1, %2))
::::#NOOP %arrset( %1, @eqWornContainer, %3)
::}{#ECHO xxAlreadyWornxx}
}{
::#IF (%arrget( %1, @eqWorn)<>%arrget( %1, %2)) {
::::get %arrget( %1, %2) %3
::::wear %arrget( %1, %2)
::::put %arrget( %1, @eqWorn) %arrget( %1, @eqWornContainer)
::::#NOOP %arrset( %1, @eqWorn, %arrget( %1, %2))
::::#NOOP %arrset( %1, @eqWornContainer, %3)
::}{#ECHO xxAlreadyWornxx}
}

What I am finding is that these 2 combined are producing the following output, so the mud follows as far as the first line then ????? -

wake<new_line>
{#IF (Zed<>Glowing) {get Glowing Sack;remove Zed;put Zed Sack;wear Glowing;#NOOP Glowing;#NOOP Sack}
{#ECHO xxAlreadyWornxx}}{#IF (Glowing<>Glowing) {get Glowing Sack;wear Glowing;put Glowing Sack;#NOOP Glowing;#NOOP Sack} {#ECHO xxAlreadyWornxx}}<all_one_long_line!>

Any help would be appreciated :)
Cheers,
Erazmus.
Reply with quote
LightBulb
MASTER


Joined: 28 Nov 2000
Posts: 4817
Location: USA

PostPosted: Sat Apr 24, 2004 4:13 pm   
 
Anywhere that you have }{, replace it with } { (put in a space).
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