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 Goto page 1, 2  Next
Vitae
Enchanter


Joined: 17 Jun 2005
Posts: 673
Location: New York

PostPosted: Tue Aug 12, 2008 11:19 pm   

Quick (hopefully) question about #oninput
 
#ONINPUT {^antimagic shell} {#IF (%ismember( Mage, @current_classes) AND @current_level >= %eval( 114-(@tier*10))) {castspell antimagic shell}}



#ONINPUT {^test} {#IF (%ismember( Mage, @current_classes) AND @current_level >= %eval( 114-(@tier*10))) {castspell antimagic shell}}


As part of a spellup script I have this and it works perfectly:

#ONINPUT {^antimagic shell} {#IF (%ismember( Mage, @current_classes) AND @current_level >= %eval( 114-(@tier*10))) {cast '167'} {#GAG}}

But you can't cast that spell along with another spell (which also works perfectly):

#ONINPUT {^globe of invulnerability} {#IF ((%ismember( Mage, @current_classes) AND @current_level >= %eval( 177-(@tier*10))) OR (%ismember( Psionicist, @current_classes) AND @current_level >= %eval( 126-(@tier*10)))) {cast '174'} {#GAG}}

When you cast a spell it's removed from the spellup list with a trigger/alias

#TRIGGER {^You conjure forth an anti-magic shell about you.} {castspell antimagic shell}
#ALIAS castspell {#IF (%ismember( %-1, @spellup_yeslist)) {#IF (%ismember( %-1, @spellup_templist)) {spellup_templist=%delitem( %-1, @spellup_templist)}}}

So i decided that logically (and since I prefer globe over shell):

#ONINPUT {^antimagic shell} {#IF ((%ismember( Mage, @current_classes) AND @current_level >= %eval( 177-(@tier*10))) OR (%ismember( Psionicist, @current_classes) AND @current_level >= %eval( 126-(@tier*10)))) {castspell antimagic shell} {#IF (%ismember( Mage, @current_classes) AND @current_level >= %eval( 114-(@tier*10))) {cast '167'} {#GAG}}}

But it sends some command to the mud and I have NO idea what that command even is. But I have a feeling that it's sending the command castspell antimagic shell straight to the mud.
I tried this as a test:

#ONINPUT {^antimagic shell} {#IF (%ismember( Mage, @current_classes) AND @current_level >= %eval( 114-(@tier*10))) {castspell antimagic shell}}

And it always throws an error from the mud.

Is there something about #oninput that don't allow alias's to fire?
I'd rather keep the commands as they are because #oninput displays cleanly for me, and am willing to toss Anti even tho i get it 12 lvls sooner.
Of course there's OTHER spells/skills that I'd rather not toss and want to use.
Yes, I know I can maintain the var list that it loads up the spells and delete anti, and add it in when I remort, but i want as little to do with remembering to add/remove spells as I can :-)
Reply with quote
Vitae
Enchanter


Joined: 17 Jun 2005
Posts: 673
Location: New York

PostPosted: Thu Aug 14, 2008 9:55 pm   
 
??
_________________
http://www.Aardwolf.com
Reply with quote
ralgith
Sorcerer


Joined: 13 Jan 2006
Posts: 715

PostPosted: Fri Aug 15, 2008 12:39 am   
 
That SHOULD Work. I triple checked for missing brackets or flawed logic, and found none.

NOTE: Thats on your smaller testing version. Can you turn on the echoing and see whats being sent?

Also you could try #EXEC castspell....
That should FORCE it to work.
_________________
CrossOver: Windows Compatibility on Mac and Linux CMUD Advocate
Reply with quote
Vitae
Enchanter


Joined: 17 Jun 2005
Posts: 673
Location: New York

PostPosted: Fri Aug 15, 2008 10:01 pm   
 
I've turned on all the echoing i can find in the Prefs and NOTHING gets echoed for some reason. Just the error msg by the mud.
I thought of the #exec and tried it and it still didn't work :(

