• You've discovered RedGuides 📕 an EverQuest multi-boxing community 🛡️🧙🗡️. We want you to play several EQ characters at once, come join us and say hello! 👋
  • IS THIS SITE UGLY? Change the look. To dismiss this notice, click the X --->

Fairy MM Fully Automated (1 Viewer)

C

Ccomp5950

Nerfed...

hi hi I make this message long enough to post
 
Last edited:
Spellcast.inc

Rich (BB code):
| 
| SpellCast.inc 
| 
| Last Modified: 7/29/2005 
| This will cast a spell reliably for you... 
| 
| Usage: 
|       /call Cast "spellname|itemname|AA#|AAskillname" [item|activate|gem#] [nocheck|dismount|nodismount] 
| 
| If no dismount or nodismount is provided it defaults to nodismount. 
| 
| This would essentially: /cast "Death Peace" 
| example: /call Cast "Death Peace" 
| 
| This would essentially: Check for the spell in your spell slots, if not there mem it to spell 
|                         gem slot 7 and then /cast "Death Peace" 
| example: /call Cast "Death Peace" gem7 
| 
| This would essentially: /cast item "White Rope Bridle" 
| example: /call Cast "White Rope Bridle" item 
| 
| This would essentially: /alt activate 169 
| example: /call Cast "169" activate 
|  or... 
| example: /call Cast "Divine Arbitration" activate 
| 
| This would dismount if your target was lost or dies mid-cast, cast Burn and mem it to spell 
| slot 3 if it wasn't already memmed: 
| example: /call Cast "Burn" gem3 dismount 
| 
| This would not dismount but would move you back and forth if your target was lost or dies mid-cast, cast Burn and mem 
| it to spell slot 3 if it wasn't already memmed: 
| example: /call Cast "Burn" gem3 nodismount 
| 
| 'nocheck' is the default for the "loss of target/target dying" value.  If nocheck is specified (Or nothing was specified) 
| no target checking will be performed and spellcast.inc should act like the spellcast.inc of the past. 
| 
| It will return the following values: 
| CAST_SUCCESS 
| CAST_UNKNOWNSPELL 
| CAST_OUTOFMANA 
| CAST_OUTOFRANGE 
| CAST_CANNOTSEE 
| CAST_STUNNED 
| CAST_RESISTED 
| CAST_TOOK2LONG 
| CAST_ABILITYNOTREADY 
| CAST_IMMUNESLOW 
| CAST_LOSTTARGET 
| 
| New Vars Modification 
| Plazmic's no globals needed version 
| 
| Oct 09, 2003 - Updated to work with new vars and $char(casting) -gf 
| Oct 11, 2003 - switched some logic, removed defines -gf 
| Oct 15, 2003 - Item support added by -EqMule 
| XXX xx, xxxx - Modified to add automeming of spells. -Goofmester1 
| Dec 26, 2003 - fd fail 1 added -m0nk 
| Jan 01, 2004 - timeout(5s) added to stop "dead-time" -m0nk 
| Jan 01, 2004 - switchd fdfail to a standing check. -m0nk 
| Jan 01, 2004 - added silence checking as a stun check -m0nk 
| Feb 17, 2004 - added AA activate capabilities -ml2517 
| Apr 11, 2004 - Updated for new Parm system -ml2517 
| Apr 12, 2004 - Will spit out a different message on immune to slows. -ml2517 
| Apr 16, 2004 - Removed /sendkeys and replaced with /keypress. -ml2517 
| Apr 17, 2004 - Various code enhancements. -Wassup 
| Apr 20, 2004 - Updated all of the /if's to have parenthesis. -ml2517 
| Apr 25, 2004 - Updated to new variable system. -ml2517 
| Apr 29, 2004 - Fixed Item problem -ml2517 
| Apr 29, 2004 - Changed the alt ability to use AltAbilityReady instead of an event. -ml2517 
| May 02, 2004 - Added the ability to specify a gem slot to mem spells to. -ml2517 
| May 10, 2004 - Updated for new event system. 
| May 12, 2004 - Added suggestions for loss of target and stun handling change. -ml2517 
| May 13, 2004 - Activate now accepts AA skill by name or number. -ml2517 
| May 14, 2004 - Added the nocheck value, it is the default. This bypasses the target checking code. -ml2517 
| Jul 29, 2005 - Added some delay and hopefully fixed bugged spellbook -fearless
| 

#event Fizzle "#*#Your spell fizzles#*#" 
#event Interrupt "#*#Your casting has been interrupted#*#" 
#event Interrupt "#*#Your spell is interrupted.#*#" 
#event Recover "#*#You haven't recovered yet...#*#" 
#event Recover "#*#Spell recovery time not yet met.#*#" 
#event Resisted "#*#Your target resisted the #*#" 
#event OutOfMana "#*#Insufficient Mana to cast this spell!#*#" 
#event OutOfRange "#*#Your target is out of range, get closer!#*#" 
#event NoLOS "#*#You cannot see your target.#*#" 
#event Stunned "#*#You cannot cast while stunned#*#" 
#event Stunned "#*#You *CANNOT* cast spells, you have been silenced!#*#" 
#event Standing "#*#You must be standing to cast a spell#*#" 
#event Standing "#*#has fallen to the ground.#*#" 
#event Collapse "#*#Your gate is too unstable, and collapses.#*#" 
#event ImmuneSlow "#*#Your target is immune to changes in its attack speed.#*#" 


Sub Cast(SpellName,ItemFlag,DismountFlag) 
   /declare HaveTarget int local 0 
   /declare CastBarTime timer local 
   /declare CastCurrLocY float local 0 
   /declare CastCurrLocX float local 0 
   /varset CastCurrLocY ${Me.Y} 
   /varset CastCurrLocX ${Me.X} 
   /if (${Target.ID}>0) /varset HaveTarget 1 
   /if (!${Defined[CastGiveUpTime]}) /declare CastGiveUpTime timer local 
   /if (!${Defined[ItemFlag]}) /declare ItemFlag string local 
   /if (!${Defined[DismountFlag]}) { 
       /declare DismountFlag string local nocheck 
       /if (${ItemFlag.Find["dismount"]}) /varset DismountFlag ${ItemFlag} 
   } 
   /if (!${Me.Standing} && !${Me.Mount.ID}>0) /stand 
   /if (${Me.Moving}) { 
       /keypress forward 
       /keypress back 
       /delay 8 
   } else { 
       /delay 4 
   } 
   /if (${ItemFlag.Equal["Item"]} || ${ItemFlag.Equal["Activate"]}) /goto :StartCast 

   /if (!${Me.Gem["${SpellName}"]}) { 
       /if (${ItemFlag.Find[gem]}) { 
           /if (${Int[${ItemFlag.Right[1]}]}>0 && ${Int[${ItemFlag.Right[1]}]}<9) { 
               /memspell ${ItemFlag.Right[1]} "${SpellName}" 
               /delay 5s ${Me.Gem["${SpellName}"]}
               /if ( ${Window[SpellBookWnd].Open} ) /timed 20 /stand
           } else { 
               /goto :GenericMem 
           } 
       } else {        
           :GenericMem 
           /memspell 5 "${SpellName}" 
           /delay 5s ${Me.Gem["${SpellName}"]}
           /if ( ${Window[SpellBookWnd].Open} ) /timed 20 /stand
       } 

   } 
   :StartCast 
      /varset CastGiveUpTime 15s 
   :CastNow 
      /if (${ItemFlag.Equal["Item"]}) { 
         /call ClearReturnValue 
         /cast item "${SpellName}" 
      } else /if (${ItemFlag.Equal["Activate"]}) { 
         /call ClearReturnValue 
         /if (!${Me.AltAbilityReady[${SpellName}]}) /return CAST_ABILITYNOTREADY 
         /alt activate ${Me.AltAbility[${SpellName}].ID} 
         /varset CastBarTime ${Me.Casting.CastTime} 
      } else { 
         /if (!${Me.Gem["${SpellName}"]}) /return CAST_UNKNOWNSPELL 
         /call ClearReturnValue 
         /if (!${Me.SpellReady["${SpellName}"]}) { 
            /if (${CastGiveUpTime}==0) /return CAST_TOOK2LONG 
            /delay 1 
            /goto :CastNow 
         } 
         /cast "${SpellName}" 
         /varset CastBarTime ${Math.Calc[${Me.Casting.CastTime}*10]} 
      } 
   :WaitCast 
      /if (${Me.Casting.ID}) { 
         /if ((!${Target.ID}>0 || ${Target.Type.Equal[CORPSE]}) && !${DismountFlag.Find[nocheck]} && ${HaveTarget}==1) { 
             /if (${Me.Mount.ID}>0) { 
                 /if (${DismountFlag.Equal[dismount]}) { 
                     /dismount 
                 } else { 
                     /if (!${ItemFlag.Equal["Item"]}) { 
                         /if (${CastBarTime}<7) { 
                             :Interrupt 
                             /keypress FORWARD hold 
                             /delay 6 
                             /keypress FORWARD 
                             /keypress BACK hold 
                             /delay 8 
                             /keypress BACK 
                         } else { 
                             :HoldForSpell 
                             /delay 1 
                             /if (${CastBarTime}<7) /goto :Interrupt 
                             /goto :HoldForSpell 
                         } 
                     } else { 
                         /keypress FORWARD hold 
                         :Forward 
                         /delay 1 
                         /if (${Math.Distance[${CastCurrLocY},${CastCurrLocX}]}<6) /goto :Forward 
                         /keypress FORWARD 
                         /keypress BACK hold 
                         :Backward 
                         /delay 1 
                         /if (${Math.Distance[${CastCurrLocY},${CastCurrLocX}]}>4) /goto :Backward 
                         /keypress BACK 
                         /if (!${Me.Casting.ID}>0) /goto :DuckTime 
                     } 
                 } 
             } 
             :DuckTime 
             /keypress FORWARD 
             /keypress BACK 
             /if (!${Me.Ducking}) /keypress DUCK 
             /delay 1 
             /if (${Me.Ducking}) /keypress DUCK 
             /return CAST_LOSTTARGET 
         } 
         /delay 1 
         /goto :WaitCast 
      } 
   /delay 1 
   /doevents Fizzle 
   /doevents Interrupt 
   /doevents Interrupt 
   /doevents Recover 
   /doevents Standing 
   /doevents OutOfRange 
   /doevents OutOfMana 
   /doevents NoLOS 
   /doevents Resisted 
   /doevents ImmuneSlow 
   /doevents Stunned 
   /doevents Collapse 
   /if (${Macro.Return.Equal["CAST_RESTART"]}) /goto :StartCast 
   /if (!${Macro.Return.Equal["NULL"]}) /return ${Macro.Return} 
/return CAST_SUCCESS 

Sub ClearReturnValue 
/return NULL 

Sub Event_Fizzle 
/return CAST_RESTART 

Sub Event_Interrupt 
/return CAST_RESTART 

Sub Event_Recover 
   /delay 5 
/return CAST_RESTART 

Sub Event_Standing 
   /stand 
/return CAST_RESTART 

Sub Event_Collapse 
/return CAST_RESTART 

Sub Event_OutOfMana 
/return CAST_OUTOFMANA 

Sub Event_OutOfRange 
/return CAST_OUTOFRANGE 

Sub Event_NoLOS 
/return CAST_CANNOTSEE 

Sub Event_Stunned 
   /delay 2s !${Me.Stunned} 
/return CAST_RESTART 

Sub Event_Resisted 
/return CAST_RESISTED 

Sub Event_ImmuneSlow 
/return CAST_IMMUNESLOW
 
Nerfed..........................................................
 
Last edited:
NERFED.....................................................................
 
Last edited:
Very nice work Ccomp9590. Is there anyway you could add a check to see if the spell got resisted, and if so, warp back and cast again when it's clear instead of waiting the 45 seconds like normal?

In nekmm.mac, you might want to change
Rich (BB code):
Sub Event_Invite(Junk,string Nameb)
/invite ${Nameb}
/taskadd ${Nameb}
/pause 1s
/return
to
Rich (BB code):
Sub Event_Invite(Junk,string Nameb)
/invite ${Nameb}
/taskadd ${Nameb}
/delay 1s
/return
or else you will get a "DoCommand - Couldn't parse '/pause 1s'". That error doesn't end the macro or anything, just might confuse some people.
 
At first, my character would warp outside the walls of the area and couldn't melee the chest, so I moved the warp spot closer to the chest (within melee range) and now I'm having problems with the witch lamps killing me while I try to kill the chest. Anyone else having the same issues?

Edit: Alright, found a way around my problems, will post my changes in case anyone else encountered this. I changed the /warp loc for melee'ing the chest to -216.00 -419.17 -62.05 instead of -423 -217 -62. I also changed the sub warper to include a /fade and 20 second delay. That way it always cleared aggro before returning to melee.
 
Last edited:
/rwarp Loc order isn't the same as my warp order. Mine is X Y Z, I think /Rwarp is Y X Z (same as /loc order)

/shrug
 
Very nice work Ccomp9590. Is there anyway you could add a check to see if the spell got resisted, and if so, warp back and cast again when it's clear instead of waiting the 45 seconds like normal?

No point, the macro still beats the lockout timer without the resist check.

I started to put that in but realized it was pointless.
 
Very nice work, but you should include a disclaimer of some kind I would think.

If you care about your accounts, I may hold off on this one for now. I know the GM's are watching the MM's closely. I've seen one or two at the EC MM once or twice in the last week.
 
......

That's why there is no open warping except inside the instance.


Disclamour: 1.) I can't spell for shit 2.) Wear your tin foil hat (Not included) while running these macros that I've been running for the past 2 weeks no ban on any of my accounts.

