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

Barebones healer.mac (request) (1 Viewer)

Adamthebob

New member
Joined
Jul 10, 2007
RedCents
Woule someone please make me a very simplified version of healer.mac?

The only functions I want are for the character to cast complete heal when the current target reaches 50% and that will cast temperance once every 90 mins.

Thanks :)
 
First of all, I think Main needs a loop :)

Also, it will just keep healing target even if the healer is dying.
One easy way to fix that, is just to buy a few healing over time potions and change the following line to
Rich (BB code):
/if ${Me.PctHP}<=${slefhealpoint} /potionbelt activate 1
This is useful if you don't expect the healer to get hit too often, otherwise you have to start handling multiple targets


Also recommend adding this line to the loop
Rich (BB code):
		/if (!${Target.ID} || ${Target.Name.NotEqual[yourtank]}) {
			/target yourtank
			/delay 10
	}
This will REALLY make sure your healer stays on tank (you can sometimes lose target if mob hits healer, etc.)

Finally make that healer sit its ass down when not in combat...

Rich (BB code):
/if (!${Me.CombatState.Equal[COMBAT]}) {
	/if (!${Me.Sitting}) {
		/stand
		/delay 5
		/sit on
		/delay 5
	}
}

This is a quick and dirty solution but works rather well.
 
Getting the following errors before the .mac ends...

There are no spawns matching: (0-100) any null
No such 'spawn' member 'PctHP'
Healer3.mac@12 (main): /if${Target.PctHP}<=${tankhealpoint} /call heal
Failed to parse /if command. Expected () around conditions.
Healer3.mac@12 (main): /if${Target.PctHP}<=${tankhealpoint} /call heal
Usage /if (<conditions>) <command>
 
I made it work and added a few improvements, it's still Very basic.

Rich (BB code):
|SOS barebones healer.mac
|Edited by Unity0110

#Include spell_routines.inc

#Event temp "Your #${hpbuff}# spell has worn off of #${tankname}#."


Sub Main
/declare tankname string outer ${Target}
/declare healspell string outer Complete Healing
/declare hpbuff string outer Temperance
/declare selfhealpoint int outer 50
/declare tankhealpoint int outer 88
/declare healwho string outer
/Echo Simple cleric target heal has loaded.
:Mainloop
/doevents
/if (${Me.PctMana}<=7) /call lom
/if (${Target.PctHPs}<=${tankhealpoint}) { 
/varset healwho ${tankname}
/call heal
}
/if (${Me.PctHPs}<=${selfhealpoint}) {
/varset healwho ${Me}
/call heal
}
/goto :Mainloop
/return

Sub Event_temp
/target ${tankname}
/g Im casting ${hpbuff} on <<<< ${Target} >>>>
/call cast ${hpbuff}
/return

Sub heal
/target ${healwho}
/g inc CH to <<<< ${Target} >>>>
/call Cast ${healspell}
/target ${tankname}
/return

sub lom
/tell ${tankname} im low on mana
/sit
:lomloop
/if (${Me.PctMana}>50) {
/return
}
/goto :lomloop
/return
 
Last edited:
You have to be targeting the tank when this macro starts up it looks like.

/declare tankname string outer ${Target}

