• 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 --->

AFK wizzy kiting (1 Viewer)

Cheesymac

Member
Joined
Apr 15, 2006
RedCents
10¢
any macros written specifically for wizards to snare kite and nuke...not a generic one but one just for that class.
 
There was one written for the plane of fire but it go nerfed when sony hardened some walls so that LoS became an issue. Also there is one over on the mq2 boards but it is a lower level one, i will go dig it up.
 
Here it is
Rich (BB code):
turbo
#Event resistsnare "Your target resisted the Bonds of Force spell#*#"
#Event resistroot "Your target resisted the Immobilize spell#*#"
#Event rootoff "Your Immobilize spell has worn off.#*#"
#include move.inc
#include spellcast.inc
#include lootmob.inc

Sub IntVars
/declare Spawned bool outer FALSE
/declare CurrentBox int outer
/declare Box1Y int outer -777
/declare Box1X int outer 724
/declare Box2Y int outer -921
/declare Box2X int outer 700
/declare Box3Y int outer -835
/declare Box3X int outer 535
/declare Box4Y int outer -688
/declare Box4X int outer 574
/declare SnareSpell string outer "Bonds of Force"
/declare RootSpell string outer "Immobilize"
/declare NukeSpell string outer "Conflagration"
/return

Sub Main

/call IntVars

/call LootFilterSetup

:MainLoop

/call GetReady

/call GetNPC

/call SnareIt

/call RootIt

/call NukeItLoop

/call LootIt

/call MoveHome

/call MedLoop

/goto :MainLoop


/return


Sub GetReady
:ManaLoop
/delay 5s
/echo Checking Mana
/if (${Me.PctMana} < 90) /goto :ManaLoop
/echo WE GOT MANA!
/return

Sub GetNPC
:NPCLoop
/keypress ESC
/keypress ESC
/keypress ESC
/keypress ESC
/target Watchman Grep
/delay 5s
/if (${Target.PctHPs}==0) {
   /echo Well, he aint up!
   /varset Spawned FALSE
   /delay 5s
   /goto :NPCLoop
   }

/echo We have ${Target.CleanName} as our target.
/return

Sub SnareIt

/call goto ${Box1Y} ${Box1X}
/varset CurrentBox 1
/delay 1s
/call Cast ${SnareSpell}
/doevents

/return


Sub RootIt
/if (${Target.Distance}<40) {
   /call NextBox
        }
/delay 1s
/call cast ${RootSpell}
/doevents
/return

Sub NukeItLoop

:NukeItLoop
   /if (${Target.Distance}<60) /call NextBox
   /delay 5s
   /doevents
   /call cast ${NukeSpell}
   /delay 1s
   /doevents
   /if (${Target.Distance}<60) /call NextBox
   /if (${Target.PctHPs}>0) /goto :NukeItLoop   
/return

Sub Lootit
/target Grep
/delay 1s
/call MoveToSpawn ${Target.ID} 5
/call LootMob
/return

Sub MoveHome
/call goto ${Box1Y} ${Box1X}
/varset CurrentBox 1
/return

Sub MedLoop
/keypress 9
/sit on
/return








Sub Event_resistsnare
   /echo RESISTED! SNARE!
   /call NextBox
   /delay 1s
   /call Cast ${SnareSpell}
   /doevents
   /return
/return

Sub Event_resistroot
   /echo RESISTED! ROOT!
   /call NextBox
   /delay 1s
   /call Cast ${RootSpell}
   /doevents
   /return
/return


Sub Event_rootoff
   /echo ROOT IS OFF!!!!!!!!
   /call NextBox
   /call cast ${RootSpell}
   /doevents
/return

Sub NextBox
   /if (${CurrentBox}==1) {
   /call goto ${Box2Y} ${Box2X}
   /varset CurrentBox 2
   /return
   }
   /if (${CurrentBox}==2) {
   /call goto ${Box3Y} ${Box3X}
   /varset CurrentBox 3
   /return
   }
   /if (${CurrentBox}==3) {
   /call goto ${Box4Y} ${Box4X}
   /varset CurrentBox 4
   /return
   }
   /if (${CurrentBox}==4) {
   /call goto ${Box1Y} ${Box1X}
   /varset CurrentBox 1
   /return
   }
/return

and the move.inc
Rich (BB code):
|=================================================  ==|
|- move.inc                                         |
|                                                   |
|Simple moving and object-avoidance routines        |
|                                                   |
|Originally by beatnik007 (Who credits Mckorr)      |
|                                                   |
|Revised and converted to MQ2Data by Terramantian   |
|=================================================  ==|