Thing is,
#ONINPUT {^antimagic shell} {#IF (%ismember( Mage, @current_classes) AND @current_level >= %eval( 114-(@tier*10))) {cast '167'} {#GAG}}
and
#ONINPUT {^antimagic shell} {#IF (%ismember( Mage, @current_classes) AND @current_level >= %eval( 114-(@tier*10))) {castspell antimagic shell}}

don't have any more or less brackets and it all flows the same. So there's nothing that should be stopping it from working.
And yes, i also tried the non-working one with and without the #GAG
Reply with quote
Vitae
Enchanter


Joined: 17 Jun 2005
Posts: 673
Location: New York

PostPosted: Sat Aug 16, 2008 12:15 am   
 
Follow up. The builder of Aard was kind enuf to snoop me to see what might be being sent.
Winds up that the "castspell" part is totally being ignored as if it wasn't even there.

15 Aug 19:38 - Lasher tells you '[15 Aug 19:33:30] DaemonChilde tried 'antimagic shell''

I was running this script
#ONINPUT {^antimagic shell} {#IF ((%ismember( Mage, @current_classes) AND @current_level >= %eval( 177-(@tier*10))) OR (%ismember( Psionicist, @current_classes) AND @current_level >= %eval( 126-(@tier*10)))) {castspell antimagic shell} {#IF (%ismember( Mage, @current_classes) AND @current_level >= %eval( 114-(@tier*10))) {cast '167'} {#GAG}}}

I tried:
#noop castspell antimagic shell
#send castspell antimagic shell
#exec castspell antimagic shell

thinking that MAYBE it's just ignoring the 1st part and will work with the rest i tried
#noop {};castspell antimagic shell
#send {};castspell antimagic shell
#exec {};castspell antimagic shell

and still nothing.

BUT, even tho it's NOT at all what I want, I've decided to go with a normal alias for these "special spells"
Reason I liked #oninput was because there IS no display to the screen when it's being input.
With the Alias i have to do {#GAG;cast '167'} and that makes my screen do a little jump and i can't stand that.

If ANY one can come up with the solution as to the #oninput problem, PLEASE let me know!
Reply with quote
ralgith
Sorcerer


Joined: 13 Jan 2006
Posts: 715

PostPosted: Sat Aug 16, 2008 3:00 pm   
 
Just for kicks... try this one?

Code:
#ONINPUT {^antimagic shell} {#IF ((%ismember( Mage, @current_classes) AND @current_level >= %eval( 177-(@tier*10))) OR ((%ismember( Psionicist, @current_classes) AND @current_level >= %eval( 126-(@tier*10))))) {castspell antimagic shell} {#IF (%ismember( Mage, @current_classes) AND @current_level >= %eval( 114-(@tier*10))) {cast '167'} {#GAG}}}


I think that should fix it :)
You didn't have the second portion of your if properly bracketed to work with the AND/OR/AND

As for your first examples of:
Quote:
Thing is,
#ONINPUT {^antimagic shell} {#IF (%ismember( Mage, @current_classes) AND @current_level >= %eval( 114-(@tier*10))) {cast '167'} {#GAG}}
and
#ONINPUT {^antimagic shell} {#IF (%ismember( Mage, @current_classes) AND @current_level >= %eval( 114-(@tier*10))) {castspell antimagic shell}}

Both worked fine for me as long as all 3 vars were properly set (Mage being in current_classes and capped, current_level set to 200, and tier set to 10)

