• 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

Request - Modular Plugin system for KissAssist

Joined
Oct 22, 2017
RedCents
4,038¢
At the start of the script kissassist would process plugins, their attach points, and their priority. The higher priority the earlier the code in that section would be ran. IE priority 10 or 100 would be ran before priority 0.

#Plugin <plugin name> [optional priority default to 0]

Here is an example plugin

Code:
#Plugin Mobwarn 0

#attach {
    CombatLoop {
            /if ((${Select[${Zone.ID},799]}) && (${IAmABard})) {
                /call MobWarn rs "a pool of corrupted blood" 180
                /call MobWarn rs "living corrupted blood" 180
            }
    }
    MainLoop {
            /if ((${Select[${Zone.ID},814]}) && (${IAmABard})) {
                /call MobWarn g "a skyash drake" 400
                /call MobWarn g "a skyfall drake" 400
                /call MobWarn g "a skycinder drake" 400
            } else /if ((${Select[${Zone.ID},792]}) && (${IAmABard})) {
                /call MobWarn g "a cinder skywing" 250
            }
    }
}

Sub MobWarn(string method, string mob, int radius)
    /if (!${Defined[IsClose${Spawn[${mob}].ID}]}) /declare IsClose${Spawn[${mob}].ID} bool outer FLASE
    /if (${SpawnCount[${mob} radius ${radius} zradius ${radius}]} && !${IsClose${Spawn[${mob}].ID}}) {
        /varset IsClose${Spawn[${mob}].ID} TRUE
        /if (${method.Equal[rs]}) {
            /rs >>> Warning! <<< ${mob} is near the raid!       
        } else /if (${method.Equal[g]})  {
                /echo Warning! ${mob} is near the group!
                /beep
                /beep
                /beep
        }
    } else /if (!${SpawnCount[${mob} radius ${radius} zradius ${radius}]} && ${IsClose${Spawn[${mob}].ID}}) {
        /varset IsClose${Spawn[${mob}].ID} FALSE
        /echo \ag${mob} has moved out of range!
        }
    /delay 5
/return

Kiss would need to store plugins in a sub directory which could be parsed on startup and a command to add and remove a plugin or perhaps a plugin section in individual ini files.

Attach points could be like Mainloop, Zoned, Medding, Buffing, CreatePet Healing, Burn, Dps, Moving, CombatStart, CombatLoop, CombatStop, Slain, GainedExp, Resurrected, Death, Leveled, Tell, Guild, Raid, Group. And any others that you want to create. Once the skeleton is created kiss could then add functionality the same way. What I am describing would set up a standard skeleton at the core that would allow plugin programmers to take advantage of kiss to expand it's functionality without having to modifiy the core software.

The reason for the request is each time a new version of Kissassist comes out I have to make over a dozen edits to the script in order to add custom modifications I have made to my client. This system would allow these to be independent of the core software and would also likely result in performance increases for the macro overall.

What do you all think?
 
Last edited:
sl968,

It seems several people are thinking or working along the same lines.
(1) TreeHuginDruid seems have to created a mod for kissassist to run through the LDoN mission - Here , and
(2) Joojoobee / Maskoi discussing the same (I think) in this monk pulling thread - Here

The neatness of making it modular, keeping the core Kiss code unaffected, and allowing for easy upgrades without need to pull out coding goggles for line by line mods would be really good.

Yes please
 
Request - Modular Plugin system for KissAssist

Users who are viewing this thread

Back
Top
Cart