- Joined
- Jul 9, 2015
- RedCents
- 1,978¢
Hi Guys,
I thought it might be helpful to myself and others if we could compile a list of how the conditions work and are broken down to help facilitate people creating conditions for KissAssist 10.x.
Follow this LINK to gain an overview and some more examples for the conditions.
I've also read a post by EQmule that shows an undocumented feature, in your kissassist ini if you set the ConditionsOn=0 to ConditionsOn=2, this will incorporate the conditions all into your main kissassist_SERVERNAME_NAME.ini, eliminating the need for the KissAssist_SERVERNAME_NAME_Conditions.ini file
I'll open up with a few examples and hopefully the correct examples and will finish with a few requests for further examples.
Some basic's I hope I've got right first.
${} = Do if whats between the brackets is TRUE.
!${} = Do if whats between the brackets is FALSE ( the ! (NOT) basically flips the results...false becomes true, etc ).
&& = Do only if whats on the left AND right are TRUE.
|| = Do only if whats on the left OR right are true.
Conditions work in the following basic way:
Cast {Buffs1=YourSpellOrAbility} if BuffsCond1= {YourConditionsHere} are met
If your trying to make your own conditions it sometimes makes it easier if you write out what you want to do, then once you know what you want to do, convert it into the code needed to work in KissAssist
Examples:
This is for the Necromancer mana buff, it checks to see if you have the enchanter buff Voice of Precognition on you already and should not cast Forgottenside if you do.
Breaking it down abit:
!$(Don't cast BuffsX=){Target.Buff(check your target for a buff)[[Voice of Precognition(Buff to look for)].ID (.ID is to get the ID for the buff/spell/AA)
This is for using Banestrike against a mob.
${Me.AltAbilityReady[Banestrike]} (checks to see of the AA ability Banestrike is ready) && ${Target.PctHPs} > 20 (If the Targets Hitpoints are greater than 20%) (if both conditions are TRUE it will cast Banestrike)
This is for the Shaman DoT/Malo spell.
${Int[${Target.ID}]} && ${Int[${Target.Buff[Livio's Affliction].ID}]}==0
Ok I think the above condition works in this way: ${Int[${Target.ID}]} (get the ID number for the target) && (AND) ${Int[${Target.Buff[Livio's Affliction].ID}]} (Check the Target (aka ID number) and see if it already has Livio's Affliction on the target) ==0 (if it doesn't already have the buff it will return a value of 0 and so cast the spell)
This is for classes that can cast the Undead slow AA.
${Target.Body.Name.Equal[Undead]} (checks the target is undead)
With the {Target.Body.Name.Equal[Undead]} you can change the [Undead] to the type you want, ie Undead, Plant, humanoid etc.
This checks to see if you have 70% or greater of the aggro {Me.PctAggro} > 70, and also checks your NOT in aggromode ie the Tank {Melee.AggroMode}
This example provided by william12 shows how to setup DPS/DPSCond if you want a cascading effect in regards to casting your spell's/abilities in set order, you'd generally do this if to benefit from a specific way that the spells/abilities need to be cast, the addition of .RankName} is done in order for this to work correctly. ${Me.Song[BUFFNAME].ID} checks your song window for a buff rather than the normal buff area which can be done with ${Me.Buff[BUFFNAME].ID}
kaen01 Posted this code, it's for determining how many pets are near a target, in this case it determines if there are 9 or more within melee radius and returns a true value if that is a TRUE, so you can use this as a condition for determining if the mage spell series Bolt of Many fires (the one that needs lots of pets there to boost it's damage)
This checks to see if you are the mobs target, if your not it will trigger, useful for agro abilities on tanks.
Any further examples people can think of so I can expand this post and give the novices amongst us the ability to have a go at writing conditions for KissAssist 10.x.
If you can provide the example and brief breakdown of how it works, it will help other to work the examples backwards and change them to fit what ever class they want.
Kind Regards
Vorpal!
I thought it might be helpful to myself and others if we could compile a list of how the conditions work and are broken down to help facilitate people creating conditions for KissAssist 10.x.
Follow this LINK to gain an overview and some more examples for the conditions.
I've also read a post by EQmule that shows an undocumented feature, in your kissassist ini if you set the ConditionsOn=0 to ConditionsOn=2, this will incorporate the conditions all into your main kissassist_SERVERNAME_NAME.ini, eliminating the need for the KissAssist_SERVERNAME_NAME_Conditions.ini file
I'll open up with a few examples and hopefully the correct examples and will finish with a few requests for further examples.
Some basic's I hope I've got right first.
${} = Do if whats between the brackets is TRUE.
!${} = Do if whats between the brackets is FALSE ( the ! (NOT) basically flips the results...false becomes true, etc ).
&& = Do only if whats on the left AND right are TRUE.
|| = Do only if whats on the left OR right are true.
Conditions work in the following basic way:
Cast {Buffs1=YourSpellOrAbility} if BuffsCond1= {YourConditionsHere} are met
If your trying to make your own conditions it sometimes makes it easier if you write out what you want to do, then once you know what you want to do, convert it into the code needed to work in KissAssist
Examples:
Rich (BB code):
Buffs1=Forgottenside|Me
BuffsCond1=!${Target.Buff[Voice of Precognition].ID}
This is for the Necromancer mana buff, it checks to see if you have the enchanter buff Voice of Precognition on you already and should not cast Forgottenside if you do.
Breaking it down abit:
!$(Don't cast BuffsX=){Target.Buff(check your target for a buff)[[Voice of Precognition(Buff to look for)].ID (.ID is to get the ID for the buff/spell/AA)
Rich (BB code):
DPS2=Banestrike|96
DPSCond2=${Me.AltAbilityReady[Banestrike]} && ${Target.PctHPs} > 20
This is for using Banestrike against a mob.
${Me.AltAbilityReady[Banestrike]} (checks to see of the AA ability Banestrike is ready) && ${Target.PctHPs} > 20 (If the Targets Hitpoints are greater than 20%) (if both conditions are TRUE it will cast Banestrike)
Rich (BB code):
DPS4=Livio's Malosenia|96
DPSCond4=${Int[${Target.ID}]} && ${Int[${Target.Buff[Livio's Affliction].ID}]}==0
This is for the Shaman DoT/Malo spell.
${Int[${Target.ID}]} && ${Int[${Target.Buff[Livio's Affliction].ID}]}==0
Ok I think the above condition works in this way: ${Int[${Target.ID}]} (get the ID number for the target) && (AND) ${Int[${Target.Buff[Livio's Affliction].ID}]} (Check the Target (aka ID number) and see if it already has Livio's Affliction on the target) ==0 (if it doesn't already have the buff it will return a value of 0 and so cast the spell)
Rich (BB code):
DPS1=Helix of the Undying|99
DPSCond1=${Target.Body.Name.Equal[Undead]}
This is for classes that can cast the Undead slow AA.
${Target.Body.Name.Equal[Undead]} (checks the target is undead)
With the {Target.Body.Name.Equal[Undead]} you can change the [Undead] to the type you want, ie Undead, Plant, humanoid etc.
Rich (BB code):
Aggro1=Jolting Cut Kicks
AggroCond1=${Me.PctAggro} > 70 && !${Melee.AggroMode}
This checks to see if you have 70% or greater of the aggro {Me.PctAggro} > 70, and also checks your NOT in aggromode ie the Tank {Melee.AggroMode}
Rich (BB code):
DPSC2=Dichotomic Fury|99
DPSCond2=!${Me.Song[Ruaabri's Fury].ID}
DPSC16=Krenk's Feralgia|99
DPSCond16=!${Me.SpellReady[Dichotomic Fury]}
DPSC17=Visoracius' Maelstrom|99
DPSCond17=!${Me.SpellReady[Dichotomic Fury]} && !${Me.SpellReady[${Spell[Krenk's Feralgia].RankName}]}
DPSC18=Frozen Miasma|99
DPSCond18=!${Me.SpellReady[Dichotomic Fury]} && !${Me.SpellReady[${Spell[Visoracius' Maelstrom].RankName}]} && !${Me.SpellReady[${Spell[Krenk's Feralgia].RankName}]}
DPSC19=Kromtus Lance|99
DPSCond19=!${Me.SpellReady[Dichotomic Fury]} && !${Me.SpellReady[${Spell[Visoracius' Maelstrom].RankName}]} && !${Me.SpellReady[${Spell[Frozen Miasma].RankName}]} && !${Me.SpellReady[${Spell[Krenk's Feralgia].RankName}]}
DPSC20=Krieg's Bite|99
DPSCond20=!${Me.SpellReady[Dichotomic Fury]} && !${Me.SpellReady[${Spell[Visoracius' Maelstrom].RankName}]} && !${Me.SpellReady[${Spell[Frozen Miasma].RankName}]} && !${Me.SpellReady[${Spell[Kromtus Lance].RankName}]} && !${Me.SpellReady[${Spell[Krenk's Feralgia].RankName}]}
This example provided by william12 shows how to setup DPS/DPSCond if you want a cascading effect in regards to casting your spell's/abilities in set order, you'd generally do this if to benefit from a specific way that the spells/abilities need to be cast, the addition of .RankName} is done in order for this to work correctly. ${Me.Song[BUFFNAME].ID} checks your song window for a buff rather than the normal buff area which can be done with ${Me.Buff[BUFFNAME].ID}
Rich (BB code):
${Spawn[${Target.ID}].NearestSpawn[9,pcpet radius 35].ID}
kaen01 Posted this code, it's for determining how many pets are near a target, in this case it determines if there are 9 or more within melee radius and returns a true value if that is a TRUE, so you can use this as a condition for determining if the mage spell series Bolt of Many fires (the one that needs lots of pets there to boost it's damage)
Code:
!${Me.TargetOfTarget.CleanName.Equal[${Me.CleanName}]}
Any further examples people can think of so I can expand this post and give the novices amongst us the ability to have a go at writing conditions for KissAssist 10.x.
If you can provide the example and brief breakdown of how it works, it will help other to work the examples backwards and change them to fit what ever class they want.
Kind Regards
Vorpal!
Last edited:


care to share!