can someone tell me how fix this for single target heal

Third party software discussion goes here.
mcaslow
Posts: 17

can someone tell me how fix this for single target heal

Post#1 » Sat Mar 15, 2014 4:54 am

Main
|# Change the lines I'm noting below here!
|# At this % HP, it will heal a group member. Default: 90
/declare healPct int outer 50
|# Use harmony of spirit when idle? (Mana regen). set to false if you don't like it
/declare useHoS bool outer false
|# When 1 target needing heal, use this
/declare healSpell string Pious Remedy
|# When 2+ people, use this
/declare groupSpell string Word of Vivification
|# These are temporary stuffs, don't change
/declare donorTimer timer outer
/declare donorTimer2 timer outer
/declare divineTimer timer outer
/declare priorityTarget string outer
/declare epicTimer timer outer
/declare curHealTarget string local
/declare curPlayer string local
/declare curSpell string local
/declare i int outer
/declare healCount int outer
/declare isHealing bool outer
/declare spamCount int outer
/declare expCount int outer
|# End of temporary stuffs

|# You can remove this if you don't like the spam.
/g Robot ${Me.Name} started v. 0.4f. I'll heal group within 250m from me. (And spam when you aren't in range)

:Loop
/doevents
/varset healCount 0
/varset curHealTarget
/for i 0 to ${Group.Members}
/varset curPlayer ${Group.Member[${i}]}
/if (${Bool[${Spawn[pc ${curPlayer}]}]} && ${Spawn[pc ${curPlayer}].Distance} < 250 && ${Spawn[pc ${curPlayer}].PctHPs} < ${healPct}) {
/varcalc healCount ${healCount}+1
/varset curHealTarget ${curPlayer}
} else /if (${Bool[${Spawn[pc ${curPlayer}]}]} && ${Spawn[pc ${curPlayer}].Distance} > 249 && ${Spawn[pc ${curPlayer}].PctHPs} < ${healPct}) {
/if (${spamCount} < 3) {
/g You're out of range ${curPlayer} by ${Spawn[pc ${curPlayer}].Distance}m, run to me (${Spawn[pc ${curPlayer}].PctHPs}% HPs).
/varcalc spamCount ${spamCount}+1
}
}
/next i

||Idle Actions

|#Use Harmony of spirit if mana is < 90
/if (${healCount} == 0 && ${useHoS}) {
/varset curSpell Harmony of Spirit III
/if (${Me.SpellReady[${curSpell}]} && ${Me.PctMana}<90 && !${Me.Buff[${curSpell}].ID}) {
/casting "${curSpell}" -maxtries|5
}
}

|# Heal actions
/if (${healCount}>1 && ${Cast.Ready}) {
|Donor1 Logic
/if (${donorTimer} == 0 && ${FindItemCount[Flindara, Beacon of Light]}) {
/g Archon Group -> ${curHealTarget} (${Spawn[pc ${curHealTarget}].PctHPs}% HP) ${healCount}A|${SpawnCount[NPC radius 40]}E|${expCount}T <-
/casting "Flindara, Beacon of Light" -targetid|${Spawn[pc ${curHealTarget}].ID} -maxtries|5
/varset donorTimer 27s

|# Donor2 Logic (Should be just a generic AE heal)
} else /if (${donorTimer2} == 0 && ${FindItemCount[Hammer of the High Priest]}) {
/g AE Heal 70m -> ${curHealTarget} (${Spawn[pc ${curHealTarget}].PctHPs}% HP) ${healCount}A|${SpawnCount[NPC radius 40]}E|${expCount}T <-
/casting "Hammer of the High Priest" -targetid|${Spawn[pc ${curHealTarget}].ID} -maxtries|5
/varset donorTimer2 10s
|# Tactics Logic

} else {
|Group Heal! If you don't have Word of Strategy, change this curSpell line here.
/varset curSpell ${groupSpell}
/if (${Me.SpellReady[${curSpell}]} && ${Me.PctMana}<90 && !${Me.Buff[${curSpell}].ID}) {
/casting "${curSpell}" -maxtries|5
/g Word of Vivification -> ${curHealTarget} (${Spawn[pc ${curHealTarget}].PctHPs}% HP) ${healCount}A|${SpawnCount[NPC radius 40]}E|${expCount}T <-
}
}
/varset spamCount 0
}