;)
 
I think people really have a false sense of security in an instanced zone.

The only reason why I suggested the disclaimer is because of the numerous warps.

I would think over a week, you'd have quite a few showing up in the log file which would be rather suspicious. ( If there IS in fact the "magic ban log")

Just a heads up. Excellent work though.
 
trmptbuddy said:
I also changed the sub warper to include a /fade and 20 second delay. That way it always cleared aggro before returning to melee.

Set the warp in Sub Warper to the wall like I have it and it will work.

The whisps lose agro once you jump on the wall and have autoattack off.

Get the emote: The Which Lamp has for some reason lost interest in you and gone back to it's part of the woods.

Remeber my warp is in <X> <Y> <Z> Format. Most other's warps are setup in <Y> <X> <Z> (in accordance with the order /loc shows up)
 
.......................

Don't warp IN the wall...Warp like you ran ON the wall.

Like I have it setup to do

The YXZ loc is

Rich (BB code):
       <y>  <x> <z>
/warp -234 -423 -43


Don't fade don't warp anywhere else just add that warp command to sub warper and you win.
 
Last edited:
got it working now , only problem im having now is with looting, When i go to loot it comes up "Do you want to loot this no drop item" then flashes back and forward on that screen.
 
....

Add

Rich (BB code):
/Lootn Never