Here is the code I tested the second evolution with:
Code:
#CLASS {TestOnINP}
#VAR current_classes {Mage|Sorcerer|Paladin}
#VAR current_level {200}
#VAR tier {10}
#ONINPUT {^antimagic shell} {#IF (%ismember( Mage, @current_classes) AND @current_level >= %eval( 114-(@tier*10))) {
    #ECHO {~#IF Fired Successfully}
    castspell antimagic shell
    } {#ECHO {~#IF Fired Incorrectly}}} "" {notrig}
#CLASS 0


And my result:
50504Hp 50127Ma 50000Mv> #IF Fired Successfully
castspell antimagic shell
Huh?!?

With no castspell alias. If I make this: #ALIAS castspell {cast '%-1'}
I instead get:
50504Hp 50127Ma 50000Mv> #IF Fired Successfully
cast 'antimagic shell'
Cast what?!?

Now when I test my solution above... it still gives me:
50504Hp 50127Ma 50000Mv> #IF Fired Successfully
cast 'antimagic shell'
Cast what?!?
_________________
CrossOver: Windows Compatibility on Mac and Linux CMUD Advocate
Reply with quote
Tech
GURU


Joined: 18 Oct 2000
Posts: 2733
Location: Atlanta, USA

PostPosted: Sat Aug 16, 2008 4:00 pm   
 
[Ignore me] Me ralgith's post seems much more helpful and I am very late in responding.
_________________
Asati di tempari!
Reply with quote
MattLofton
GURU


Joined: 23 Dec 2000
Posts: 4834
Location: USA

PostPosted: Sun Aug 17, 2008 1:18 am   
 
:pokes Tech:
Now's a good time to play with your new superpowers, fellow Guru. Laughing
_________________
EDIT: I didn't like my old signature
Reply with quote
Vitae
Enchanter


Joined: 17 Jun 2005
Posts: 673
Location: New York

PostPosted: Mon Aug 18, 2008 1:51 pm   
 
ralgith wrote:
Just for kicks... try this one?
Code:
#ONINPUT {^antimagic shell} {#IF ((%ismember( Mage, @current_classes) AND @current_level >= %eval( 177-(@tier*10))) OR ((%ismember( Psionicist, @current_classes) AND @current_level >= %eval( 126-(@tier*10))))) {castspell antimagic shell} {#IF (%ismember( Mage, @current_classes) AND @current_level >= %eval( 114-(@tier*10))) {cast '167'} {#GAG}}}
I think that should fix it :)
You didn't have the second portion of your if properly bracketed to work with the AND/OR/AND

Don't work. And was properly bracketed the way I had it. No () was missing, and worked fine with the Globe of Invulnerability. At least to me that means that everything was proper.
Still sends JUST "antimagic shell"
Reply with quote
ralgith
Sorcerer


Joined: 13 Jan 2006
Posts: 715

PostPosted: Mon Aug 18, 2008 7:32 pm   
 
Weird, since I tested it more than once snooping myself on my own mud :)

Something else has to be affecting it. So now I'm lost. If you want you can email me your settings file for this character (with password info removed) and I will import it and test directly on your MUD if you'd like.

ralgith@dubrin.net
_________________
CrossOver: Windows Compatibility on Mac and Linux CMUD Advocate
Reply with quote
Vitae
Enchanter


Joined: 17 Jun 2005
Posts: 673
Location: New York

PostPosted: Mon Aug 18, 2008 7:46 pm   
 
Well, you'd have to get to lvl 177 as a Mage to test it :-)
Figured out that if i'm in note mode i will get the output of the spells
With your Script:

cast '118'
cast '119'
antimagic shell
cast '422'
cast '164'
_________________
http://www.Aardwolf.com
Reply with quote
Tech
GURU


Joined: 18 Oct 2000
Posts: 2733
Location: Atlanta, USA

PostPosted: Thu Aug 21, 2008 6:31 am   
 
I've tried this myself and it works as ralgith described. Have you tried disabling your other triggers when you test this?
_________________
Asati di tempari!
Reply with quote
Vitae
Enchanter


Joined: 17 Jun 2005
Posts: 673
Location: New York

PostPosted: Thu Aug 21, 2008 9:35 pm   
 
Yeap. Disabled all the other stuff and still sends JUST antimagic shell
Since my last post, I've remorted and won't be at the correct lvl for quite a while to further test.

EDIT:
DUH, of course i COULD just edit the current_lvl var.
Will check it again

Well, that didn't work. I had turned off all my #oninputs and all it did was send the command (which i expected):

