Unknown2006-02-20 03:14:09
Alright I'm making the switch to zMUD now, I figure making a system will give me something to do (plus Selwin already gave me a good bare base to work from).
I've set up my targetting alias and variables how I like it, that's fine, but I've never used zMUD before really, and now I'm stuck.
I want a 'defup' alias that will run through spitting out my defences. So, it would do for example:
Defup
invoke red
nature rooting
moondance aura
etc.
I have an idea in my head how it should work, with checks for equilibrium and all that, but I can't seem to get it actually checking equilibrium and then firing off the next defense (yes, I do havea variable for eq that does work).
Little help?
Cheers.
I've set up my targetting alias and variables how I like it, that's fine, but I've never used zMUD before really, and now I'm stuck.
I want a 'defup' alias that will run through spitting out my defences. So, it would do for example:
Defup
invoke red
nature rooting
moondance aura
etc.
I have an idea in my head how it should work, with checks for equilibrium and all that, but I can't seem to get it actually checking equilibrium and then firing off the next defense (yes, I do havea variable for eq that does work).
Little help?
Cheers.
Shryke2006-02-20 03:21:48
maybe #alias defup {#t+ deftrigger}
#trigger {^You have recovered} {#if flex=0 {flexalias} {#if malkuth=0 {malkuthalias} etc....}}
#alias flexalias {flex;flex=1}
#trigger {you are flexed (or whatever the message is)} {flex equals one}
#alias def {flex=0;malkuth=0....etc.;defenses}
It would be nice because once you lose some defs you can check them, and do defup.
EDIT: you could also do #alias defup {def;flex=0;malkuth=0;#t+ deftrigger}
This would circumvent the def alias..
#trigger {^You have recovered} {#if flex=0 {flexalias} {#if malkuth=0 {malkuthalias} etc....}}
#alias flexalias {flex;flex=1}
#trigger {you are flexed (or whatever the message is)} {flex equals one}
#alias def {flex=0;malkuth=0....etc.;defenses}
It would be nice because once you lose some defs you can check them, and do defup.
EDIT: you could also do #alias defup {def;flex=0;malkuth=0;#t+ deftrigger}
This would circumvent the def alias..
Saran2006-02-20 03:23:24
heh, Mine is just a button, i click it and it tries to use every def i have with waits between the ones that have balance
Shorlen2006-02-20 03:41:54
Hmm, can zMUD trigger states be used for this to do it all in one trigger?
Unknown2006-02-20 03:53:47
Well, the way I do it is just to create a variable that has all the commands you want to use, and trigger "You have recovered" to fire off the next one.
At least for those that consume balance/equilibrium.
At least for those that consume balance/equilibrium.
Unknown2006-02-20 04:05:09
QUOTE(Shorlen @ Feb 20 2006, 04:41 AM) 260496
Hmm, can zMUD trigger states be used for this to do it all in one trigger?
They can, and it's really easy. Goes something like this. Just enter the following at the zMUD command line:
#ONINPUT "defup_trig" {defup} {invoke red} "" {notrig}
#COND {^You have recovered equilibrium.$} {nature rooting}
#COND {^You have recovered equilibrium.$} {moondance aura}
Then another #COND for each defence. The #COND can check for different outcomes. Say you want to put up barkskin. You could have the following:
#COND {^{You have recovered equilibrium.|That message that tells you your skin is already tough.}$} {nature barkskin}
This will all go into one multi-state trigger, you can really easily edit the states to add more defences.
Now if only someone could clue me in on how do to the same for MUSHclient scripting in VBscript
Shorlen2006-02-20 04:13:29
Is there any way to run just a normal global #if loop thing? Like, to watch a variable and do something if that variable changes?
Unknown2006-02-20 04:23:51
Oh, forgot to add something. If you make each of your #COND's like the one for barkskin in the example above, with the "{You have recovered equilibrium|You already have that defence message}", you can use the same alias to put up only defences that have been stripped really quickly.
Simpler than mucking about with IF's and variables, in my opinion!
Simpler than mucking about with IF's and variables, in my opinion!
Unknown2006-02-20 04:30:29
QUOTE(vale_kant @ Feb 20 2006, 03:05 PM) 260503
They can, and it's really easy. Goes something like this. Just enter the following at the zMUD command line:
#ONINPUT "defup_trig" {defup} {invoke red} "" {notrig}
#COND {^You have recovered equilibrium.$} {nature rooting}
#COND {^You have recovered equilibrium.$} {moondance aura}
Then another #COND for each defence. The #COND can check for different outcomes. Say you want to put up barkskin. You could have the following:
#COND {^{You have recovered equilibrium.|That message that tells you your skin is already tough.}$} {nature barkskin}
This will all go into one multi-state trigger, you can really easily edit the states to add more defences.
Now if only someone could clue me in on how do to the same for MUSHclient scripting in VBscript
That works, except it is only a one off thing? I do defup_trig..it goes through the motions. I do it again, nada.
EDIT: Worked a solution, thanks.
Unknown2006-02-20 04:34:50
QUOTE(Quidgyboo @ Feb 20 2006, 05:30 AM) 260512
That works, except it is only a one off thing? I do defup_trig..it goes through the motions. I do it again, nada.
Oops. Yeah, you need to reset the trigger state to 0 on the very last line. So your last line has to look like this:
#COND {^You have recovered equilibrium.$} {moondance aura; #state defup_trig 0}
Unknown2006-02-20 04:40:15
One problem though, with the 'you already have that' type messages, it isn't firing the next def because it waits for the recovered equilibrium, which doesn't happen since I didn't lose it in the first place. Would it be better to use en equilibrium variable?
EDIT: Nevermind, I missed some brackets. Thanks a lot!
EDIT: Nevermind, I missed some brackets. Thanks a lot!
Daganev2006-02-20 04:46:18
Thats why I just use the #wait command between each def, and if two defs can be called at the same time, I don't put hte #wait command in.
Unknown2006-02-20 04:51:03
And now zMUD crashes, losing this and every other little thing I've done on there today . I was so proud of myself too, I had my targetting, clotting and some other things set up just as I like them. It won't be hard to fix, but still, I felt accomplished.
Unknown2006-02-20 04:52:59
#wait is the devil, I tell ya. Blame Daganev for invoking its name! 'Sides, you can put up multiple defences that don't need eq at once with the above code:
#COND {^You have recovered equilibrium.$} {moondance aura; nightsight; thirdeye}
#COND {^You have recovered equilibrium.$} {moondance aura; nightsight; thirdeye}
Daganev2006-02-20 05:46:09
For something like a defup script, I think #wait is perfect. There is no emergency in deffing up, and if you need to, you can always do things during a wait period to stop the defup process.
Shorlen2006-02-20 05:52:37
EDIT: I'm an idiot, ignore me
Unknown2006-02-20 06:11:36
QUOTE(Saran @ Feb 20 2006, 03:23 AM) 260493
heh, Mine is just a button, i click it and it tries to use every def i have with waits between the ones that have balance
i also use a button which activates my "deffing up" folder, does the first defense and deactivates it as soon as the last defense is on. It fires every balances (including the herb and potion balances for the herbs and potions of course). Not very astounding but it works for me
Unknown2006-02-20 10:21:31
I've never really liked fully automatical deffing, it tends to mess me up when I'm in a hurry.
That's why I use a semi-automatical alias. Basically, it loops through @myfreedefs which contains all my defences that don't consume any balance, and applies those I don't have up yet. Then it walks through @myotherdefs one item at a time till it finds one that I don't have up and fires it, provided I have balance. @myotherdefs has all defences that consume either balance or equilibrium, with the most important ones at the top.
That way I just have to invoke the alias a couple of times to get all my defences up, or apply only the most needed defences if I need to rejoin a battle quickly with essential protection. If paired with decent tracking of defences going up and down it also allows to easily deal with any defence-removing attacks.
All of that without making you repeatedly lose balance, which is a rather bad thing to have any way.
That's why I use a semi-automatical alias. Basically, it loops through @myfreedefs which contains all my defences that don't consume any balance, and applies those I don't have up yet. Then it walks through @myotherdefs one item at a time till it finds one that I don't have up and fires it, provided I have balance. @myotherdefs has all defences that consume either balance or equilibrium, with the most important ones at the top.
That way I just have to invoke the alias a couple of times to get all my defences up, or apply only the most needed defences if I need to rejoin a battle quickly with essential protection. If paired with decent tracking of defences going up and down it also allows to easily deal with any defence-removing attacks.
All of that without making you repeatedly lose balance, which is a rather bad thing to have any way.
Penelope2006-02-20 10:21:46
This is what I use. It's not very fancy, but it gets it done. If anyone wants to change it and make it cleaner feel free. The sting list will stop if it uses a skill you already have up. You'll need to do something lik DEF that requires a "recovered" response from the game. There are empty class files simply because I left out other things that aren't involved in the deffing portion.
CODE
#CLASS {Combat}
#CLASS 0
#CLASS {Combat|Defense}
#CLASS 0
#CLASS {Combat|Defense|Deffing}
#ALIAS startup {#T+ startup;startupcnt=0;sip fire;#wa 5000;sip frost;#wa 5000;outr kafe;eat kafe;#wa 5000;parry all;#wa 1000;insomnia;#wa 1000;nightsight;#ALARM +2 {#echo recovered}}
#ALIAS sr {#say recovered}
#CLASS 0
#CLASS {Combat|Defense|Deffing|Startup} {disable}
#VAR startupcnt {0} {0}
#VAR startup {nature barkskin|nature rooting|nature blend on|spiritbond nature|shadowdance garb|invoke red|invoke blue|deathsense|thirdeye|selfishness|faesummon nymph|faesummon sprite|faecloak on|lipread|#t- startup}
#TRIGGER {recovered} {#ADD startupcnt 1;#EXECUTE %item( @startup, @startupcnt)}
#CLASS 0
#CLASS 0
#CLASS {Combat|Defense}
#CLASS 0
#CLASS {Combat|Defense|Deffing}
#ALIAS startup {#T+ startup;startupcnt=0;sip fire;#wa 5000;sip frost;#wa 5000;outr kafe;eat kafe;#wa 5000;parry all;#wa 1000;insomnia;#wa 1000;nightsight;#ALARM +2 {#echo recovered}}
#ALIAS sr {#say recovered}
#CLASS 0
#CLASS {Combat|Defense|Deffing|Startup} {disable}
#VAR startupcnt {0} {0}
#VAR startup {nature barkskin|nature rooting|nature blend on|spiritbond nature|shadowdance garb|invoke red|invoke blue|deathsense|thirdeye|selfishness|faesummon nymph|faesummon sprite|faecloak on|lipread|#t- startup}
#TRIGGER {recovered} {#ADD startupcnt 1;#EXECUTE %item( @startup, @startupcnt)}
#CLASS 0
Unknown2006-02-20 12:06:16
I think I must have the most complex defense script of anyone, judging by the posts here. I use multiple queues, one for each balance, so everything goes up pretty fast. I track which defenses are up in a single data record variable, and if I defup again, it only puts up the missing ones (without the extra commands and their corresponding failure messages). No messy timers to throw it off in lag or slow it down unnecessarily. The only thing I haven't account for is putting up all those power defs as you regain power. I just do those manually, since I don't want them all every time anyway.