/if (${healCount} == 1 && ${Cast.Ready}) {
|# Epic Logic
/if (${epicTimer} == 0 && ${FindItemCount[Ancient Frozen Aegis of Divinity]}) {
/g Epic Click -> ${curHealTarget} (${Spawn[pc ${curHealTarget}].PctHPs}% HP) ${healCount}A|${SpawnCount[NPC radius 40]}E|${expCount}T <-
/casting "Ancient Frozen Aegis of Divinity" -targetid|${Spawn[pc ${curHealTarget}].ID} -maxtries|5
/varset epicTimer 60s

|# Donor1 Logic
} else /if (${donorTimer} == 0 && ${FindItemCount[Flindara, Beacon of Light]}) {
/g Archon Group -> ${curHealTarget} (${Spawn[pc ${curHealTarget}].PctHPs}% HP) ${healCount}A|${SpawnCount[NPC radius 40]}E|${expCount}T <-
/casting "Flindara, Beacon of Light" -targetid|${Spawn[pc ${curHealTarget}].ID} -maxtries|5
/varset donorTimer 27s
|# Divine Intervention Logic
} else /if (${divineTimer} == 0 && ${FindItemCount[Hammer of the High Priest]}) {
/g Divine Arb Group -> ${curHealTarget} (${Spawn[pc ${curHealTarget}].PctHPs}% HP) ${healCount}A|${SpawnCount[NPC radius 40]}E|${expCount}T <-
/casting "Divine Arbitration" -targetid|${Spawn[pc ${curHealTarget}].ID} -maxtries|5
/varset divineTimer 180s
|# Generic Heal Logic
} else {
|Spam Faithful light. change spell name to your preferred
/varset curSpell ${healSpell}
/g Healing -> ${curHealTarget} (${Spawn[pc ${curHealTarget}].PctHPs}% HP) ${healCount}A|${SpawnCount[NPC radius 40]}E|${expCount}T <-
/casting "Pious Remedy" -targetid|${Spawn[pc ${curHealTarget}].ID} -maxtries|5
}
/varset spamCount 0
}
/delay 1s
/goto :Loop
/return

Sub Event_ExpCount
/varcalc expCount ${expCount}+1
/return

Dreos
Posts: 489

Re: can someone tell me how fix this for single target heal

Post#2 » Sat Mar 15, 2014 6:55 am

Can you be a little more specific? What's happening / not happening that you want to have happen?

Noren
Posts: 1053

Re: can someone tell me how fix this for single target heal

Post#3 » Sat Mar 15, 2014 5:33 pm

It runs - so that isn't an issue, but I think I can guess your request. This macro is will always fail for single target heals when more than one person is below the heal threshhold. Why? The macro will only heal single target if this is true:
"/if (${healCount} == 1 && ${Cast.Ready})"

The culprit? Your ${healCount} variable.

My recommendation? Merge your |#Heal Actions section into one and change the requirement to "/if (${healCount} > 0)". Make group and single target heals fall under that one "/if (${healCount} > 0)" statement and prioritize them with the most important at the top.

Further notes:
Your timers are inefficient at fully utilizing clicky items. If the Hammer of the High Priest has a 10 second recast and takes 2 seconds to cast, you can varset the timer to 80 (I suggest 81 to account for latency) instead of 100. Otherwise you're finishing casting it once every 12 seconds instead of once every 10. That adds up quickly during a boss fight.

mcaslow
Posts: 17

Re: can someone tell me how fix this for single target heal

Post#4 » Sat Mar 15, 2014 8:38 pm

someone gave me this macro to use. i don't have any of the clickies listed. the single target heal doens't cast anything it just spams the chat window over and over. the group heal goes off just fine.

Ydiss
Posts: 1193

Re: can someone tell me how fix this for single target heal

Post#5 » Sat Mar 15, 2014 9:08 pm

Is the heal you wish to cast "pious remedy"? Just checking that, off the bat.

mcaslow
Posts: 17

Re: can someone tell me how fix this for single target heal

Post#6 » Sat Mar 15, 2014 10:55 pm

yes i'm trying to cast pious remedy as a single target heal

its now casting word of vivification soon as i start the macro then giveing me an error heal2.mac @96 and says macro ended

