• 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

KissAssist gets Holyshits Updated

Joined
Mar 21, 2014
RedCents
27,491¢
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.

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/31813-If-Statement-Plugin


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

Ifs_CharacterName.ini
Rich (BB code):
[kissassist]
; Check to malo
DPS1=${If[!${Target.Malod.ID} && !${Me.Song[Chromatic Haze].ID},1,0]}
; For Pet Frenzied Burnout
DPS2=${If[!${Me.Song[Chromatic Haze].ID} && ${Target.Named},1,0]}
; For Thaumatize Pet
DPS3=${If[!${Me.Song[Chromatic Haze].ID},1,0]}
; Check Banestrike
DPS4=${If[!${Me.Song[Chromatic Haze].ID},1,0]}
: Check Fickle Magma
DPS5=${If[!${Me.Song[Chromatic Haze].ID} && !${Me.Song[Flames of Power].ID},1,0]}
; Fire Nuke 1
DPS6=${If[(${Target.PctHPs}>20 || ${Target.Named}) && (${Me.XTarget[${XTSlot2}].ID} || ${Me.Song[Chromatic Haze].ID}) || ${Target.Distance}<30,1,0]}
; Rain Fire
DPS7=${If[(${Target.PctHPs}>20 || ${Target.Named}) && !${Me.XTarget[${XTSlot2}].ID} && !${Me.Song[Chromatic Haze].ID} && ${Target.Distance}>=30,1,0]}
; Fire Nuke 2
DPS8=${If[(${Target.PctHPs}>10 || ${Target.Named}) && (${Me.XTarget[${XTSlot2}].ID} || ${Me.Song[Chromatic Haze].ID}) || ${Target.Distance}<30,1,0]}
; Rain Steal
DPS9=${If[(${Target.PctHPs}>10 || ${Target.Named}) && !${Me.XTarget[${XTSlot2}].ID} && !${Me.Song[Chromatic Haze].ID} && ${Target.Distance}>=30,1,0]}
; GOM Spells
GoMSpell1=${If[!${Me.Song[Chromatic Haze].ID} && ${Target.PctHPs}>30,1,0]}
GoMSpell2=${If[1,1,0]}
;

Supported If Statement formats:
DPS1=${If[${Target.ID}, 1, 0]}


Currently supported Arrays:
Buffs (Only supports the Group.Member[${j}] level check)
GoMSpell
DPS
Heals (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

Buffs1=${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. Open your kissassist_Charactername.ini file and change IfsOn=1 in the General section. Run the macro again to create the Ifs_CharacterName.ini file. /end the macro.

3. Now go to your macro folder and look for the new ini file(s). There should be a Ifs_CharacterName.ini file, for each character you ran the macro on. Now under the section that was created([kissassist]) start adding your if statements.


Currently Supported:
Buffs1 - Buffs25
GoMSpell1 - GoMSpell2
DPS1 - DPS15
Heals1 - Heals5 or Heals15 depending on your character type. Check your kissassist.ini file.
DPSBackoff

Things to Consider when creating ifs for this Macro:

You don't need to include anything in the If Statement that the KissAssist Core code already privides:

Things you may not be aware of.

Routine CastWhat Provides the Following Checks:

1. /if (${Me.CombatAbility[${castWhat}]} && !${Me.CombatAbilityTimer[${castWhat}]} && ${Me.CombatAbilityReady[${castWhat}]})
/if ((!${Spell[${castWhat}].Duration.TotalSeconds}||!${Melee.DiscID})
/if (${Spell[castWhat].EnduranceCost}>${Me.Endurance})​

2. /if (${FindItem[=${castWhat}].ID} && ${FindItem[${castWhat}].Timer}==0)

3. /if ((${Me.AltAbility[${castWhat}]} || ${castWhat.Find[Banestrike]} && !${Banestrike.Find[|${Target.Race}|]} && ${Spawn[${MyTargetID}].Distance3D}<70 && ${CombatStart}) && ${Me.AltAbilityReady[${castWhat}]} && ${castWhat.NotEqual[twincast]} && ${Me.AltAbility[${castWhat}].Type}!=5 )

4. /if (${Me.Book[${castWhat}]} && ${Spell[${castWhat}].Mana}<=${Me.CurrentMana})

What this provides:

1. Combat Ability Checks:
Do I have the Ability? Is the timer of the ability zero and is the ability ready.
Is the Ability Duration zero or no other Ability active.
Do I have enough endurance to activate this ability?​

2. Cast Item Checks:
Do I have the Item and is the item ready to use?​

3. Alternate Ability Checks:
Do I have the Ability and is the Ability Ready.(Just ignore the other stuff)​

4. Spell Checks:
Do I have the spell in my book and do I have enough mana to cast the spell?​

====================================================================================================

Routine CombatCast Provides the Following Checks:

1. /if (${Spawn[${MyTargetID}].Type.Equal[Corpse]})

2. /if (!${Spawn[${MyTargetID}].ID})

3. /if (${Target.Mezzed.ID} && ${MainAssist.NotEqual[${Me}]} && ${Spell[${DPS[${i}].Arg[1,|]}].Category.NotEqual[Utility Detrimental]}) {

4. /if (${Target.PctHPs}>${DPSAt} && ${DPSOn}==1)

What this Provides: Do NOT do this If?

1. Your target is a corpse.

2. Your target has disappeared.

3. Your Target is Mezzed and your not the Main assist and what you are about to cast/do will wake the mob.

4. Your Targets HPs are still above the designated engage level.

====================================================================================================

Made a few changes to help better control heals and a few other changes. Can now cast Promised line of heals ahead of time.

Promis Heal If Example:

Rich (BB code):
Heals2=${If[!${Target.Buff[Promised Reformation].ID} && ${AggroTargetID} && ${Spawn[id ${AggroTargetID}].Distance}<300,1,0]}

This will allow casting the promis heal on the target if a mob is on Xtarget and within 300 feet of the caster.

What is included in this Version of Kissassist that's not in the generic Kissassist?
Well, other than the obvious, I have listed the differences below:
  1. Added MobsPullerToIgnore to the kissassist_info.ini file allowing you to define the mobs you want your puller to ignore when pulling.
  2. Added PullOnReturn to the Kissassist_CharacterName.ini file. Default=0. This flag changes what the puller will do, when returning to camp, after failing to pull because, the puller moves out of range. Once the puller moves back into range the Puller will start checking for a mob to pull as they run back to camp. If a mob is found the puller will be diverted to the new mob to pull before returning to camp.
  3. Added Run/Walk Toggle when Returning back to camp when mobs get to far away from puller.


Under construction. So more to come.

Download Here: (Updated 1/30/2016) 8.5.1
(Updated 10/10/2015) 8.4.1
 

Attachments

Last edited:
Quick ini i made for a wizard. It's not done but something for others to try.

Rich (BB code):
[DPS]
DPSOn=1
DPSSkip=3
DPSInterval=2
DPS1=Prolonged Destruction|98
DPS2=Silent Casting|98
DPS3=Fundament: Second Spire of Arcanum|98
DPS4=Improved Twincast|98
DPS5=Fury of Ro|98
DPS6=Arcane Destruction|98
DPS7=Claw of the Flameweaver|98
DPS8=Force of Will|98
DPS9=Ethereal Fuse|98
DPS10=Ethereal Skyblaze|98
DPS11=Force of Flame|98
DPS12=Ethereal Rimeblast|98
DPS13=Force of Ice|98
DPS14=NULL
DPS15=NULL

Rich (BB code):
[kissassist]
; Prolonged Destruction
DPS1=${If[${Me.XTarget}>3 && ${SpawnCount[npc radius 50 zradius 50]}>2 && !${Me.Song[Arcane Destruction].ID} && ${Me.AltAbilityReady[Prolonged Destruction]},1,0]}
; Silent Casting
DPS2=${If[${Me.Song[Prolonged Destruction].ID} && ${Me.AltAbilityReady[Silent Casting]},1,0]}
; Second Spire
DPS3=${If[${Me.Song[Prolonged Destruction].ID} && ${Me.AltAbilityReady[Fundament: Second Spire of Arcanum]},1,0]}
; Improved Twincast
DPS4=${If[${Me.Song[Prolonged Destruction].ID} && !${Me.Buff[Twincast].ID} && ${Me.AltAbilityReady[Improved Twincast]},1,0]}
; Fury of Ro
DPS5=${If[${Me.Song[Prolonged Destruction].ID} && ${Me.AltAbilityReady[Fury of Ro]},1,0]}
; Arcane Destruction
DPS6=${If[!${Me.AltAbilityReady[Prolonged Destruction]} && ${Me.XTarget}>2 && !${Me.Song[Prolonged Destruction].ID} && ${Me.AltAbilityReady[Arcane Destruction]},1,0]}
; Claw Check
DPS7=${If[${Me.SpellReady[Claw of the Flameweaver]},1,0]}
; Force of Will
DPS8=${If[${Me.AltAbilityReady[Force of Will]},1,0]}
; Ethereal Fuse Check
DPS9=${If[${Me.SpellReady[Ethereal Fuse]} && !${Me.SpellReady[Claw of the Flameweaver]},1,0]}
; Ethereal Skyblaze Check
DPS10=${If[${Me.SpellReady[Ethereal Skyblaze]} && !${Me.SpellReady[Ethereal Fuse]} && !${Me.SpellReady[Claw of the Flameweaver]},1,0]}
; Force of Flame
DPS11=${If[!${Me.AltAbilityReady[Force of Will]} && ${Me.AltAbilityReady[Force of Flame]},1,0]}
; Ethereal Rimeblast Check
DPS12=${If[${Me.SpellReady[Ethereal Rimeblast]} && !${Me.SpellReady[Ethereal Skyblaze]} && !${Me.SpellReady[Ethereal Fuse]} && !${Me.SpellReady[Claw of the Flameweaver]},1,0]}
; Force of Ice
DPS13=${If[!${Me.AltAbilityReady[Force of Will]} && !${Me.AltAbilityReady[Force of Flame]} && ${Me.AltAbilityReady[Force of Ice]},1,0]}

I have a way more complex one but it will take some time to write up and test.
 
This is probably the single most powerful macro I've ever used :) Once you setup the ifs for each class you get everything that kiss does great plus amazing dps on mages, wizards, necros. Even enchanters.
 
Think I need to be in a "special" class...

I saved the macro as kissif.mac in my macro directory, I ran /mac kissif assist and it starts and runs but never creats the inf_playername.ini even after 5 minutes and /end
It does not seem to be reading the wiz if statements or I read them wrong, I have a 105 wiz with max AAs and max rank II spells to test this on if you want to use me as a genie pig!
 
Think I need to be in a "special" class...

I saved the macro as kissif.mac in my macro directory, I ran /mac kissif assist and it starts and runs but never creats the inf_playername.ini even after 5 minutes and /end
It does not seem to be reading the wiz if statements or I read them wrong, I have a 105 wiz with max AAs and max rank II spells to test this on if you want to use me as a genie pig!

Did you load plugin mq2ifs ?

The if ini would be named Ifs_charname.ini Also in your kissassist_charname.ini you need to have IfsOn=1
 
ahh the plugin, will grab that one, any chance you can pm me your current wiz one with all the goodies to test?
 
Razkle, make sure in your ifs ini file that you create the section correctly. In your case based on what you posted above your section should be [kissif]. then all your ifs statements should be listed under that section.
 
(COUGH) ... Where is the KA if's mac for v8.2.3 ????

Lets get cracking slacker!.. lol

This is your special project.... so keep it updated.. before I hurt you... (smile )
 
LOL,

I normally let KISS get used in production for a few weeks before I release the updated version to the public. Normally after every new release of KISS there are a few minor issues. Like Maskoi using the wrong core for the update? Know where I am coming from.

I will work on updating this this week.

Thanks for the reminder.
 
And the world is thankful that there is/was only one! ONE bad French actor doing a terrible Scottish accent. At least the Spaniard had a good brough.
 
Oh you mean the welsh actor playing a Spainard.
 
Last edited:
Applied the 8.2.4 patch to your 8.2.3 KA ifs bubba.. while i was at it.

Corrected both issues resolved in 8.2.4 in your variant.
 
Last edited:
Cough,

Updated your 8.2.4 variant with KA patch added 06-21-2015 to resolve healing issue with group members with similar names.

- - - Updated - - -

Cough,

Updated your 8.2.4 variant with KA patch added 06-24-2015 to resolve bard song casting issue.. se KA notes for patch details.
 
Cough,

Updated your 8.2.4 variant to 8.2.6 with KA patch added 07-11-2015 see KA notes for patch details.

Get off your lazy ass and keep up with the changes..... lol

Lucky your my friend and i have the time to update your variants!.... (hugs bro)
 
Will update for 8.3.0 after this weekend.

When the issues with 8.3.0 are fixed I will post the update.
 
Last edited:
send me your ini file with your if statements.

Most likely you don't have a section in the ifs ini file named the same as the macro.
 
thats the thing, it's not making the ifs ini file, i have the plugin loaded, running the macro and nada...any other plugin needed
?
 
OK. Check your kissassist_charactername.ini file and see if the IfsOn variable was added to the [general] section. if it is there make sure it is set to 1.
 
yes IfsOn=1.. still no Ifs_toonname file...I must be doing something wrong. windows 10 shouldn't have anything to do with it should it?
 
I don't know about windows 10. Make sure the MQ2Ifs plugin is loaded. Use the /ifdebug command to turn on messaging in the plugin. Now run the macro and see if you get any messages.
 
Ok. Then it is working, you just need to find where the ini file is being created. Try searching from windows explorer for ifs_*.ini. Search the whole computer.
 
It may be an issue with windows 10 or try one more thing. Go to your macros directory and right click on the macro and select properties. Copy and paste the Location, maybe there is something about the location path. The plugin uses the macros directory with in your macroquest directory.
 
I give up I'm a tard, tried both suggestions on 2 pc's same result, no ini populated... anyone got 1 for 105 mage/necro to share?
 
It probably has more to do with the new system lib's provided by windows 10. I would do what Williams12 suggested and just go create the ifs_CharacterName.ini file. Then add the [kissassist] section. Just for testing purposes cut and paste the Following into your new ini file.

Rich (BB code):
DPS1=${If[${Me.XTarget}>3 && ${SpawnCount[npc radius 50 zradius 50]}>2 && !${Me.Song[Arcane Destruction].ID} && ${Me.AltAbilityReady[Prolonged Destruction]},1,0]}
DPS2=${If[${Me.Song[Prolonged Destruction].ID} && ${Me.AltAbilityReady[Silent Casting]},1,0]}
DPS3=${If[${Me.Song[Prolonged Destruction].ID} && ${Me.AltAbilityReady[Fundament: Second Spire of Arcanum]},1,0]}
DPS4=${If[${Me.Song[Prolonged Destruction].ID} && !${Me.Buff[Twincast].ID} && ${Me.AltAbilityReady[Improved Twincast]},1,0]}
DPS5=${If[${Me.Song[Prolonged Destruction].ID} && ${Me.AltAbilityReady[Fury of Ro]},1,0]}
DPS6=${If[!${Me.AltAbilityReady[Prolonged Destruction]} && ${Me.XTarget}>2 && !${Me.Song[Prolonged Destruction].ID} && ${Me.AltAbilityReady[Arcane Destruction]},1,0]}
DPS7=${If[${Me.SpellReady[Claw of the Flameweaver]},1,0]}
DPS8=${If[${Me.AltAbilityReady[Force of Will]},1,0]}
DPS9=${If[${Me.SpellReady[Ethereal Fuse]} && !${Me.SpellReady[Claw of the Flameweaver]},1,0]}
DPS10=${If[${Me.SpellReady[Ethereal Skyblaze]} && !${Me.SpellReady[Ethereal Fuse]} && !${Me.SpellReady[Claw of the Flameweaver]},1,0]}
DPS11=${If[!${Me.AltAbilityReady[Force of Will]} && ${Me.AltAbilityReady[Force of Flame]},1,0]}
DPS12=${If[${Me.SpellReady[Ethereal Rimeblast]} && !${Me.SpellReady[Ethereal Skyblaze]} && !${Me.SpellReady[Ethereal Fuse]} && !${Me.SpellReady[Claw of the Flameweaver]},1,0]}
DPS13=${If[!${Me.AltAbilityReady[Force of Will]} && !${Me.AltAbilityReady[Force of Flame]} && ${Me.AltAbilityReady[Force of Ice]},1,0]}

Run the macro and then use the /iflist command and see if the DPSifs are populated. If they are then all you need to do is start making your own statements.
 
I have done everything to the T just like myndbender and it dont make my Ifs_charname either. i tried to make the file myself and put it where it belongs and add holyshits to it but when i type /iflist still get the same thing as myndbender. and i also searched my computer and couls not come up with and ifs_charnames so it is not making them somewhere else. and i have no went to windows 10
 
not sure why it aint working for you guys. I have windows 10 and do /iflist and it shows everything i have in my ifs_charname.ini
 
yea when i do /iflist it shows everything blank :(
guess i will mess around with it a bit more and see if i can figure it out
 
Ok so here are step by step instructions after doing this on a new character ive never done it on before.

Run KissAssist_ifs_8.2.6.mac and type /end
Open kissassist_toonname.ini make sure IfsOn=1
open Notepad and put this in it

Rich (BB code):
[kissassist]
; Prolonged Destruction
DPS1=${If[${Me.XTarget}>3 && ${SpawnCount[npc radius 50 zradius 50]}>2 && !${Me.Song[Arcane Destruction].ID},1,0]}

Save this file as Ifs_charname.ini and move it to your macros folder.

Now start KissAssist_ifs_8.2.6.mac again and type /iflist you should see whats in the ini in dps1. If you do open the file and edit it to what you want.

This worked on a character just now that i never ran it on before. However it is not creating the Ifs_ file no idea why.
 
nope still blank not populating.. LOL this is crazy. I know it's something simple I'm missing

- - - Updated - - -

ok that worked William12..but wish it made the file, not too good with the Ifs thing was looking for the help lol
 
KissAssist gets Holyshits Updated

Users who are viewing this thread

Back
Top
Cart