to the beginning of the macro
 
Thanks , about to go through mission again , lets see if it works. Works all way through mission except that , need to load up AAs myself and get mission/zone in myself though but thats probably just something im doing wrong
 
Anyone who can get this completely working with Rwarp ( I can get the mission working once i loaded AAs and got instance and then started macro ) , that also leaves and gets new missions and goes to the dark spirit itself ? Could they explain how they get it to work , im just dumb i guess :)
 
Next time you load your AA's yourself...click on the "SAVE" button in the AA window...

To get him to get the mission you have to run my "Setpoint.mac" which I included in my third post.

Please read the first 4 postings...
 
Acidon said:
LOL.. tin foil hats ftfw. that always cracks me up. :)


We have a great fall and winter line up of tin foil hats, you can see one of our examples here at Tin foil hats R us

just look at these satisfied customers!!!!
2002-01-26-a2n-mikepikuldeflectorbeanie.jpg


tronik_06.jpg


tronik_08.jpg

if you order now we'll throw in a can of "GM Begone" free of charge.
 
Yes it should remove all in your group

In the "Reset" sub that is what this portion is:

Rich (BB code):
   /for g 0 to ${Group.Members}
   /varcalc g2 ${Group.Members}-${g}
   /taskremove ${Group.Member[${g2}]}
   /next g
 
