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

Trying to re-work this macro... (1 Viewer)

Joined
Jun 6, 2006
RedCents
170¢
Hello,

I am terribly out of practice on making macro’s and I am stumped. I wanted a macro to level my ranger up – basically if the ranger had lots of arrows at any level, or EQ (eventually) and a bow…this would work. I tried changing the macro from the old bard Fhalls macro to this ranger macro. Basically it starts out in PoK or whatever, goes to get the mission all perfectly, goes to the mission and gets inside…makes sure it has haste on from potion belt and eagle eye. Warps to its first waypoint, targets a rat, casts entrap…gets hit a couple times…warps to the 2nd location, and then restarts the macro.

I have looked at it and played with it and my knowledge of macro’s just can’t complete it. Any help is more than welcome and feel free to gank code for your necro/bard macro heh.

Rich (BB code):
________________________________________________________________________
| RangerFhalls.mac by Seariz
| and other people that have long since left the coding world by now...
| and I wish they would come back...so they could help me fix this...
| ...the end...
|
|


#include Spell_Routines.inc

#event slainby      "You have been slain#*#"
#event zoned      "You have entered#*#"
#event kill         "You have slain#*#"
#event Bitten      "bites YOU for#*#"

Sub Main
/declare remains int outer
/declare endtimervar int outer
/declare TimeCounter int outer
/declare LastEXP int outer
/declare LastAA int outer
/declare NakedHP int outer
/declare SafeExp int outer
/declare mouserez int outer
/declare leave int outer
/declare spot bool outer
/declare zonedin bool outer
/declare counter int outer
/declare LootTotal int outer
/declare LootSlot int outer
/declare healthy bool outer
/varset healthy TRUE
/varset spot TRUE
/varset LastEXP ${Me.Exp}
/varset LastAA ${Me.AAExp}


/varset endtimervar 25
/varset leave 0
/varset mouserez 1
/varset SafeExp 20
/varset NakedHP 2000

/if (${endtimervar}!=25) {
   /if (${Time.Hour}<10) {
      /if (${endtimervar}<=10) {
      /echo Current hour is 0${Time.Hour}00, end timer is set for 0${endtimervar}00 hours.
      } else {
      /echo Current hour is 0${ Time.Hour}00, end timer is set for ${endtimervar}00 hours.
      }
   }
   /if (${Time.Hour}>9) {
       /if (${endtimervar}<10) {  
      /echo Current hour is ${Time.Hour}00, end timer is set for 0${endtimervar}00 hours.
      } else {
      /echo Current hour is ${Time.Hour}00, end timer is set for ${endtimervar}00 hours.
      }
   }
}
/call restart
:wait
/if (${Target.Distance.Int} <= 70) { 
     /if (${spot}) { 
        /warp loc -598.04 205.61 4 
        /face fast heading 270 
        /varset spot FALSE 
        /keypress left 
        /varset counter 0
     } else if (${Target.Distance.Int} <= 100)  {
        /warp loc -598.04 -57.69 4 
        /face fast heading 90 
        /varset spot TRUE 
        /keypress left 
        /varset counter 0
     }
}


/if (${Me.PctHPs} < 50) {
   /warp loc -834 74 -11
   /echo Run away! Run away!
   /gate
   /call zoning
   /delay 1m
   /mac RangerFhalls
   }

/if (${Me.PctHPs} < 70 && ${healthy}) {
   /potionbelt Activate 2
   /varset healthy FALSE
   /popup Heal Cast Activated
   }
/if (${Me.PctHPs} > 85 && ${healthy}==FALSE) {
   /autofire on
   /varset healthy TRUE
   /popup Heal Cast De-Activated
   }

/doevents
/if (!${Target.ID}) /call restart
/if (${ Zone.ID} != 998) /call restart
/if (${Spawn[gm].ID}) /call GM
/if (${TimeCounter}==${endtimervar}) {
   /gate
   /call zoning
   /camp
   }

/goto :wait
/end
/return


| SUBS- NoN event driven

Sub restart
/varset counter 0
/Echo Restart Activated.
/if (${Zone.ID}==203) /goto :Tranq
/if (${Zone.ID}==202) /goto :Know
/if (${Zone.ID}==30) /goto :Everf
/if (${Zone.ID}==182) /goto :Nedaria
/if (${Zone.ID}==998) /goto :FHall
/echo Unknown zone. Only PoTranquility, PoKnowledge, Everfrost, Nedaria, and FHalls are 

recognized.
/end
:Tranq
/zone PoKnowledge
/call zoning
:Know
/zone Everfrost
/call zoning
:Everf
/stand
/delay 5
/target Magus
/delay 5
/warp target front
/loadspells fhalls
/echo There is a soulbinder here next to the Magus should you wish to bind. (Makes 

retstarts faster)
/delay 35s
/say Nedaria's Landing
/call zoning
:Nedaria
/dzquit
/target Eldros
/delay 5
/warp waypoint Eldros
/delay 5s
/say interested in visiting
/delay 5s
/warp waypoint here
/delay 5
/keypress esc
:NoCorpse
/if (${Me.MaxHPs} < ${NakedHP}) {
   /delay 30s
   /target mycorpse
   /if (!${Target.ID}) {
      /goto :NoCorpse
   } else {
      /delay 5
      /sumcorpse
      /delay 1s
      /call LootBody
   }
}
/if (${Me.PctHPs} < 70) {
   /potionbelt Activate 2
   /delay 4s
   }
/if (${Me.PctExp}<=${SafeExp}) {
   /sit
   /camp
   /end
   }