Sub Main
|# Change the lines I'm noting below here!
|# At this % HP, it will heal a group member. Default: 90
/declare healPct int outer 50
|# Use harmony of spirit when idle? (Mana regen). set to false if you don't like it
/declare useHoS bool outer false
|# When 1 target needing heal, use this
/declare healSpell string Pious Remedy
|# When 2+ people, use this
/declare groupSpell string Word of Vivification
|# These are temporary stuffs, don't change
/declare donorTimer timer outer
/declare donorTimer2 timer outer
/declare divineTimer timer outer
/declare priorityTarget string outer
/declare epicTimer timer outer
/declare curHealTarget string local
/declare curPlayer string local
/declare curSpell string local
/declare i int outer
/declare healCount int outer
/declare isHealing bool outer
/declare spamCount int outer
/declare expCount int outer
|# End of temporary stuffs

|# You can remove this if you don't like the spam.
/g Robot ${Me.Name} started v. 0.4f. I'll heal group within 250m from me. (And spam when you aren't in range)

:Loop
/doevents
/varset healCount 0
/varset curHealTarget
/for i 0 to ${Group.Members}
/varset curPlayer ${Group.Member[${i}]}
/if (${Bool[${Spawn[pc ${curPlayer}]}]} && ${Spawn[pc ${curPlayer}].Distance} < 250 && ${Spawn[pc ${curPlayer}].PctHPs} < ${healPct}) {
/varcalc healCount ${healCount}+1
/varset curHealTarget ${curPlayer}
} else /if (${Bool[${Spawn[pc ${curPlayer}]}]} && ${Spawn[pc ${curPlayer}].Distance} > 249 && ${Spawn[pc ${curPlayer}].PctHPs} < ${healPct}) {
/if (${spamCount} < 3) {
/g You're out of range ${curPlayer} by ${Spawn[pc ${curPlayer}].Distance}m, run to me (${Spawn[pc ${curPlayer}].PctHPs}% HPs).
/varcalc spamCount ${spamCount}+1
}
}
/next i

||Idle Actions

|#Use Harmony of spirit if mana is < 90
/if (${healCount} == 0 && ${useHoS}) {
/varset curSpell Harmony of Spirit III
/if (${Me.SpellReady[${curSpell}]} && ${Me.PctMana}<90 && !${Me.Buff[${curSpell}].ID}) {
/casting "${curSpell}" -maxtries|5
}
}

|# Heal actions
/if (${healCount}>0 && ${Cast.Ready}) {
|Donor1 Logic
/if (${donorTimer} == 0 && ${FindItemCount[Flindara, Beacon of Light]}) {
/g Archon Group -> ${curHealTarget} (${Spawn[pc ${curHealTarget}].PctHPs}% HP) ${healCount}A|${SpawnCount[NPC radius 40]}E|${expCount}T <-
/casting "Flindara, Beacon of Light" -targetid|${Spawn[pc ${curHealTarget}].ID} -maxtries|5
/varset donorTimer 27s

|# Donor2 Logic (Should be just a generic AE heal)
} else /if (${donorTimer2} == 0 && ${FindItemCount[Hammer of the High Priest]}) {
/g AE Heal 70m -> ${curHealTarget} (${Spawn[pc ${curHealTarget}].PctHPs}% HP) ${healCount}A|${SpawnCount[NPC radius 40]}E|${expCount}T <-
/casting "Hammer of the High Priest" -targetid|${Spawn[pc ${curHealTarget}].ID} -maxtries|5
/varset donorTimer2 10s
|# Tactics Logic

|# Generic Heal Logic
} else {
|Spam Faithful light. change spell name to your preferred
/varset curSpell ${healSpell}
/g Healing -> ${curHealTarget} (${Spawn[pc ${curHealTarget}].PctHPs}% HP) ${healCount}A|${SpawnCount[NPC radius 40]}E|${expCount}T <-
/casting " Pious Remedy " -targetid|${Spawn[pc ${curHealTarget}].ID} -maxtries|5
}
/varset spamCount 0
} else {
|Group Heal! If you don't have Word of Strategy, change this curSpell line here.
/varset curSpell ${groupSpell}
/if (${Me.SpellReady[${curSpell}]} && ${Me.PctMana}<90 && !${Me.Buff[${curSpell}].ID}) {
/casting "${curSpell}" -maxtries|5
/g Word of Vivification -> ${curHealTarget} (${Spawn[pc ${curHealTarget}].PctHPs}% HP) ${healCount}A|${SpawnCount[NPC radius 40]}E|${expCount}T <-
}
}
/varset spamCount 0
}

