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

Help with a berserker autopull macro. (1 Viewer)

Cirian

New member
Joined
Jan 23, 2007
RedCents
Hey there,

I am currently working on editing a ranger autopull macro from here:
http://www.macroquest2.com/phpBB2/viewtopic.php?t=6970

I am trying to make it work with a berserker and instead of casting ensnare it should rage volley.

This is how I have it so far:

Rich (BB code):
|  Rangerautopull.mac   v 0.1 alpha

| Writen by Omper

#event GotHIT "#*#hits YOU for#*#"
#event GotHIT "#*#slashes YOU for#*#"
#event GotHIT "#*#crushes YOU for#*#"
#event GotHIT "#*#bashes YOU for#*#"
#event GotHIT "#*#kicks YOU for#*#"
#event GotHIT "#*#smashes YOU for#*#"
#event GotHIT "#*#mauls YOU for#*#"
#event GotHIT "#*#gores YOU for#*#"
#event GotHIT "#*#pierces YOU for#*#"
#event GotHIT "#*#kicks YOU for#*#"
#event GotHIT "#*#bashes YOU for#*#" 

Sub Main

/declare AnchorX float outer
/declare AnchorY float outer
/declare fXLoc float outer 0.0
/declare fYLoc float outer 0.0
/declare Agro outer FALSE

/varset AnchorX ${Me.X}
/varset AnchorY ${Me.Y}

/echo Rangerautopull.mac
:start
   /doevents
   /delay 1s
   /if (${Agro}) /call combat 
   /if (!${Agro}) /cleanup
   /call MoveToAnchor
   /doevents
   /delay 10           
   /if (!${Agro}) /call Tarnpc
/goto  :start 
/return

Sub Tarnpc   

   /target npc radius 300 los
   /delay 1s
   /disc "Rage Volley"

/return

Sub combat
   /attack on
   :Loop
      /doevents
      /if (${Target.Distance}>17) {
            /keypress forward   
            }
            /if (${Target.Distance}<10) {
            /keypress back hold
            /timed 1 /keypress back
            }
            /face nolook fast
            /delay 0
            /if (!${Target.ID}) {
            /varset Agro FALSE
            /goto :End
            } else {
         /goto :Loop
         }

:End
/return

Sub Event_GotHIT
/varset Agro TRUE   
   
/return

Sub MoveToAnchor
    /if (${Math.Distance[${AnchorY},${AnchorX}]}<=12) /return
    /declare iCount int local

    /varset fXLoc ${Me.X}
    /varset fYLoc ${Me.Y}
    /varset iCount 0

    /echo Moving to Anchor at Loc: ${AnchorY}, ${AnchorX}.

:AnchorMoveLoop 
    /delay 1
    /doevents
    /face nolook loc ${AnchorY},${AnchorX}
   
    /if (${Math.Distance[${AnchorY},${AnchorX}]}>12) {
       /keypress forward hold
   } else {
       /keypress forward
       /return
    }

    /if (${iCount}>2) {
        /call Detectobst
        /face nolook loc ${AnchorY},${AnchorX}
        /varset iCount 0
    }
   
    /varcalc iCount ${iCount}+1
    /goto :AnchorMoveLoop
/return

Sub Detectobst
    /delay 2
    /if (${fXLoc}==${Me.X}) /if (${fYLoc}==${Me.Y}) /call Hitobst
    /varset fXLoc ${Me.X}
    /varset fYLoc ${Me.Y}
/return

Sub Hitobst
    /keypress forward
    /keypress back hold
   
    /if (${Math.Rand[2]}) {   
        /delay 2s   
        /keypress back
        /keypress right hold
        /delay 8
        /keypress right
       
        /delay 2s
        /keypress back
        /keypress left hold
        /delay 8
        /keypress left
    }
    /delay 10
    /keypress forward hold
/return

My problem now is it is not trying to rage volley, although it does aquire the proper target now. It will not rage volley, and it keeps losing and reaquiring the target, and assuming I manually rage volley it wont fight...
hehe i seem pretty far off at the moment.

Thank you very much.
 
As an alternative I have been trying to edit this little piece to pull using rage volley rather than running up to the mob...

** Removed unnecessary unused code to save room **

But i can get it to fight properly, and aquire a target properly, but I cant make it not tag the mob melee..
 
Last edited:
Ya, i put in that larger range to see whether I could target mobs properly,but the actual targets it is aquiring are within the range of Rage Volley which is I believe 150
 