/delay 2s
/if (${mouserez}==1) /mouseto 300 230
/if (${mouserez}==2) /mouseto 400 300
/if (${mouserez}==3) /mouseto 500 370
/delay 10s
/click left
/click left
/click left
/click left
/click left
/click left
/click left
/delay 2s
/click left
/click left
/click left
/click left
/click left
/call zoning
:FHall
/varset counter 0
/delay 5
/doevents
/delay 5
   /if (!${Me.Buff[Eagle Eye].ID}) {
/cast 7
      }
/delay 5s
   /if (!${Me.Buff[Elixir of Speed X].ID}) {
/potionbelt Activate 1
      }
/delay 1s
/popup Kite will start in 5 seconds.
/delay 1s
/popup Kite will start in 4 seconds.
/delay 1s
/popup Kite will start in 3 seconds.
/delay 1s
/popup Kite will start in 2 seconds.
/delay 1s
/popup Kite will start in 1 seconds.
/warp loc -598 214 9
/face fast heading 270
/delay 1s
/target npc 65 range 0 80 a squeaking rat
/delay 5
/if (!${Target.ID}) /target npc 64 range 0 80 a squeaking rat
/delay 5
/if (!${Target.ID}) /target npc 63 range 0 80 a squeaking rat
:reagro
/if (${Me.AltAbilityReady[Entrap]}) {
   /delay 15   
   /alt activate 219
   /delay 4s
   /warp loc -598.04 -57.69 4 
   /face fast heading 90
   } else {
   /goto :reagro
   }
/if (${Me.PctHPs} <= 75) {
   /potionbelt Activate 2
   /varset healthy FALSE
   } else {
   /autofire on
   /varset healthy TRUE
   }
/return

Sub fleeing
/popup Chase Mode Activated
/varset counter 0
/warp target behind
/delay 3s
/warp target behind
:chase
/delay 5
/stick 15
/attack on
/warp target behind
/delay 3s
/warp target behind
/delay 3s
/warp target behind
/delay 3s

/if (${Me.PctHPs} < 50) {
   /warp loc -834 74 -11
   /echo Run away! Run away!
   /gate
   /call zoning
   /delay 2m
   /mac fhalls
   }
/if (${Me.PctHPs} < 70 && ${healthy}) {
   /potionbelt Activate 2
   /varset healthy FALSE
   /popup Heal Cast Activated
   }
/if (${Me.PctHPs} > 85 && ${healthy}==FALSE) {
   /varset healthy TRUE
   /popup Heal Cast De-Activated
   }
/doevents
/delay 5
/if (${Spawn[gm].ID}) /call GM
/if (${Zone.ID} != 998) /mac RangerFhalls
/if (!${Target.ID}) {
} else {
/goto :chase
}
/return

Sub zoning
/varset zonedin FALSE
/varset counter 0
:stillzoning
/doevents
/delay 1s
/varcalc counter ${counter}+1
/if (${counter}==180) /mac RangerFhalls
/if (${zonedin}==FALSE) /goto :stillzoning
/delay 5s
/return

Sub GM
/beep
/beep
/beep
/q
/end
/return


Sub LootBody
/delay 2s
/loot
/delay 2s
/if (${Me.State.NotEqual[BIND]}) { /goto :NoCorpse }
/varset LootTotal 0

:LootLag
/if (${LootTotal}!=${Corpse.Items}) {
   /varset LootTotal ${Corpse.Items}
   /delay 2s
   /goto :LootLag
}

/for LootSlot 1 to ${Math.Calc[${LootTotal}-${leave}]}
:LootItem
/itemnotify loot${LootSlot} rightmouseup
/delay 5
/if (${Corpse.Item[${LootSlot}].ID}==NULL) {
   /next LootSlot
} else {
   /delay 5
   /goto :LootItem
}
/return

|| SUBS- EVENT_DRIVEN!

Sub event_kill
/stick off
/attack off
/autofire off
/delay 5
/target corpse
/tag
/echo Normal XP: ${Math.Calc[(${Me.Exp}-${LastEXP})/3.3]}%
/echo AA XP: ${Math.Calc[(${Me.AAExp}-${LastAA})/3.3]}%
/delay 5
/varset LastEXP ${Me.Exp}
/varset LastAA ${Me.AAExp}
/delay 2s
/loot
/for LootSlot 1 to 6
:LootItem
/itemnotify loot${LootSlot} leftmouseup
/delay 5
/if (${Cursor.Name.Equal[Rat Whiskers]}) /destroy
/if (${Cursor.Name.Equal[A Piece of Rat Fur]}) /destroy
/if (${Cursor.Name.Equal[Rat Ears]}) /destroy
/delay 5
/notify InventoryWindow IW_CharacterView leftmouseup
/if (${Corpse.Item[${LootSlot}].ID}==NULL) {
   /next LootSlot
     } else {
     /delay 5
     /goto :LootItem
     }
/keypress esc
/delay 5
/keypress esc
/return

Sub event_slainby
/delay 5
/call zoning
/call restart
/return

Sub event_bitten
/warp waypoint Ouch
/pause 2s
/warp loc -598.04 205.61 4
/return


Sub event_zoned
/varset zonedin TRUE
/return
 
Well sure it does that,

Rich (BB code):
/if (${Me.PctHPs} < 50) {
   /warp loc -834 74 -11
   /echo Run away! Run away!
   /gate
   /call zoning
   /delay 1m
   /mac RangerFhalls
   }

Means when you go below 50percent health, you warp, /gate and beside some other stuff /mac RangerFhalls
starts the macro again.

So you need a solution to stay above 50percent health or change that Subroutine.
I do not know if restarting the mac maybe is intentional and it will resume right there when healed back.
 
Well i need the macro to work for my level 70 ranger...
although im not sure how many aa's per day your macro can pull in at level 70, this one can usually do something like 7-8 if calculations are correct.
 
Trying to re-work this macro...

Users who are viewing this thread

Back
Top