| Sub MoveToLoc                                     |
|---------------------------------------------------|
|This simply moves the player to within 10 units of |
|the requested location, while avoiding obstacles   |
|                                                   |
|This is beatnik007's original sub, with a few minor|
|changes and rewritten in MQ2Data format            |
|                                                   |
|SYNTAX: /call MoveToLoc Y X                        |


Sub goto(MoveToY, MoveToX)
    /echo Moving to Location: ${MoveToY}, ${MoveToX}.
    /echo Distance: ${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]}

    /declare running int local
    /declare distanceNow float local
    /declare distanceBefore float local
    /declare distanceModifier int local
    /varset running 0
    /declare distanceTimer timer 15
    /varset distanceBefore ${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]}
    /varset distanceModifier 1
   
    :moveToLocation

    /face nolook loc ${MoveToY},${MoveToX}

    /if (${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]}<10) {
        /keypress forward
        /return
    }
   
    /if (${distanceTimer}==0) {
        /if (${Me.Sneaking}) {
            /varset distanceModifier 2
        } else {
            /varset distanceModifier 1
        }

        /varset distanceNow ${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]}
        /if (${Math.Calc[${distanceBefore}-${distanceNow}]}<${Math.Calc[10/${distanceModifier}]}) {
      /call strafePastObstacle
        }
        /varset distanceBefore ${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]}
        /varset distanceTimer 15
    }

    /if (${running}==0) {
        /keypress forward
        /if (${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]}>10) {
            /varset running 1
            /keypress forward hold
        }
    } else {
        /if (${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]}<11) {
            /varset running 0
            /keypress forward
        }
    }
    /goto :moveToLocation
/return


| Sub MoveToSpawn                                   |
|---------------------------------------------------|
|This moves the player to within a provided distance|
|of the provided spawn, while avoiding obstacles    |
|                                                   |
|I "wrote" this, but as you can see, it's the same  |
|as MoveToLoc with a few variable replacements.     |
|                                                   |
|The second parameter, Distance, allows for the     |
|player to stop short of the target by a certain    |
|amount, to provide for different aggro radii, etc. |
|                                                   |
|SYNTAX: /call MoveToSpawn ID Distance              |

Sub MoveToSpawn(MoveToID, StopDistance)

    /if (!(${Defined[MoveToID]})||(${Spawn[MoveToID].ID})) {
        /echo Spawn ID not found or no ID provided. Aborting...
        /return
    }
    /if (!(${Defined[StopDistance]})) {
   /echo Stopping point not defined, using default distance of 70
        /declare StopDistance int local
        /varset StopDistance 70   
    }

    /echo Moving to Spawn: ${MoveToID} (${Spawn[${MoveToID}].CleanName}).
    /echo Current Location: ${Spawn[${MoveToID}].Y}, ${Spawn[${MoveToID}].X}
    /echo Current Distance: ${Spawn[${MoveToID}].Distance}

    /declare running int local
    /declare distanceNow float local
    /declare distanceBefore float local
    /declare distanceModifier int local
    /varset running 0
    /declare distanceTimer timer 15
    /varset distanceBefore ${Spawn[${MoveToID}].Distance}
    /varset distanceModifier 1
   
    :moveToSpawn

    /squelch /face fast nolook id ${MoveToID}

    /if (${Spawn[${MoveToID}].Distance}<${StopDistance}) {
        /keypress forward
        /return
    }
   
    /if (${distanceTimer}==0) {
        /if (${Me.Sneaking}) {
            /varset distanceModifier 2
        } else {
            /varset distanceModifier 1
        }

        /varset distanceNow ${Spawn[${MoveToID}].Distance}
        /if (${Math.Calc[${distanceBefore}-${distanceNow}]}<${Math.Calc[10/${distanceModifier}]}) {
      /call strafePastObstacle
        }
        /varset distanceBefore ${Spawn[${MoveToID}].Distance}
        /varset distanceTimer 15
    }

    /if (${running}==0) {
        /keypress forward
        /if (${Spawn[${MoveToID}].Distance}>=${StopDistance}) {
            /varset running 1
            /keypress forward hold
        }
    } else {
        /if (${Spawn[${MoveToID}].Distance}<${StopDistance}) {
            /varset running 0
            /keypress forward
        }
    }
    /goto :moveToSpawn
/return

| Only to be used by the previous functions - It's obvious what it does. |

sub strafePastObstacle
    /keypress forward
    /keypress back hold
    /delay 2
    /keypress back
    /if (${Math.Rand[99]}>50) {
        /keypress strafe_right hold
    } else {
        /keypress strafe_left hold
    }
    /delay 3
    /keypress strafe_right
    /keypress strafe_left
    /keypress forward hold
/return
 
AFK wizzy kiting

Users who are viewing this thread

Back
Top