might also suggest
Rich (BB code):
:Mainloop
/doevents
/if (${Me.PctMana}<=7) /call lom
/if (${Target}!=${tankname}) /target ${tankname}
/if (${Target.PctHPs}<=${tankhealpoint}) { 
/varset healwho ${tankname}

for the main loop just because you may accidentally change targets howevber and then that tank is not gonna be getting healed until the next time the healer is healed.
 
P.S. I haven't touch a macro code in a while if my syntax is bad sorry it just is suppoed to target the tank if the tank isn't targeted could just /target tank instead of bothering to ask if its targeted but I don't recall if /targeting as fast as the macro updates was an issue before.
 
I guess I have done something wrong, because I have spell_routines.inc.

But the mac just never works.

Here's the .mac ...\

Rich (BB code):
|SOS barebones healer.mac
|Edited by Unity0110

#Include spell_routines.inc

#Event temp "Your #${hpbuff}# spell has worn off of #${tankname}#."


Sub Main
/declare tankname string outer ${Target}
/declare healspell string outer Complete Healing
/declare hpbuff string outer Temperance
/declare selfhealpoint int outer 50
/declare tankhealpoint int outer 50
/declare healwho string outer
/Echo Simple cleric target heal has loaded.
:Mainloop
/doevents
/if (${Me.PctMana}<=7) /call lom
/if (${Target}!=${tankname}) /target ${tankname}
/if (${Target.PctHPs}<=${tankhealpoint}) { 
/call heal
}
/if (${Me.PctHPs}<=${selfhealpoint}) {
/varset healwho ${Me}
/call heal
}
/goto :Mainloop
/return

Sub Event_temp
/target ${tankname}
/g Im casting ${hpbuff} on <<<< ${Target} >>>>
/call cast ${hpbuff}
/return

Sub heal
/target ${healwho}
/call Cast ${healspell}
/target ${tankname}
/return
 
Rich (BB code):
Sub Event_temp
/target ${tankname}
/g Im casting ${hpbuff} on <<<< ${Target} >>>>
/call cast ${hpbuff}
/return

I wonder if it need " on the cast line i think it does

Rich (BB code):
Sub Event_temp
/target ${tankname}
/g Im casting ${hpbuff} on <<<< ${Target} >>>>
/cast "${hpbuff}"
/return

Should work
 
yeah sos was right, when i did my testing i had quotes at the top

Rich (BB code):
|SOS barebones healer.mac
|Edited by Unity0110

#Include spell_routines.inc

#Event temp "Your #${hpbuff}# spell has worn off of #${tankname}#."


Sub Main
/declare tankname string outer ${Target}
/declare healspell string outer Complete Healing
/declare hpbuff string outer Temperance
/declare selfhealpoint int outer 50
/declare tankhealpoint int outer 50
/declare healwho string outer
/Echo Simple cleric target heal has loaded.
:Mainloop
/doevents
/if (${Me.PctMana}<=7) /call lom
/if (${Target.PctHPs}<=${tankhealpoint}) { 
/varset healwho ${tankname}
/call heal
}
/if (${Me.PctHPs}<=${selfhealpoint}) {
/varset healwho ${Me}
/call heal
}
/goto :Mainloop
/return

Sub Event_temp
/target ${tankname}
/g Im casting ${hpbuff} on <<<< ${Target} >>>>
/call cast "${hpbuff}"
/return

Sub heal
/target ${healwho}
/g inc CH to <<<< ${Target} >>>>
/delay 5
/call Cast "${healspell}"
/target ${tankname}
/return

sub lom
/tell ${tankname} im low on mana
/sit
:lomloop
/if (${Me.PctMana}>50) {
/gsay I'm at ${Me.PctMana}% mana
/return
}
/goto :lomloop
/return
 
I wish I knew what I was doing wrong...

The temperance part works fine, but the cleric won't cast "Complete Heal." He just spams group chat with inc CH to <<<< ${Target} >>>>
 
Try taking out the variable and hardcoding:

Rich (BB code):
/call Cast "Complete Healing"

also, add in a

Rich (BB code):
/echo Casting "${healspell}"

That way you can tell on your healer what it thinks ${healspell} is.

Looking at your mac a little bit closure .... you should check to make sure that your healspell is ready to be cast, otherwise you have the potential to spam for a couple of seconds. And you see alot of "your spell is not ready" msg's.

Rich (BB code):
/if ((${Target.PctHPs}<=${tankhealpoint}) && ${Me.SpellReady[${healspell}]}){ 
/varset healwho ${tankname}
/call heal
}
/if( (${Me.PctHPs}<=${selfhealpoint}) && ${Me.SpellReady[${healspell}]}){ 
/varset healwho ${Me}
/call heal
}

Also, whose spell_routines.inc are you using? And what is the modified date on it.
 
Woot! Finally works ;D
Rich (BB code):
|SOS barebones healer.mac
|Edited by Unity0110

#Include spell_routines.inc

#Event temp "Your #${hpbuff}# spell has worn off of #${tankname}#."


Sub Main
/declare tankname string outer ${Target}
/declare healspell string outer "Complete Heal"
/declare hpbuff string outer "Temperance"
/declare selfhealpoint int outer 50
/declare tankhealpoint int outer 50
/declare healwho string outer
/Echo Simple cleric target heal has loaded.
:Mainloop
/doevents
/if (${Me.PctMana}<=7) /call lom
/if (${Target.PctHPs}<=${tankhealpoint}) { 
/varset healwho ${tankname}
/call heal
}
/if (${Me.PctHPs}<=${selfhealpoint}) {
/varset healwho ${Me}
/call heal
}
/goto :Mainloop
/return

Sub Event_temp
/target ${tankname}
/g Im casting ${hpbuff} on <<<< ${Target} >>>>
/call cast "${hpbuff}"
/return

Sub heal
/target ${healwho}
/call Cast "Complete Heal"
/echo Casting "${healspell}"
/target ${tankname}
/return

sub lom
/tell ${tankname} im low on mana
/sit
:lomloop
/if (${Me.PctMana}>50) {
/gsay I'm at ${Me.PctMana}% mana
/return
}
/goto :lomloop
/return
/sit
:lomloop
/if (${Me.PctMana}>50) {
/return
}
/goto :lomloop
/return

Thanks everyone
 
Barebones healer.mac (request)

Users who are viewing this thread

Back
Top