/if (${healCount} == 1 && ${Cast.Ready}) {
|# Epic Logic
/if (${epicTimer} == 0 && ${FindItemCount[Ancient Frozen Aegis of Divinity]}) {
/g Epic Click -> ${curHealTarget} (${Spawn[pc ${curHealTarget}].PctHPs}% HP) ${healCount}A|${SpawnCount[NPC radius 40]}E|${expCount}T <-
/casting "Ancient Frozen Aegis of Divinity" -targetid|${Spawn[pc ${curHealTarget}].ID} -maxtries|5
/varset epicTimer 60s

|# Donor1 Logic
} else /if (${donorTimer} == 0 && ${FindItemCount[Flindara, Beacon of Light]}) {
/g Archon Group -> ${curHealTarget} (${Spawn[pc ${curHealTarget}].PctHPs}% HP) ${healCount}A|${SpawnCount[NPC radius 40]}E|${expCount}T <-
/casting "Flindara, Beacon of Light" -targetid|${Spawn[pc ${curHealTarget}].ID} -maxtries|5
/varset donorTimer 27s
|# Divine Intervention Logic
} else /if (${divineTimer} == 0 && ${FindItemCount[Hammer of the High Priest]}) {
/g Divine Arb Group -> ${curHealTarget} (${Spawn[pc ${curHealTarget}].PctHPs}% HP) ${healCount}A|${SpawnCount[NPC radius 40]}E|${expCount}T <-
/casting "Divine Arbitration" -targetid|${Spawn[pc ${curHealTarget}].ID} -maxtries|5
/varset divineTimer 180s

}
/delay 1s
/goto :Loop
/return

Sub Event_ExpCount
/varcalc expCount ${expCount}+1
/return

Dreos
Posts: 489

Re: can someone tell me how fix this for single target heal

Post#7 » Sat Mar 15, 2014 11:23 pm

Code: Select all

Sub Main
|# Change the lines I'm noting below here!
|# At this % HP, it will heal a group member. Default: 90
/declare healPct int outer 50
|# Use harmony of spirit when idle? (Mana regen). set to false if you don't like it
/declare useHoS bool outer false
|# When 1 target needing heal, use this
/declare healSpell string Pious Remedy
|# When 2+ people, use this
/declare groupSpell string Word of Vivification
|# These are temporary stuffs, don't change
/declare donorTimer timer outer
/declare donorTimer2 timer outer
/declare divineTimer timer outer
/declare priorityTarget string outer
/declare epicTimer timer outer
/declare curHealTarget string local
/declare curPlayer string local
/declare curSpell string local
/declare i int outer
/declare healCount int outer
/declare isHealing bool outer
/declare spamCount int outer
/declare expCount int outer
|# End of temporary stuffs

|# You can remove this if you don't like the spam.
/g Robot ${Me.Name} started v. 0.4f. I'll heal group within 250m from me. (And spam when you aren't in range)

:Loop
/doevents
/varset healCount 0
/varset curHealTarget
/for i 0 to ${Group.Members}
/varset curPlayer ${Group.Member[${i}]}
/if (${Bool[${Spawn[pc ${curPlayer}]}]} && ${Spawn[pc ${curPlayer}].Distance} < 250 && ${Spawn[pc ${curPlayer}].PctHPs} < ${healPct}) {
/varcalc healCount ${healCount}+1
/varset curHealTarget ${curPlayer}   
} else /if (${Bool[${Spawn[pc ${curPlayer}]}]} && ${Spawn[pc ${curPlayer}].Distance} > 249 && ${Spawn[pc ${curPlayer}].PctHPs} < ${healPct}) {
/if (${spamCount} < 3) {
/g You're out of range ${curPlayer} by ${Spawn[pc ${curPlayer}].Distance}m, run to me (${Spawn[pc ${curPlayer}].PctHPs}% HPs).
/varcalc spamCount ${spamCount}+1
}
}
/next i

||Idle Actions

|#Use Harmony of spirit if mana is < 90
/if (${healCount} == 0 && ${useHoS}) {
/varset curSpell Harmony of Spirit III
/if (${Me.SpellReady[${curSpell}]} && ${Me.PctMana}<90 && !${Me.Buff[${curSpell}].ID}) {
/casting "${curSpell}" -maxtries|5
}
}