flesh armor
frenzy
giant strength
antimagic shell
godly embrace
harden body
holy aura
indestructible aura
inertial barrier

With the #oninputs activated again:

cast '119'
cast '49'
cast '51'
antimagic shell
cast '425'
cast '422'
cast '164'
cast '91'
cast '121'

And I am using Ralgith's code:
Code:
#ONINPUT {^antimagic shell} {#IF ((%ismember( Mage, @current_classes) AND @current_level >= %eval( 177-(@tier*10))) OR ((%ismember( Psionicist, @current_classes) AND @current_level >= %eval( 126-(@tier*10))))) {castspell antimagic shell} {#IF (%ismember( Mage, @current_classes) AND @current_level >= %eval( 114-(@tier*10))) {cast '167'} {#GAG}}}
Reply with quote
TonDiening
GURU


Joined: 26 Jul 2001
Posts: 1958
Location: Canada

PostPosted: Thu Aug 21, 2008 10:17 pm   
 
Could this just be a case that the trigger has [] trigger on trigger disabled or some other weird checked/unchecked setting?
Reply with quote
Vitae
Enchanter


Joined: 17 Jun 2005
Posts: 673
Location: New York

PostPosted: Fri Aug 22, 2008 11:22 pm   
 
I took the working #oninput for antimagic shell and made a copy of it, and the only change i made was the body of the trigger.
Effectively it's an exact copy of the old one in the settings.
_________________
http://www.Aardwolf.com
Reply with quote
ralgith
Sorcerer


Joined: 13 Jan 2006
Posts: 715

PostPosted: Wed Aug 27, 2008 3:43 pm   
 
Well, The offer is still open to test this live with your settings files if you'd like. Though it may be some time. My computers got fried in an electric storm (my entire beowulf cluster!!!) and I'm getting the insurance to buy new ones. I'll check in once I get that far.
_________________
CrossOver: Windows Compatibility on Mac and Linux CMUD Advocate
Reply with quote
ralgith
Sorcerer


Joined: 13 Jan 2006
Posts: 715

PostPosted: Mon Sep 15, 2008 5:32 pm   
 
Ok, on my new laptop Vitae, if you'd like to relook at this I can install zMUD at any time.
_________________
CrossOver: Windows Compatibility on Mac and Linux CMUD Advocate
Reply with quote
Rappy
Wanderer


Joined: 15 Jul 2005
Posts: 96

PostPosted: Tue Sep 16, 2008 9:28 pm   
 
Curious on this, could you have had an alias named 'castspell' that was sending %-1. Could be something to look in to, possibly it got added by accident.

-Rappy
_________________
Windows 11 Pro,
cMUD 3.34
Reply with quote
Vitae
Enchanter


Joined: 17 Jun 2005
Posts: 673
Location: New York

PostPosted: Wed Sep 17, 2008 1:53 pm   
 
@ Ralgith - Sent

@ Rappy - I thought of that too, and there's only one alias named castspell, and that's the one that is supposed to be there.
_________________
http://www.Aardwolf.com
Reply with quote
ralgith
Sorcerer


Joined: 13 Jan 2006
Posts: 715

PostPosted: Wed Sep 17, 2008 7:16 pm   
 
Ok, I'm installing zMUD on the new laptop tonight, and I'll get back to you in a few days.
_________________
CrossOver: Windows Compatibility on Mac and Linux CMUD Advocate
Reply with quote
ralgith
Sorcerer


Joined: 13 Jan 2006
Posts: 715

PostPosted: Wed Sep 17, 2008 7:47 pm   
 
Mmmm, not seeing any files in either email... all I got from ya is a PM here on the site ;)
_________________
CrossOver: Windows Compatibility on Mac and Linux CMUD Advocate
Reply with quote
Vitae
Enchanter


Joined: 17 Jun 2005
Posts: 673
Location: New York

PostPosted: Thu Sep 18, 2008 11:21 am   
 
I sent it to ralgith@dubrin.net

Maybe you should check your spam folder :-)
Subject was "My spellup script"
I'll resend just in case
_________________
http://www.Aardwolf.com
Reply with quote
ralgith
Sorcerer


