• You've discovered RedGuides, an EverQuest multi-boxing and scripting community 🧙‍♀️⚙️. We want you to play several EQ characters at once, come join us and say hello! 👋

  • A TLP without truebox has thawed (Very Vanilla ready)
    Frostreaver

Problem - KA using wrong curespell

Status
Not open for further replies.

tms

Member
Joined
Dec 20, 2013
RedCents
1,400¢
According to the kiss settings thread you dont have to specify for what the cure spell is, he should decide automatically.

My config looks like :

Rich (BB code):
CuresOn=1
Cures1=Counteract Poison
Cures2=Counteract Disease
Cures3=NULL

First time now that the toon should cure an debuff http://everquest.allakhazam.com/db/spell.html?spell=340 and he spammed Counteract Poison over and over and over again, on one groupmember after another, while the tank got beaten down. After the tank reached 20% hps i had to abort the macro and take over.

this can be reproduced.
 
That is totally fucking wrong.
Kiss can not tell the type of cure a toon needs. It will cast the same spell if tashed, malo'd or diseased.
I don't which one of my KissAsistants put that in there.

It was meant just to be a quick cure all like Radiant cure and nothing more. I will change the help tonight.

Rich (BB code):
CuresOn=1
Cures1=Radiant Cure

It will check to cast Cures2 if if Cure1 is down but that's all.
 
From what I can tell. If you can get the cure counters and the type of cure on the cure spell, it might be possible to fine tune the routine a bit. Could add more than 3 cure spells as well. Will have to do a bit of testing later tonight.
 
From what I can tell. If you can get the cure counters and the type of cure on the cure spell, it might be possible to fine tune the routine a bit. Could add more than 3 cure spells as well. Will have to do a bit of testing later tonight.

MQ2Debuff .... should be able to utilize that to return detrimental effect type... just sucks to need to load another plugin to get that info...
 
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
 
Last edited:
Problem - KA using wrong curespell
Status
Not open for further replies.

Users who are viewing this thread

Back
Top
Cart