View Full Version: Kegor's Rescue Script

Triterium Guild > Triggers & Scripts > Kegor's Rescue Script


Title: Kegor's Rescue Script
Description: ZMUD


Kegor - October 22, 2009 11:55 PM (GMT)
Finally got to do final testing and polish this off enough to be satisfied posting it. Lot of folks ask me how I rescue so fast, so here it is.

I am very pleased to say that I have eliminated 95% of uneccessary "looks". When a group member switches targets it won't send a look. If you bash, shieldpunch, kick or engage in any warrior skill with lag, it will timeout rescue until your lag clears. A couple of good looks have been added also. Most mobs entering the room will trigger a look for faster rescue, unless they fit the profile of pets (ghosts, elementals, spirits, etc).

Anyhow check it out. Very please with how it works.

Alias Breakdown:
ron - rescue trigs on
roff - rescue trigs off
raddgr - autoadd your rescues list and tank list (will automatically clear existing list)
radd - add a rescue manually
raddtank - add a tank manually
rclear - clear your rescue and tank lists
rdel - delete a rescue manually
rdeltank - delete a tank manually
rlist - displays tank and rescue lists
tc - looks at the group list to autorescue other tanks if you are > 50% and tank is < 50%

CODE
#CLASS {WARRIOR|RESCUE}
#ALIAS radd {#ADDITEM RESCUES %proper( %1);#SAY %ansi( 8)=%ansi( 7)=%ansi( 8)> %ansi( 14)%proper( %1) %ansi( 11)ADDED%ansi( 3) to Rescue List.}
#ALIAS rclear {#VAR RESCUES {};#VAR RESCUERS {};#SAY %ansi( 8)=%ansi( 7)=%ansi( 8)> %ansi( 3)Rescue List%ansi( 11) CLEARED!}
#ALIAS rdel {#DELITEM RESCUES %proper( %1);#SAY %ansi( 8)=%ansi( 7)=%ansi( 8)> %ansi( 14)%1 %ansi( 11)DELETED%ansi( 3) from Rescue List.}
#ALIAS rlist {#VAR GROUP {};#VAR TANKS {};#MATH GROUP %numitems( @RESCUERS)+%numitems( @RESCUES)+1;#MATH TANKS %numitems( @RESCUERS)+1;#IF (@GROUP > 1) {#SAY;#SAY %ansi( 8)=%ansi( 7)=%ansi( 8)> %ansi( 3)GROUP: %ansi( 7)@GROUP;#SAY};#IF (%numitems( @RESCUERS) > 0) {#SAY %ansi( 8)=%ansi( 7)=%ansi( 8)> %ansi( 3)TANKS: %ansi( 7)@TANKS;#SAY %ansi( 8)=%ansi( 7)=%ansi( 8)> %ansi( 11)@MYCHAR~|@RESCUERS;#SAY};#IF (%numitems( @RESCUES) > 0) {#SAY %ansi( 8)=%ansi( 7)=%ansi( 8)> %ansi( 3)RESCUES: %ansi( 7)%numitems( @RESCUES);#SAY %ansi( 8)=%ansi( 7)=%ansi( 8)> %ansi( 11)@RESCUES;#SAY};#IF (@GROUP = 1) {#SAY;#SAY %ansi( 8)=%ansi( 7)=%ansi( 8)> %ansi( 3)RESCUE LIST%ansi( 7) EMPTY;#SAY}}
#ALIAS roff {#T- RESCUE1;#T- RESCUE2;#T- RESCUE3;#T- RESCUE4;#T- RESCUE5;#T- RESCUE6;#VAR RESCUE {0};#SAY;#SAY;#SAY %ansi( 8)=%ansi( 7)=%ansi( 8)> %ansi( 3)RESCUES: %ansi( 7)OFF;#SAY}
#ALIAS ron {#T+ RESCUE1;#T+ RESCUE2;#T+ RESCUE3;#T+ RESCUE4;#VAR LOOK {0};#VAR RESCUE {1};#SAY;#SAY;#SAY %ansi( 8)=%ansi( 7)=%ansi( 8)> %ansi( 3)RESCUES: %ansi( 7)ON;#SAY}
#ALIAS raddtank {#ADDITEM RESCUERS %proper( %1);#SAY %ansi( 8)=%ansi( 7)=%ansi( 8)> %ansi( 14)%proper( %1) %ansi( 11)ADDED%ansi( 3) to Tank Rescues.}
#ALIAS rdeltank {#DELITEM RESCUERS %proper( %1);#SAY %ansi( 8)=%ansi( 7)=%ansi( 8)> %ansi( 14)%1 %ansi( 11)DELETED%ansi( 3) from Tank List.}
#ALIAS tc {#T+ RESCUE4;GROUP}
#ALIAS raddgr {#VAR WHO {};#VAR GROUP {};#VAR TANKS {};#VAR RESCUES {};#VAR RESCUERS {};#T- RESCUE1;#T+ RESCUE5;sc;who ing s}
#CLASS 0
#CLASS {WARRIOR|RESCUE|RESCUE1}
#TRIGGER {({@RESCUES}) {dodges|gasps from|in a mist of blood|is nearly slain|staggers from}} {RESCUE %1;#T- RESCUE1}
#TRIGGER {places * in the back of ({@RESCUES}), resulting in some strange noises and some blood.$} {RESCUE %1;#T- RESCUE1}
#TRIGGER {{, fighting|wounds|knocks|misses|a mirror image of|tried to backstab|tries to rescue|attacks|beat|beats|choke|chokes|touch|touches|hit|hits|slash|slashes|crush|crushes|whip|whips|pierce|pierces|smash|smashes|sting|stings|drain|drains|strike|strikes|pummel|pummels|pound|pounds|claw|claws|nip|nips|burn|burns|bite|bites} ({@RESCUES})} {#T- RESCUE1;RESCUE %1}
#TRIGGER {({@RESCUES}) TC:} {RESCUE %1;#T- RESCUE1} "" {nocr|prompt}
#TRIGGER {* realizes that ({@RESCUES}) is a jerk!$} {RESCUE %1;#T- RESCUE1}
#CLASS 0
#CLASS {WARRIOR|RESCUE|RESCUE3}
#TRIGGER {{Exits|You can't see a damn thing, you're blinded!|It is pitch black...}} {#T+ RESCUE2;#VAR LOOK {0}}
#TRIGGER {{l|lo|loo|look} {n|e|s|w|u|d}$} {#T- RESCUE1;#T+ RESCUE6}
#TRIGGER {{Your bash at|you topple over|In your haste to slam|You grit your|You lower your head|feeble headbutt|Your boots need|Your kick hits|You miss your|Your beautiful full|Your powerful shieldpunch|You slam your|with your clumsy shieldpunch|You failed to strike|You strike out wildly}*$} {#T- RESCUE1;#T- RESCUE2;#WAIT 7800;#T+ RESCUE1;#T+ RESCUE2}
#TRIGGER {But nobody is fighting {him|her|it}?$} {#T+ RESCUE1;#T+ RESCUE2}
#TRIGGER {Who do you want to rescue?$} {#T+ RESCUE1;#T+ RESCUE2}
#TRIGGER {{P: rcl|P: knl|P: sit} ~>} {#T- RESCUE1;#T- RESCUE2} "" {nocr|prompt}
#TRIGGER {You {clamber|rise|manage to unsteadily get} to your feet.$} {#T+ RESCUE1;#T+ RESCUE2}
#TRIGGER {scan$} {#T- RESCUE1;#T+ RESCUE6}
#TRIGGER {{You fail the rescue.|Banzai! To the rescue...}$} {#T- RESCUE1;#T- RESCUE2;#WAIT 3900;#T+ RESCUE1;#IF (@LOOK = 0) {LOOK}}
#TRIGGER {{Score information for |Character attributes for }&MYCHAR$} {}
#CLASS 0
#CLASS {WARRIOR|RESCUE|RESCUE2}
#TRIGGER {* is NOT pleased at being suddenly summoned*$} {#T+ RESCUE1;#T- RESCUE2;LOOK;#VAR LOOK {1}}
#TRIGGER {&SWITCH switches targets..$} {#IF (%ismember( @SWITCH, @RESCUES) = 0) {#IF (%ismember( @SWITCH, @RESCUERS) = 0) {#T+ RESCUE1;#T- RESCUE2;LOOK;#VAR LOOK {1}}}}
#TRIGGER {%w &%wPET %w * {from|in|enters|in from}{.| the north.| the east.| the south.| the west.| above.| below.}$} {#T+ RESCUE1;#T- RESCUE2;#IF (@PET =~ "{rides|air|earth|fire|ghast|ghost|ghoul|shade|shadow|skeletal|skeleton|spectre|spirit|treant|water|wight|wraith|zombie}") {#T+ RESCUE6} {LOOK};#VAR LOOK {1}}
#TRIGGER {%w %w {from|in|enters|in from}{.| the north.| the east.| the south.| the west.| above.| below.}$} {#T- RESCUE2;#T+ RESCUE6}
#CLASS 0
#CLASS {WARRIOR|RESCUE|RESCUE5}
#TRIGGER {^Record number of players on this boot:  %d.$} {#T- RESCUE5;#DELITEM TANKS @MYCHAR;#SAY @TANKS;#FORALL @TANKS {raddtank %i};#SAY %ansi( 8)=%ansi( 7)=%ansi( 8)>;#FORALL @GROUP {radd %i};#IF (@RESCUE = 1) {#T+ RESCUE1};rlist}
#TRIGGER {^~[* {Cle|Sha|Enc|Bat|Bar|Ill|Ele|Rog|Psi|Dru|Inv|Nec|Lic|Dir|Ran|Anon}~] &%wWHO *~(*~)$} {#ADDITEM GROUP @WHO}
#TRIGGER {^~[* {War|Pal|A-P}~] &%wTANK *~(*~)$} {#ADDITEM TANKS @TANK}
#TRIGGER {^~[ Anon ~] &%wWHO *~(*~)$} {#ADDITEM GROUP @WHO}
#CLASS 0
#CLASS {WARRIOR|RESCUE|RESCUE4}
#TRIGGER {move%s(%d)/(%d)%shit%s-%s({@RESCUERS})} {#VAR PCT {};#MATH PCT %float( %1)/%float( %2);#VAR PCT %format( 2, @PCT);#VAR PCT %replace( @PCT, "0.", "");#IF (@PCT = 1.00) {@PCT = 100};#IF (%isfloat( @PCT) > 0) {@PCT = 100};#IF (@RESCUERS != %null & @COMBAT != 0) {#IF (@MYPCT > 50 & @PCT < 50) {RESCUE %3}}}
#TRIGGER {~< (%d)h/(%d)H*%dv/%dV*~>$} {#VAR MYPCT {};#MATH MYPCT %float( %1)/%float( %2);#VAR MYPCT %format( 2, @MYPCT);#VAR MYPCT %replace( @MYPCT, "0.", "");#IF (@MYPCT = 1.00) {@MYPCT = 100};#IF (%isfloat( @MYPCT) > 0) {@MYPCT = 100}} "" {prompt}
#TRIGGER {Group information for} {#T+ RESCUE6}
#CLASS 0
#CLASS {WARRIOR|RESCUE|RESCUE6}
#TRIGGER {%s%dv/%dV >$} {#T- RESCUE4;#T- RESCUE6;#IF (@RESCUE = 1) {#T+ RESCUE1;#T+ RESCUE2}} "" {prompt}
#CLASS 0


NOTE: The trigger in the RESCUE1 class with the pattern "({@RESCUES}) TC:" needs to be set in the Options Tab --> Trigger On --> check Prompt instead of Newline.

Rew - July 12, 2011 11:06 PM (GMT)
I'm getting a bad command line after I do the raddgr...

says DSPRES and then gives the pardon? error...

any ideas on what its not doing or how to fix it.

looks like its the rescue list alias that is bad.

Kegor - July 15, 2011 11:03 PM (GMT)
I would just say check the code from this post against the code you got and check the Zmud parsing settings that is pinned at the top of this forum.

If it's none of those things.. no idea.

Flib - July 27, 2011 01:57 AM (GMT)
works well. thanks.

Gormal - January 6, 2013 09:39 AM (GMT)
Nevermind, I figured it out!




* Hosted for free by InvisionFree