Kiss uses Mq2debuff. We just never coded it more than just using it as a very simple cure
well there you go then lol
i honestly never remembered it used mq2debuff because it was never utilized properly lol
all you really need then is to pull back the (poison/disease/curse/corruption) counters with it.. and setup a small filter framework for cure section to be able to specify debuff type of spell/aa you using.. and handle the logic accordingly. And bump the cures array to 5 max... if you too low level to get aa to cover all cures like radient cure.. and need to use individual spells.... at least until group cure all spells available to you by your level.
Rich (BB code):
CuresOn=1
Cures1=Counteract Poison|poison
Cures2=Counteract Disease|disease
Cures3=Remove Lesser Curse|curse
Cures4=Expunge Corruption|corruption
Cures5=NULL
Would you like me to setup the framework??? I missed thursday's meeting... but got the list of the work to be done.. so least i could do to help on the load.
Nevermind.. bored.. this should work.... gonna test it later if able.
Rich (BB code):
| ----------------------------------------------------------------------------
| SUB: CheckCures
| ----------------------------------------------------------------------------
Sub CheckCures
/if (!${CuresOn}) /return
/declare DebugCures int local 0
/declare i int local
/declare j int local
/declare Debuffed int local ${Math.Calc[${Debuff.Poisons}+${Debuff.Diseases}+${Debuff.Curses}+${Debuff.Corruptions}]}
/declare IniIDList string local ${Ini["KissAssist_Buffs.ini"]}
/declare IniIDCount int local ${Math.Calc[${IniIDList.Count[|]}-1]}
/declare IniDebuffCount int local 0
/declare IniDebuffList string local
/declare FullText string local 0
/declare 1stPart string local 0
/declare 2ndPart string local 0
/for i 1 to ${Cures.Size}
/if (!${Cures[${i}].Length}) /goto :NextCure
/for j 1 to ${IniIDCount}
/varset IniDebuffCount ${Ini["KissAssist_Buffs.ini",${IniIDList.Arg[${j},|]},"Debuffs"]}
/if (${IniDebuffCount} && ${Spawn[${IniIDList.Arg[${j},|]}].ID} && ${Spawn[${IniIDList.Arg[${j},|]}].Distance}<100) {
/call CastWhat "${Cures[${i}]}" ${IniIDList.Arg[${j},|]} Cure
/if (${Macro.Return.Equal[CAST_SUCCESS]}) {
/call BroadCast ${IRCOn} ${EQBCOn} o "Curing >> ${Spawn[${IniIDList.Arg[${j},|]}].CleanName} << with ${Cures[${i}]}"
}
}
/next j
/if (${Debuffed}) {
/if (${DebugCures}) /echo Pois:(${Debuff.Poisons})-Dis:(${Debuff.Diseases})-Curse:(${Debuff.Curses})-Corrup:(${Debuff.Corruptions})
/if (${Cures[${i}].Arg[2,|].Length}) {
/varset FullText ${Cures[${i}]}
/varset 1stPart ${Cures[${i}].Arg[1,|]}
/varset 2ndPart ${Cures[${i}].Arg[2,|]}
/if (${FullText.Arg[2,|].Equal[Poison]}) /varset 2ndPart Poison
/if (${FullText.Arg[2,|].Equal[Disease]}) /varset 2ndPart Disease
/if (${FullText.Arg[2,|].Equal[Curse]}) /varset 2ndPart Curse
/if (${FullText.Arg[2,|].Equal[Corruption]}) /varset 2ndPart Corruption
} else {
/varset 1stPart ${Cures[${i}]}
}
/if (${2ndPart.Length}) {
/if (${Debuff.Poisons} && ${2ndPart.Equal[Poison]}) {
/call CastWhat "${1stPart}" ${Me.ID} Cure
/if (${DebugCures}) /echo Casting type (${2ndPart})-(${1stPart}) | counter at (${Debuff.Poisoned}).
}
/if (${Debuff.Diseases} && ${2ndPart.Equal[Disease]}) {
/call CastWhat "${1stPart}" ${Me.ID} Cure
/if (${DebugCures}) /echo Casting type (${2ndPart})-(${1stPart}) | counter at (${Debuff.Diseased}).
}
/if (${Debuff.Curses} && ${2ndPart.Equal[Curse]}) {
/call CastWhat "${1stPart}" ${Me.ID} Cure
/if (${DebugCures}) /echo Casting type (${2ndPart})-(${1stPart}) | counter at (${Debuff.Cursed}).
}
/if (${Debuff.Corruptions} && ${2ndPart.Equal[Corruption]}) {
/call CastWhat "${1stPart}" ${Me.ID} Cure
/if (${DebugCures}) /echo Casting type (${2ndPart})-(${1stPart}) | counter at (${Debuff.Corruption}). /goto :FoundCureFilter
}
} else {
/call CastWhat "${1stPart}" ${Me.ID} Cure
/if (${DebugCures}) /echo Casting cure for type (ANY) - (${1stPart}).
}
/if (${Macro.Return.Equal[CAST_SUCCESS]}) {
/call BroadCast ${IRCOn} ${EQBCOn} o "Curing with ${1stPart}"
}
}
:NextCure
/next i
/return
Basicaly all i did was add the declares for the text checking... check if filter existed and defined 4 filter types... and change it to only cast that spell in the array if filter type is defined in config for cure spell.. and i actually have that detrimental effect on me.... else... it will just cast normally.
The only use for this change is for LOW level healing classes that do not yet have the ability to cast a group spells that removed detrimental effects or can not yet purchase the Radiant Cure aa ....
Since the logic is to go through all defined CURE spells... then if you have a filter defined for each of the detrimental types... it should work using the filter format... else... it will just cast the cure spell normally... and cycle through the rest.
Obviously the following change would also need to be made to expand the array of cures.
Rich (BB code):
| ************************* Cures ***************************************|
/call LoadIni Cures CuresOn int 0
/declare Cures[5] string outer
/call LoadIni Cures Cures string NULL Cures
Besides that... it has no real use...
I have no idea at this point if it will get incorporated into oficial KA release... but this altered sub routine will allow for specific spell usage for existing detrimental effect type... as well as handle the overall "Radiant Cure" cure method to expunge all detrimental effects handles by the aa.
I'm sure i can convince lizardboy to update the sub with this expansion... but I don't make the rules.... so considering it FIXED, because the solution to your specific problem is available... but just might not be officially incorporated.
- - - Updated - - -
--- UPDATE ---
Tested, working correctly....
Notified Maskoi and Ctaylor22.. will probably be rolled out in next KA update... don't see this going in as an emergency patch anytime soon.... but should be part of next revision release.
DOCUMENTATION CORRECTED TO REFLECT CORRECT CURRENT AND FUTURE SYNTAX