the pathing to spirit , how does it work? As the spirit is not always in the same place , i know you can hail lock it with another char but what if i dont have the ability to do that?
 
Spunge, if you're unable to hail lock the spirit, you could warp to it but you might not like that idea. Personally, I do the mission on a crap account and just warp straight to the spirit, get mission, and go from there... You can either edit it to do it or ask me and I'll post what I'm using with warp.
 
still cant get this to work , Can anyone send me a working macro? Even if it warps to get the mission. Id like to farm some xp whiel i sleep before this gets nerfed (if it does) tomorrow
 
How exactly has this been nerfed? From what I can tell, the mission remains unchanged. I still solo it from time to time using the hiderun docrack.

Speaking of which, I would like to start learning how to make a macro that will automatically walk you to a certain spot. I figured it would be damn useful to have a Fairy MM macro that does not use warp. I also need to figure out how to add distance checking so you can make sure that the wisps/rats are at least X distance away before you attempt to cast Fairy Fire/Melee the chest.
 
For rat/fairy ${Spawn[npc radius whatever].ID} should lead you in right direction. For walking use advpath posted some where else on here and learn how to record/play functions. For nerf I think it's the "Hail locking" people have been petitioning others that run this and leave a toon hailing the spirit.
 
Thanks for the info, Tone.

As for hail locking, I wonder if there's a way you could periodically do /tasktimer once you're out of the mission and parse the text. If it shows that you're not locked out of that mission, it'll do the routine to go get the mission; else do nothing.
 
Since MQ2Fairy has been posted and you no longer have to hail lock the spirit I will be posting the reworked macro into the Strat section.

Going to do a couple run through's for anamolies first though.
 
Fairy MM Fully Automated

Users who are viewing this thread

Back
Top