If you have VIP access I wrote a macro a while back

http://macroquest2.com/phpBB2/viewtopic.php?t=11193

Rich (BB code):
Sub Pull
[...Snip Some...]
   :MovementLoopPull
   /if (${Int[${Target.Distance}]}<20) {
       /delay 2s
       /return
   }
   /varset RV_DAMNIT 0
   /doevents
   /if ((!${RV_Fighting})&&(!${RV_TargetDead})&&(${Target.PctHPs}<96)&&(${Target.ID})) {
      /echo Mob not at full health, picking another...
      /varset RV_InvalidTargetID ${Target.ID}
      /varset RV_HasTarget 0
      /call ResetSub
      /return
   }

   /if (${Target.ID}) /face fast

   /if (${Int[${Target.Distance}]}>125) /keypress forward hold

   /if ((${Int[${Target.Distance}]}<125) && (${Target.LineOfSight})) {
      /keypress forward
      /attack off
      /ranged
      /gsay INC %T
      /doevents
      /delay 1s
      /doevents
      /if (${RV_DAMNIT}) /goto :MovementLoopPull
      /return
   }
[...Snip Some...]

The part in there that you need to look at is this inside the movement loop:

/if ((${Int[${Target.Distance}]}<125) && (${Target.LineOfSight})) {

This adds a spot where if the distance is less then my /ranged distance and I have line of sight it executes everything below it and /returns out of that sub.

The next thing up should be returning to your anchor.

The thing about pulling with ranged is the mob will be some distance away from you when you do get to the anchor.

So you have to fix that by either adding a hard coded time wait or another distance check for when the mob comes to camp.

a loop with a timer to escape out of the loop if the mob doesn't come after so long.

If you don't take that into account you will get back to your camp then bound back out from your camp to get within melee distance of the mob.

Also just a hint from experience, don't use the ACTUAL range of the ability, use actual range-25 or so. This will save you some heartache when it actually stops at ACTUALDISTANCE and the mob is moving or MQ hickup'ed and got the distance off by a bit cause of lag.

Hope that helps.
 
Thank you very much for your help. I am just reading all the different macros and trying to learn how to do them for myself. I have actually only been doing this for about 1 day :)

For this time I have decided to make it incredibly simple. I actually am making this macro for a specific purpose, I will elaborate on it later, but in this case I am in plane of fire near tables in the side area beyond the arches where you are surround in a fairly small area with mobs who are all single pulls, and I have a cleric and another dps who I have a working macro for that autoassists my main assist and melees it.

I want to have my main assist stand right in the middle of the area and basically just pull from around me. I would prefer to use Rage Volley rather than ranged attack so I do not have to worry about running out of ammo.

I am thinking of having a delay of maybe 40 seconds between each fight just to make sure I never run out of mana and endurance. I have started a very simple macro and am trying to get it to work.

** Removed unnecessary unused code to save room **

The way I can imagine this working is if I have an npc targetted and he is within melee range I will fight him. If he is not in melee range I will volley him until he IS in melee range. If I do not have an npc targetted (e.g. a corpse)
I will wait for 45 seconds and target another NPC to pull.

My problem however is that it does not use Rage Volley at all. I have never been able to get a macro to use Rage Volley successfully. It is a disc with a 12 second timer.
 
Last edited:
As for rage volley here is a little hint: Make a hotkey for rage volley

/if (${Me.CombatAbilityReady[Rage Volley]}) /keypress 0

(zero being the key for rage volley)

I cheated like that in all my macro's.

/doability combatabilityname

Might work as well, but I can't test it right now.

Also in your main sub you are going to need a loop unless you want to call the macro each pull and have it end afterwards.
 
Thank you very much with the help. I have got it working as far as I can tell at this point in time.

Very very noobish macro but at this point in time it works at least :)

Rich (BB code):
Sub Main


   /if (${Target.Type.Equal[NPC]}) /call Attack

   /if (!${Target.Type.Equal[NPC]}) /call Pull

/return


Sub Attack

/face

/Attack On
/doability Frenzy
/disc Rage Volley

/delay 50


/call Main




Sub Pull
/sit
/delay 450
/sit

/target npc los radius 150

/disc Rage Volley

/call Main


What I do think that I need help on is, I need to get a leash system where my berserker will go back to his leash spot after a fight because I find myself pushed around all over the place, and with a pulling system this simplistic where I am is very important.
 
Help with a berserker autopull macro.

Users who are viewing this thread

Back
Top