Follow along with the video below to see how to install our site as a web app on your home screen.
Note: This feature may not be available in some browsers.

[Cures]
CuresOn=1
CuresSize=5
Cures1=Radiant Cure
Cures2=Ward of Purity
Cures3=Purified Spirits
Cures4=Group Purify Soul
Cures5=Word of Greater Restoration
The cure that can dispel negative effects is only 95% chance
it is already setup. it is Radiant CureOnly?
How do I set that up in my INI? I have like 4-5 cure lines already... going off of your CLR's ini, actually.
I say only 95% because it doesn't *feel* like 95% heh, but it definitely works most of the time.it is already setup. it is Radiant Cure
I say only 95% because it doesn't *feel* like 95% heh, but it definitely works most of the time.
it is the first cure to use based on the ini, so if there is something it can cure it will cast it - I'm not sure on the logic behind it, maybe @ctaylor22 can chime inOh, it knows already to cast it when tank is mezzed?
@Sicprofundus you would call me out... LOL.. I will try and keep this as simple as I can. When you setup your cures, there is the ability to have a generic cure, this cure is for anything that is NOT Poison, disease, curse, or corruption. So if you need to cure anything that is not one of the listed. then leave second tag blank.
One thing to keep in mind, if the debuff/curse does NOT return any counters, the cure routine will not even know you need to be cured. Hope this helps.
| ----------------------------------------------------------------------------
| SUB: WriteDebuffs
| ----------------------------------------------------------------------------
Sub WriteDebuffs
/if (${DebugHeal}) /echo \atDEBUGHEALS WriteDebuffs Enter \agLine#: ${Macro.CurLine}
/declare DebuffList string local
/declare IAmDeBuffed int local ${Math.Calc[${Int[${Me.Poisoned.ID}]}+${Int[${Me.Diseased.ID}]}+${Int[${Me.Cursed.ID}]}+${Int[${Me.Corrupted.ID}]}+${Int[${Me.Mezzed.ID}]}]}
/if (${IAmDeBuffed} && !${NeedCuring}) {
/varset NeedCuring 1
/varset DebuffList ${IAmDeBuffed}|${Int[${Me.Poisoned.ID}]}|${Int[${Me.Diseased.ID}]}|${Int[${Me.Cursed.ID}]}|${Int[${Me.Corrupted.ID}]}|${Int[${Me.Mezzed.ID}]}
/ini "KissAssist_Buffs.ini" "${Me.ID}" Debuffs "${DebuffList}"
/delay 10
/if (${DebugHeal}) /echo \amDEBUGHEALS WriteDebuffs Writing debuffs to ini file \agLine#: ${Macro.CurLine}
}
/if (!${IAmDeBuffed} && ${NeedCuring}) {
/varset NeedCuring 0
/varset DebuffList
/ini "KissAssist_Buffs.ini" "${Me.ID}" Debuffs "${DebuffList}"
/delay 10
/if (${DebugHeal}) /echo \amDEBUGHEALS WriteDebuffs Clearing debuffs from ini file \agLine#: ${Macro.CurLine}
}
/if (${DebugHeal}) /echo \atDEBUGHEALS WriteDebuffs Leave \agLine#: ${Macro.CurLine}
/return
| ----------------------------------------------------------------------------
| SUB: CheckCures
| ----------------------------------------------------------------------------
Sub CheckCures
/if (!${CuresOn}) /return
/if (${Me.Invis} && !${AggroTargetID}) /return
/if (${Medding} && ${MedCombat}) /return
/if (${DebugHeal}) /echo \amDEBUGHEALS CheckCures Enter \agLine#: ${Macro.CurLine}
/declare i int local
/declare j int local
/declare IniIDList string local ${Ini["KissAssist_Buffs.ini"]}
/declare IniIDCount int local ${Math.Calc[${IniIDList.Count[|]}-1]}
/declare IniDebuffCount string local 0
/declare IniDebuffList string local
/declare CuretoCast string local
/declare CTID int local
/for i 1 to ${Cures.Size}
/if (!${Cures[${i}].Length}) /continue
/for j 1 to ${IniIDCount}
/varset CuretoCast
/varset IniDebuffCount ${Ini["KissAssist_Buffs.ini",${IniIDList.Arg[${j},|]},"Debuffs"]}
/varset CTID ${Spawn[${IniIDList.Arg[${j},|]}].ID}
/if (${IniDebuffCount.Arg[1,|]} && ${Spawn[${IniIDList.Arg[${j},|]}].ID} && ${Spawn[${IniIDList.Arg[${j},|]}].Distance}<100) {
/if (${IniDebuffCount.Arg[1,|]} && ${Cures[${i}].Arg[2,|].Length}==0) {
/varset CuretoCast ${Cures[${i}]}
} else /if (${IniDebuffCount.Arg[2,|]}>0 && ${Cures[${i}].Arg[2,|].Equal[poison]}) {
/varset CuretoCast ${Cures[${i}].Arg[1,|]}
} else /if (${IniDebuffCount.Arg[3,|]}>0 && ${Cures[${i}].Arg[2,|].Equal[disease]}) {
/varset CuretoCast ${Cures[${i}].Arg[1,|]}
} else /if (${IniDebuffCount.Arg[4,|]}>0 && ${Cures[${i}].Arg[2,|].Equal[curse]}) {
/varset CuretoCast ${Cures[${i}].Arg[1,|]}
} else /if (${IniDebuffCount.Arg[5,|]}>0 && ${Cures[${i}].Arg[2,|].Equal[corruption]}) {
/varset CuretoCast ${Cures[${i}].Arg[1,|]}
} else /if (${IniDebuffCount.Arg[6,|]}>0 && ${Cures[${i}].Arg[2,|].Equal[mezzed]}) {
/varset CuretoCast ${Cures[${i}].Arg[1,|]}
}
| Check cures for group component since they don't seem to work on out of group toons
/if (${Spell[${CuretoCast}].TargetType.Find[group v]} && !${Spawn[id ${IniIDList.Arg[${j},|]} group].ID}) {
/if (!${Defined[CureTimer${CTID}${i}]}) {
/declare CureTimer${CTID}${i} timer outer 30s
/if (${DebugHeal}) /echo \amDEBUGHEALS CheckCures /echo declare CureTimer${CTID}${i} \agLine#: ${Macro.CurLine}
} else /if (!${CureTimer${CTID}${i}}) {
/varset CureTimer${CTID}${i} 30s
/if (${DebugHeal}) /echo \amDEBUGHEALS CheckCures /echo varset CureTimer${CTID}${i} \agLine#: ${Macro.CurLine}
}
/if (${DebugHeal} && !${CureTimer${CTID}${i}}) /echo CURING: >> ${Spawn[${IniIDList.Arg[${j},|]}].CleanName} << is not in your group and >> ${CuretoCast} << is a group spell.
/continue
}
/if (${Me.SpellReady[${Spell[${CuretoCast}].RankName}]} || ${Me.AltAbilityReady[${CuretoCast}]} || ${Me.CombatAbilityReady[${Spell[${CuretoCast}].RankName}]} || ${Me.AbilityReady[${CuretoCast}]} || ${Me.ItemReady[${CuretoCast}]}) {
/call CastWhat "${CuretoCast}" ${IniIDList.Arg[${j},|]} Cure 0
}
/if (${Macro.Return.Equal[CAST_SUCCESS]}) {
/call BroadCast ${IRCOn} ${EQBCOn} o "CURING: >> ${Spawn[${IniIDList.Arg[${j},|]}].CleanName} << with ${CuretoCast}"
/delay 10
}
}
/next j
/next i
/if (${DebugHeal}) /echo \amDEBUGHEALS CheckCures Leave \agLine#: ${Macro.CurLine}
/return
The change has not been tested so use at your own risk.
Just replace the two routines, WriteDebuff and CheckCures.
you can use the generic cure or use the mezzed tag. Example:
Cures1=Radiant Cure
or
Cures1=Radiant Cure|mezzed
Code:| ---------------------------------------------------------------------------- | SUB: WriteDebuffs | ---------------------------------------------------------------------------- Sub WriteDebuffs /if (${DebugHeal}) /echo \atDEBUGHEALS WriteDebuffs Enter \agLine#: ${Macro.CurLine} /declare DebuffList string local /declare IAmDeBuffed int local ${Math.Calc[${Int[${Me.Poisoned.ID}]}+${Int[${Me.Diseased.ID}]}+${Int[${Me.Cursed.ID}]}+${Int[${Me.Corrupted.ID}]}+${Int[${Me.Mezzed.ID}]}]} /if (${IAmDeBuffed} && !${NeedCuring}) { /varset NeedCuring 1 /varset DebuffList ${IAmDeBuffed}|${Int[${Me.Poisoned.ID}]}|${Int[${Me.Diseased.ID}]}|${Int[${Me.Cursed.ID}]}|${Int[${Me.Corrupted.ID}]}|${Int[${Me.Mezzed.ID}]} /ini "KissAssist_Buffs.ini" "${Me.ID}" Debuffs "${DebuffList}" /delay 10 /if (${DebugHeal}) /echo \amDEBUGHEALS WriteDebuffs Writing debuffs to ini file \agLine#: ${Macro.CurLine} } /if (!${IAmDeBuffed} && ${NeedCuring}) { /varset NeedCuring 0 /varset DebuffList /ini "KissAssist_Buffs.ini" "${Me.ID}" Debuffs "${DebuffList}" /delay 10 /if (${DebugHeal}) /echo \amDEBUGHEALS WriteDebuffs Clearing debuffs from ini file \agLine#: ${Macro.CurLine} } /if (${DebugHeal}) /echo \atDEBUGHEALS WriteDebuffs Leave \agLine#: ${Macro.CurLine} /return | ---------------------------------------------------------------------------- | SUB: CheckCures | ---------------------------------------------------------------------------- Sub CheckCures /if (!${CuresOn}) /return /if (${Me.Invis} && !${AggroTargetID}) /return /if (${Medding} && ${MedCombat}) /return /if (${DebugHeal}) /echo \amDEBUGHEALS CheckCures Enter \agLine#: ${Macro.CurLine} /declare i int local /declare j int local /declare IniIDList string local ${Ini["KissAssist_Buffs.ini"]} /declare IniIDCount int local ${Math.Calc[${IniIDList.Count[|]}-1]} /declare IniDebuffCount string local 0 /declare IniDebuffList string local /declare CuretoCast string local /declare CTID int local /for i 1 to ${Cures.Size} /if (!${Cures[${i}].Length}) /continue /for j 1 to ${IniIDCount} /varset CuretoCast /varset IniDebuffCount ${Ini["KissAssist_Buffs.ini",${IniIDList.Arg[${j},|]},"Debuffs"]} /varset CTID ${Spawn[${IniIDList.Arg[${j},|]}].ID} /if (${IniDebuffCount.Arg[1,|]} && ${Spawn[${IniIDList.Arg[${j},|]}].ID} && ${Spawn[${IniIDList.Arg[${j},|]}].Distance}<100) { /if (${IniDebuffCount.Arg[1,|]} && ${Cures[${i}].Arg[2,|].Length}==0) { /varset CuretoCast ${Cures[${i}]} } else /if (${IniDebuffCount.Arg[2,|]}>0 && ${Cures[${i}].Arg[2,|].Equal[poison]}) { /varset CuretoCast ${Cures[${i}].Arg[1,|]} } else /if (${IniDebuffCount.Arg[3,|]}>0 && ${Cures[${i}].Arg[2,|].Equal[disease]}) { /varset CuretoCast ${Cures[${i}].Arg[1,|]} } else /if (${IniDebuffCount.Arg[4,|]}>0 && ${Cures[${i}].Arg[2,|].Equal[curse]}) { /varset CuretoCast ${Cures[${i}].Arg[1,|]} } else /if (${IniDebuffCount.Arg[5,|]}>0 && ${Cures[${i}].Arg[2,|].Equal[corruption]}) { /varset CuretoCast ${Cures[${i}].Arg[1,|]} } else /if (${IniDebuffCount.Arg[6,|]}>0 && ${Cures[${i}].Arg[2,|].Equal[mezzed]}) { /varset CuretoCast ${Cures[${i}].Arg[1,|]} } | Check cures for group component since they don't seem to work on out of group toons /if (${Spell[${CuretoCast}].TargetType.Find[group v]} && !${Spawn[id ${IniIDList.Arg[${j},|]} group].ID}) { /if (!${Defined[CureTimer${CTID}${i}]}) { /declare CureTimer${CTID}${i} timer outer 30s /if (${DebugHeal}) /echo \amDEBUGHEALS CheckCures /echo declare CureTimer${CTID}${i} \agLine#: ${Macro.CurLine} } else /if (!${CureTimer${CTID}${i}}) { /varset CureTimer${CTID}${i} 30s /if (${DebugHeal}) /echo \amDEBUGHEALS CheckCures /echo varset CureTimer${CTID}${i} \agLine#: ${Macro.CurLine} } /if (${DebugHeal} && !${CureTimer${CTID}${i}}) /echo CURING: >> ${Spawn[${IniIDList.Arg[${j},|]}].CleanName} << is not in your group and >> ${CuretoCast} << is a group spell. /continue } /if (${Me.SpellReady[${Spell[${CuretoCast}].RankName}]} || ${Me.AltAbilityReady[${CuretoCast}]} || ${Me.CombatAbilityReady[${Spell[${CuretoCast}].RankName}]} || ${Me.AbilityReady[${CuretoCast}]} || ${Me.ItemReady[${CuretoCast}]}) { /call CastWhat "${CuretoCast}" ${IniIDList.Arg[${j},|]} Cure 0 } /if (${Macro.Return.Equal[CAST_SUCCESS]}) { /call BroadCast ${IRCOn} ${EQBCOn} o "CURING: >> ${Spawn[${IniIDList.Arg[${j},|]}].CleanName} << with ${CuretoCast}" /delay 10 } } /next j /next i /if (${DebugHeal}) /echo \amDEBUGHEALS CheckCures Leave \agLine#: ${Macro.CurLine} /return