Joined: 13 Jan 2006
Posts: 715

PostPosted: Fri Sep 19, 2008 1:31 am   
 
Got it, I'll use the email for all further correspondence on this issue so's we don't spam the forums ;)
_________________
CrossOver: Windows Compatibility on Mac and Linux CMUD Advocate
Reply with quote
ralgith
Sorcerer


Joined: 13 Jan 2006
Posts: 715

PostPosted: Wed Oct 01, 2008 8:48 pm   
 
Ok everyone, here's what I found to be the problem, and how I solved it.

In this code:
Code:
#ONINPUT {^antimagic shell} {#IF ((%ismember( Mage, @current_classes) AND @current_level >= %eval( 177-(@tier*10))) OR ((%ismember( Psionicist, @current_classes) AND @current_level >= %eval( 126-(@tier*10))))) {castspell antimagic shell} {#IF (%ismember( Mage, @current_classes) AND @current_level >= %eval( 114-(@tier*10))) {cast '167'} {#GAG}}}


The castspell antimagic shell sends nothing to the MUD, so the initial firing text (antimagic shell) is sent.
This seems to me a limitation in the way #ONINPUT is implemented.

To solve it I tried putting a #GAG immediately after castspell antimagic shell. This did not fix it, even though in other #ONI's such as:
#ONINPUT {^globe} {#If (0 > 1) {save} {#GAG}}
The gag stops there from being any output. I determined this only worked if the #GAG was the LAST non-bracket part of a #ONI.

So... Solution:
Code:
#ONINPUT {^antimagic shell} {#IF ((%ismember( Mage, @current_classes) AND @current_level < %eval( 177-(@tier*10)) AND (%ismember( Mage, @current_classes) AND @current_level >= %eval( 114-(@tier*10)))) AND ((%ismember( Psionicist, @current_classes) AND @current_level < %eval( 126-(@tier*10))))) {cast '167'} {
  castspell antimagic shell
  #GAG
  }}


Which works. At least for me. Vitae should be back to me momentarily on if it works on the actual live MUD.
_________________
CrossOver: Windows Compatibility on Mac and Linux CMUD Advocate
Reply with quote
ralgith
Sorcerer


Joined: 13 Jan 2006
Posts: 715

PostPosted: Wed Oct 01, 2008 11:37 pm   
 
ralgith wrote:
So... Solution:
Code:
#ONINPUT {^antimagic shell} {#IF ((%ismember( Mage, @current_classes) AND @current_level < %eval( 177-(@tier*10)) AND (%ismember( Mage, @current_classes) AND @current_level >= %eval( 114-(@tier*10)))) AND ((%ismember( Psionicist, @current_classes) AND @current_level < %eval( 126-(@tier*10))))) {cast '167'} {
  castspell antimagic shell
  #GAG
  }}


Which works. At least for me. Vitae should be back to me momentarily on if it works on the actual live MUD.


And that doesn't work if Psionicist isn't in current_classes

So, here is the proper solution:
Code:
#ONINPUT {^antimagic shell} {
#VARIABLE test_am_shell 0
#IF (%ismember( Mage, @current_classes) AND @current_level >= %eval( 114-(@tier*10))) {#VARIABLE test_am_shell 1}
#IF (%ismember( Mage, @current_classes) AND @current_level >= %eval( 177-(@tier*10))) {#VARIABLE test_am_shell 0}
#IF (%ismember( Psionicist, @current_classes) AND @current_level >= %eval( 126-(@tier*10))) {#VARIABLE test_am_shell 0}
#IF (@test_am_shell > 0) {cast '167'} {
  castspell antimagic shell
  #GAG
  }}
_________________
CrossOver: Windows Compatibility on Mac and Linux CMUD Advocate
Reply with quote
Display posts from previous:   
Post new topic   Reply to topic     Home » Forums » zMUD General Discussion All times are GMT
Goto page 1, 2  Next
Page 1 of 2

 
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