|# Heal actions
/if (${healCount}>0 && ${Cast.Ready}) {
|Donor1 Logic
/if (${donorTimer} == 0 && ${FindItemCount[Flindara, Beacon of Light]}) {
/g Archon Group -> ${curHealTarget} (${Spawn[pc ${curHealTarget}].PctHPs}% HP) ${healCount}A|${SpawnCount[NPC radius 40]}E|${expCount}T <-
/casting "Flindara, Beacon of Light" -targetid|${Spawn[pc ${curHealTarget}].ID} -maxtries|5
/varset donorTimer 27s

|# Donor2 Logic (Should be just a generic AE heal)
} else /if (${donorTimer2} == 0 && ${FindItemCount[Hammer of the High Priest]}) {
/g AE Heal 70m -> ${curHealTarget} (${Spawn[pc ${curHealTarget}].PctHPs}% HP) ${healCount}A|${SpawnCount[NPC radius 40]}E|${expCount}T <-   
/casting "Hammer of the High Priest" -targetid|${Spawn[pc ${curHealTarget}].ID} -maxtries|5
/varset donorTimer2 10s
|# Tactics Logic

|# Generic Heal Logic
} else {
|Spam Faithful light. change spell name to your preferred
/varset curSpell ${healSpell}
/g Healing -> ${curHealTarget} (${Spawn[pc ${curHealTarget}].PctHPs}% HP) ${healCount}A|${SpawnCount[NPC radius 40]}E|${expCount}T <-   
/casting "Pious Remedy" -targetid|${Spawn[pc ${curHealTarget}].ID} -maxtries|5
}
/varset spamCount 0
} else {
|Group Heal! If you don't have Word of Strategy, change this curSpell line here.
/varset curSpell ${groupSpell}
/if (${Me.SpellReady[${curSpell}]} && ${Me.PctMana}<90 && !${Me.Buff[${curSpell}].ID}) {
/casting "${curSpell}" -maxtries|5
/g Word of Vivification -> ${curHealTarget} (${Spawn[pc ${curHealTarget}].PctHPs}% HP) ${healCount}A|${SpawnCount[NPC radius 40]}E|${expCount}T <-
}   
}
/varset spamCount 0
}

/if (${healCount} == 1 && ${Cast.Ready}) {
|# Epic Logic
/if (${epicTimer} == 0 && ${FindItemCount[Ancient Frozen Aegis of Divinity]}) {
/g Epic Click -> ${curHealTarget} (${Spawn[pc ${curHealTarget}].PctHPs}% HP) ${healCount}A|${SpawnCount[NPC radius 40]}E|${expCount}T <-   
/casting "Ancient Frozen Aegis of Divinity" -targetid|${Spawn[pc ${curHealTarget}].ID} -maxtries|5
/varset epicTimer 60s

|# Donor1 Logic
} else /if (${donorTimer} == 0 && ${FindItemCount[Flindara, Beacon of Light]}) {
/g Archon Group -> ${curHealTarget} (${Spawn[pc ${curHealTarget}].PctHPs}% HP) ${healCount}A|${SpawnCount[NPC radius 40]}E|${expCount}T <-   
/casting "Flindara, Beacon of Light" -targetid|${Spawn[pc ${curHealTarget}].ID} -maxtries|5
/varset donorTimer 27s
|# Divine Intervention Logic
} else /if (${divineTimer} == 0 && ${FindItemCount[Hammer of the High Priest]}) {
/g Divine Arb Group -> ${curHealTarget} (${Spawn[pc ${curHealTarget}].PctHPs}% HP) ${healCount}A|${SpawnCount[NPC radius 40]}E|${expCount}T <-   
/casting "Divine Arbitration" -targetid|${Spawn[pc ${curHealTarget}].ID} -maxtries|5
/varset divineTimer 180s

}
}
/delay 1s
/goto :Loop
/return

Sub Event_ExpCount
/varcalc expCount ${expCount}+1
/return


Should work. You were missing a closing bracket after the if statement on line 91. You also needed to have "Pious Remedy" not " Pious Remedy ".

Magnas119
Posts: 48

Re: can someone tell me how fix this for single target heal

Post#8 » Mon Mar 17, 2014 4:08 pm

Tried this and kept casting Word of Vivication over and over

Noren
Posts: 1053

Re: can someone tell me how fix this for single target heal

Post#9 » Mon Mar 17, 2014 4:20 pm

What is your single target heal spell on your cleric?

Magnas119
Posts: 48

Re: can someone tell me how fix this for single target heal

Post#10 » Mon Mar 17, 2014 9:17 pm

Mine uses Faithful Light Rk.1

Return to “Third party software”

Who is online

Users browsing this forum: No registered users and 0 guests