Simple heal hot macro

JimJohnson

Forum Jackass
Joined
Jul 12, 2006
Messages
8,528
Reaction score
11
Points
38
If people post asking for this and don't use the fucking search function from now on I hope they get a big black size 20 cock up the bung .

Pretty sure those are the easy terms to use to fiind what you want.

Make sure you have someone targeted. This might mess up if other buffs wear off besides HoT I am not sure not tested it. If it errors out please post the error line so I can get it fixed. This was a quick modification from another macro I wrote for someone else to be more general.
Code:
#turbo

#include Spell_routines.inc
 
 
#Event SpellWornOff  "Your #1# spell has worn off of #2#."
 
Sub Main
/echo JimJohnson for President!

|PUT YOUR HEAL SPELL HERE!
/declare healSpell string outer YOURDIRECTHEALSPELLHERE
/declare healPCT int outer 30


|PUT YOUR HEAL OVER TIME SPELL HERE!
/declare hotSpell string outer YOURHEALOVERTIMESPELLHERE
/declare hotPCT int outer 80 

/declare HoT bool outer FALSE

:loop
/if (${Target.PctHPs}<${healPCT} && ${Target.ID} && ${Me.SpellReady[${healSpell}]}) /call cast "${healSpell}" gem1 10s
/if (!${Me.Casting.ID} && ${Me.SpellReady[${hotSpell}]} && ${Target.ID} && ${Target.PctHPs}<${healPCT} && ${Target.PctHPs}>${hotPCT} && !${HoT}) {
  /call cast "${hotSpell}" gem4 10s
  /varset HoT TRUE
}
/doevents
/goto :loop
/return
 
 
Sub Event_SpellWornOff(string Line, string SpellName, string OnWho) 
/varset HoT FALSE
/return
 
I apologize for my ignorance ahaead of time.

I understand YOURDIRECTHEALSPELLHERE = name of spell. np

/declare healPCT int outer 30, can change to any % I want?

/call cast "${healSpell}" gem1 10s, can change to any gemslot I want?


Thank for the help JJ.
 
You are casting based on Spell not gemslot

If your spell is not memed it should attempt to mem it in the slot dictated in the call cast line
 
Looks like JJ had a little more time on his hands than I did today. But this was my entry into the simplest heal possible macro.

Mem the below 90% spell in gem1

Mem the below 60% spell in gem2

Make sure to set the /declare oorange int outer 100 to a number that more accurately reflects your spellcasting range (i.e not 100, check alla's for range on the spells you are casting)

If tank is oor the macro will tell him he's oor.

If you are targetting a mob by accident or you don't have a target, the macro will tell you so and end. Forgetting to include things like this is a great way to broadcast that you are macroing as the ton will just loop attempts to do something impossible.

If you accidentally die it will camp after about three minutes in Guildlobby.

Code:
#include spell_routines.inc
 
Sub Main 
/declare startzone	     int outer  ${Zone.ID}
/declare oorange             int outer 100
/echo Gem1 Will be cast on ${Target.Name} at 90%
/echo Gem2 will be cast on ${Target.Name} at 60%
/echo Make sure you set /declare oorange to your specific spellcasting range instead of just leaving it at ${oorange}


:loop
/call Zonecheck
/if (!${Target.ID}) {
	/popup EQ has just smacked YOU with a hysterical mongoose
	/echo No one is targeted, pick a tank to heal and restart the macro.
	/end
	}
/if (${Target.Type.Equal[NPC]}) {
	/Popup Your genitals are consumed by fire.
	/echo Healing the mobs is generally counterproductive, pick a PC to heal or I'll burn you again.
	/end
	}
/if (!${Me.Casting} && ${Target.ID} && ${Target.PctHPs}<90 && !${Target.PctHPs}<60) /cast 1
/if (!${Me.Casting} && ${Target.ID} && ${Target.PctHPs}<60) /cast 2
/if (${Target.Distance}>${oorange} && ${Target.PctHPs}<60) /tt You're too far away for heals, I hope you've made peace with your god
/delay 2s
/goto :loop


Sub Zonecheck
/if (${Zone.ID}!=${startzone}) {
	/echo You're not in the zone you started in.
	/popup You're not in the zone you started in.
	/delay 3m
	/camp desktop
	/delay 3m
	/camp desktop
	/delay 3m
	/camp desktop
	/end
	}
/return