This macro incorporates the use of IF statements that can be stored in an ini file. This macro requires a custom plugin that can be used with any macro. Feel free to use in your custom macros. See below.
Deprecated. Please go here for the Newest Version and Instructions: http://www.redguides.com/community/showthread.php/31812-KissAssist-gets-Holyshits-Updated
Warning!! The author of these mods assumes you have a good understanding of MQ2 macro syntax and MQ2 TLO's. If you don't understand what I am referring too.
Go here first: http://www.macroquest2.com/includes/wassup/manual.php
Go here next: http://macroquest2.com/wiki/index.php/Beginners_Guide_to_TLOs_and_MQ2DataVars
With that out of the way. This macro requires an additional Plugin: http://www.redguides.com/community/showthread.php/31623-Load-Arrays-with-If-statements
Here is an Example of my mages DPS section with included if statements:
KissAssist_CharterName.ini
rgma_CharacterName.ini
Supported If Statement formats:
DPSIf1=${If[${Target.ID}, 1, 0]}
DPSIf1=/If (${Target.ID})**
DPSIf1=${Target.ID}**
** The Last 2 statements above will be converted to the first statements format. All statements end up in the ${If[Evaluation, true, false]} format
Currently supported Arrays:
BuffsIf (Only supports the Group.Member[${j}] level check)
GoMSpellIf
DPSIf
HealsIf (Taps and Nuke Heals Use: Spawn[${MyTargetID}], Normal Single Heals use: Spawn[${SHealThem}] Group Heals: use the ${Me} TLO, but you can be creative here.
You can also use any of the /declared outer variables in the macro as well as any of the local ones in the current routine. Just keep that in mind.
The Base logic in the macro has not changed, so if you run this macro before creating any IF statements, In theory it should run the same as the Vanilla version of KissAssist.
Keep in mind that your if statements will not over ride the existing macro logic, but only add to the logic.
Example:
You want to buff just the Rogues and the rangers in your group with a specific buff.
Buffs1=SomeMeleeBuff
BuffsIf1=${If[${Select[${Group.Member[${j}].Class.ShortName},ROG,RNG]},1,0]}
Instructions for getting started:
1. Download the macro and copy it into your MQ2 macro folder. Run the macro /mac kissassist_rgma.mac assist, or whatever you use for parameters. Let the macro run for a bit then /end the macro.
2. Now go to your macro folder and look for the new ini file(s). There should be a rgma_CharacterName.ini file, for each character you ran the macro on. Now under the section that was created([rgma_kissassist]) start adding your if statements.
3. Open your kissassist_Charactername.ini file and change RGMAOn=1 in the General section.
Currently Supported:
BuffsIf1 - BuffsIf25
GoMSpellIf1 - GoMSpellIf2
DPSIf1 - DPSIf15
HealsIf1 - HealsIf5 or HealsIf15 depending on your character type. Check your kissassist.ini file.
If you need more than the default, you will just need to modify the macro and increase the index to what you need. The limit is based on the number of elements(size) in the array.
Under construction. So more to come.
Download Here: (Updated 4/4/2015) 8.1.5
Deprecated. Please go here for the Newest Version and Instructions: http://www.redguides.com/community/showthread.php/31812-KissAssist-gets-Holyshits-Updated
Warning!! The author of these mods assumes you have a good understanding of MQ2 macro syntax and MQ2 TLO's. If you don't understand what I am referring too.
Go here first: http://www.macroquest2.com/includes/wassup/manual.php
Go here next: http://macroquest2.com/wiki/index.php/Beginners_Guide_to_TLOs_and_MQ2DataVars
With that out of the way. This macro requires an additional Plugin: http://www.redguides.com/community/showthread.php/31623-Load-Arrays-with-If-statements
Here is an Example of my mages DPS section with included if statements:
KissAssist_CharterName.ini
Rich (BB code):
[GoM]
GoMSHelp=Format - Spell|Target, MA Me or Mob, i.e. Rampaging Servant Rk. II|Mob
GoMSpell1=Relentless Servant
GoMSpell2=Spear of Blistersteel
[DPS]
DPSOn=1
DPSSkip=1
DPSInterval=5
DPS1=Malosenia|99
DPS2=Frenzied Burnout|98
DPS3=Thaumatize Pet|96
DPS4=Banestrike|95
DPS5=Fickle Magma|93
DPS6=Spear of Blistersteel|92
DPS7=Rain of Blistersteel|92
DPS8=Bolt of Molten Magma|90
DPS9=Rain of Scythes|90
DPS10=NULL
DPS11=NULL
DPS12=NULL
DPS13=NULL
DPS14=NULL
DPS15=NULL
rgma_CharacterName.ini
Rich (BB code):
[mykissassist_rgma]
; Check to malo
DPSIf1=${If[!${Target.Malod.ID} && !${Me.Song[Chromatic Haze].ID},1,0]}
; For Pet Frenzied Burnout
DPSIf2=${If[!${Me.Song[Chromatic Haze].ID} && ${Target.Named},1,0]}
; For Thaumatize Pet
DPSIf3=${If[!${Me.Song[Chromatic Haze].ID},1,0]}
; Check Banestrike
DPSIf4=${If[!${Me.Song[Chromatic Haze].ID},1,0]}
: Check Fickle Magma
DPSIf5=${If[!${Me.Song[Chromatic Haze].ID} && !${Me.Song[Flames of Power].ID},1,0]}
; Fire Nuke 1
DPSIf6=${If[(${Target.PctHPs}>20 || ${Target.Named}) && (${Me.XTarget[${XTSlot2}].ID} || ${Me.Song[Chromatic Haze].ID}) || ${Target.Distance}<30,1,0]}
; Rain Fire
DPSIf7=${If[(${Target.PctHPs}>20 || ${Target.Named}) && !${Me.XTarget[${XTSlot2}].ID} && !${Me.Song[Chromatic Haze].ID} && ${Target.Distance}>=30,1,0]}
; Fire Nuke 2
DPSIf8=${If[(${Target.PctHPs}>10 || ${Target.Named}) && (${Me.XTarget[${XTSlot2}].ID} || ${Me.Song[Chromatic Haze].ID}) || ${Target.Distance}<30,1,0]}
; Rain Steal
DPSIf9=${If[(${Target.PctHPs}>10 || ${Target.Named}) && !${Me.XTarget[${XTSlot2}].ID} && !${Me.Song[Chromatic Haze].ID} && ${Target.Distance}>=30,1,0]}
; GOM Spells
GoMSpellIf1=${If[!${Me.Song[Chromatic Haze].ID} && ${Target.PctHPs}>30,1,0]}
GoMSpellIf2=${If[1,1,0]}
;
Supported If Statement formats:
DPSIf1=${If[${Target.ID}, 1, 0]}
DPSIf1=/If (${Target.ID})**
DPSIf1=${Target.ID}**
** The Last 2 statements above will be converted to the first statements format. All statements end up in the ${If[Evaluation, true, false]} format
Currently supported Arrays:
BuffsIf (Only supports the Group.Member[${j}] level check)
GoMSpellIf
DPSIf
HealsIf (Taps and Nuke Heals Use: Spawn[${MyTargetID}], Normal Single Heals use: Spawn[${SHealThem}] Group Heals: use the ${Me} TLO, but you can be creative here.
You can also use any of the /declared outer variables in the macro as well as any of the local ones in the current routine. Just keep that in mind.
The Base logic in the macro has not changed, so if you run this macro before creating any IF statements, In theory it should run the same as the Vanilla version of KissAssist.
Keep in mind that your if statements will not over ride the existing macro logic, but only add to the logic.
Example:
You want to buff just the Rogues and the rangers in your group with a specific buff.
Buffs1=SomeMeleeBuff
BuffsIf1=${If[${Select[${Group.Member[${j}].Class.ShortName},ROG,RNG]},1,0]}
Instructions for getting started:
1. Download the macro and copy it into your MQ2 macro folder. Run the macro /mac kissassist_rgma.mac assist, or whatever you use for parameters. Let the macro run for a bit then /end the macro.
2. Now go to your macro folder and look for the new ini file(s). There should be a rgma_CharacterName.ini file, for each character you ran the macro on. Now under the section that was created([rgma_kissassist]) start adding your if statements.
3. Open your kissassist_Charactername.ini file and change RGMAOn=1 in the General section.
Currently Supported:
BuffsIf1 - BuffsIf25
GoMSpellIf1 - GoMSpellIf2
DPSIf1 - DPSIf15
HealsIf1 - HealsIf5 or HealsIf15 depending on your character type. Check your kissassist.ini file.
If you need more than the default, you will just need to modify the macro and increase the index to what you need. The limit is based on the number of elements(size) in the array.
Under construction. So more to come.
Download Here: (Updated 4/4/2015) 8.1.5
Attachments
Last edited:

