• 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

Load Arrays with If statements.

Joined
Mar 21, 2014
RedCents
27,491¢
Anyone who has ever tried to load statements(/if (), ${If[]}, ${}) using the ${Ini[]} command will be aware of what this plugin is for.


Intentions:
This plugin is for custom macro writers or those of us who like to mod existing macros. Build your own Holy/Down shits and add them to your macros.

Instructons:
1. Download plugin and place it in your MQ2 folder.
2. /plugin MQ2rgma

How to Use:

This plugin will load a string array from an ini file. This plugin checks if there is an active macro running before loading data from an ini file.

1. Create/modify a macro.
2. create an ini file with the if statements.
2. /declare an array in your macro. Example: /declare ArrayIf[20] string outer 1. Note: array can have any valid name and index can be of any size.
3. If you haven't loaded the plugin /plugin MQ2rgma. This can be added into the macro.
4. Add command in macro to load the Array. /rgma load auto auto ArrayIf. (See below for more details)
5. Optional. Unload the plugin. /plugin MQ2rgma unload
6. Create /If () statements using the Array. (/if (${ArrayIf[1]) /echo something)


MQ2rgma command format:

/rgma load "ini file name" "section label" "Array Name"
/rgma list "ini file name" "section label" "Array Name"

When using auto for "ini file name", the plugin uses the characters name to build the file name rgma_CharacterName.ini
When using auto for "section label", the plugin uses the macros name to build the section label MyMacroName

This allows you to have multiple sections in the same ini file. If you use the auto command to load an array when there is no existing ini file, one will be created for you.

Commands:
/rgma help
/rgma load
/rgma list


Ini file example for my mage using kissassist_rgma.mac for the DPSIf array:
Rich (BB code):
[kissassist_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}>10 || ${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},1,0]}
GoMSpellIf2=${If[1,1,0]}


Download: (Updated 03/27/2015)
 

Attachments

Last edited:
Nice way of approaching this. I've been adding exceptions in the kissassist mac for things like rains. Being able to quickly add them on a per spell basis looks useful.

Any chance you can share the source on this?
 
Yes. Sure, I will send it to you in a PM. When the next compile of MQ2 comes out I am hoping the /vardata will be fixed. I have 2 versions of Kiss that I want to release to the community that use this plugin.
 
Load Arrays with If statements.

Users who are viewing this thread

Back
Top
Cart