• You've discovered RedGuides 📕 an EverQuest multi-boxing community 🛡️🧙🗡️. We want you to play several EQ characters at once, come join us and say hello! 👋
  • IS THIS SITE UGLY? Change the look. To dismiss this notice, click the X --->
  • There is a suspension/ban wave happening, we're still gathering information. Please keep regular discussion to Suspension MegaThread and please consider submitting a Suspension report to RG.
And Now - a macro to start your AFNuke2, AutoCleric and Kissassist

Utility And Now - a macro to start your AFNuke2, AutoCleric and Kissassist 1.0

Download now:  Join us with Level 2 access or earn your way in with  RedCents.
Software Requirements
EQBCS
Server Type
🏢 Live 🏘️ Emu TLP Test
This macro goes through your group and depending on group member class launches AFNuke2, AutoCleric, or Kissassist for each one.

The main reason I wanted this is because I will be going to custom KA INI's for all my toons depending on level (5 lvl increments). I wanted this framework to work off of. I plan on extrapolating via group member level and class, which KA INI to use. That is not implemented yet.

Upcoming releases/future features:
  • Launch AFNuke85, AFNuke100 and AFNuke2 depending on level.
  • Launch KissAssist for any wizzy under lvl 85.
  • Launch KissAssist for any cleric under AutoCleric's level range.
  • Custom KA INI's mentioned above.
  • AdvPath PathNames (puller/pullertank) to be handed to KA at startup.

Features I am considering:
  • If no MA is detected in group, use whatever target each toon has for Assist assignment (i.e. /bcg //tar ID ${Me.ID}).
  • OR - If no MA is detected, MT will assume MA role and others will assist it.

Usage:
  • Have EQBCS running
  • Create Group
  • Assign MainTank, MainAssist, and Puller in group window. Puller is optional if you wanted to run a toon manually (not tested). You would have to turn on/off the various KA [Sections] to accommodate.
  • You can assign Master Looter too since KA9 Release will not over-ride your ML as long as group leader is started last, which it will be. You see that Hoosier?
  • Run this mac from Group Leader.

Settings:
  • Set Debug TRUE if you want/need bread-crumb to go to MQ2Win
  • Set Broadcast TRUE/FALSE to turn on/off basic messages
  • Set ACName to whatever version of AutoCleric you are using (name of mac) defaults to AutoCleric
  • Set KAName to whatever version of KissAssist you are using (name of mac) defaults to KissAssist
  • Set AFNWiz to FALSE if you want your Wiz to be given over to KissAssist (for whatever reason)
  • Set ACClr to FALSE if you want your Clr to be given over to KissAssist (for whatever reason)
  • Set AllowWizClr to TRUE if you want your Wiz or Clr to be allowed to be MA or MT (for whatever reason - could be farming tradeskill items from grey cons, or needing to be group controller for task /ground spawns etc). I am undecided at this time whether or not I want to keep that functionality.

If you find this useful, hit the :rc THANKS.

-------------------------------------------------------------------------------------------------

*** Incog's MQ2StartMacs - Beta 1 - 2016 ***

Rich (BB code):
| MQ2StartMacs.mac - Incognito
| This mac will check everyone in your group to see if they are in the same zone, not Offline, a PC (excluding mercs), and start a macro depending on class.
| Clerics get AutoCleric, Wiz's get AFNuke2 (regretfully configurable). All others get Kissassist.
| It is assumed you have created your group, and assigned MA, MT, & Puller.
| We assign our own macro seperately and lastly due to this mac will abort once launching our own macro.
| It is also assumed you have EQBC up and running and you are connected.

| ** Upcoming functionality - TODO **
| Handle custom INI's
| Handle AdvPath PathNames for pulling
| If no MA is detected then macro startups will attempt to use whoever that toon has targeted. So you could do a /bcg //tar ID ${Me.ID}.
| If MA does not detect Tank then it will assume Tank Role. If MT does not detect MA then it will assume MA and others will Assist it.
| Assignement of AFNuke2, AFNuke100 or AFNuke85 depending on toons level.

| ------------------------------------------------------------------------------------------------
| ** Usage **
| ------------------------------------------------------------------------------------------------
| * Have EQBCS running
| * Create Group
| * Assign MainTank, MainAssist, and Puller in group window
| * You can assign Master Looter too since KA9 Release will not over-ride your ML as long as
|        group leader is started last, which it will be.
| * Run this mac from group leader
| ------------------------------
| * SETTINGS *
| ------------------------------
| *   * Set Debug TRUE if you want/need bread-crumb to go to MQ2Win
| *   * Set Broadcast TRUE/FALSE to turn on/off basic messages
| *   * Set ACName to whatever version of AutoCleric you are using (name of mac)
| *   * Set KAName to whatever version of KissAssist you are using (name of mac)
| *   * Set AFNWiz to FALSE if you want your Wiz to be given over to KissAssist (for whatever reason)
| *   * Set ACClr to FALSE if you want your Clr to be given over to KissAssist (for whatever reason)
| *   * Set AllowWizClr to TRUE if you want your Wiz or Clr to be allowed to be MA or MT (whatever)
|           I am undecided at this time whether or not I want to keep that functionality.
| ------------------------------------------------------------------------------------------------

| ------------------------------------------------------------------------------------------------
Sub Main

    /echo *** Incog's MQ2StartMacs - Beta 1 - 2016 ***
    /declare ACName         string     outer AutoCleric
    /declare KAName         string     outer kissassist
    /declare Debug            bool    outer FALSE
    /declare Broadcast         bool    outer TRUE
    /declare AFNWiz            bool    outer TRUE
    /declare ACClr            bool    outer TRUE
    /declare AllowWizClr    bool    outer TRUE
   
    | --------------------------------------------
    | ** Do NOT change these - internal use vars
    | --------------------------------------------
    /declare MyInd             int     outer
    /declare x                 int     local 0
    /declare MA             string     outer
    /declare MT             string     outer
    /declare GetOut         bool     outer FALSE
    /declare CSN            string     outer
    | --------------------------------------------

    /varset MA ${Group.MainAssist}
    /varset MT ${Group.MainTank}
   
    /if (!${Group.Members}) {
        /echo YOU have not created a group yet. Aborting.
        /return
    }
    /if (${MA.Find[null]}) {
        /echo Please assign MainAssist in Group Window. Aborting.
    }
    /if (${MT.Find[null]}) {
        /echo Please assign MainTank in Group Window. Aborting.
    }
    /if (${MT.Find[null]} || ${MA.Find[null]}) /return
    /if (${Broadcast} || ${Debug}) /echo Detected MA: ${Group.MainAssist} - ${Group.MainAssist.Class} - MT: ${Group.MainTank} - ${Group.MainTank.Class}
   
    | ** Undecided yet if I want to allow a WIZ/CLR to be able to be MA/MT **
    /if (${Select[${Group.MainAssist.Class},WIZ,CLR]} && !${AllowWizClr}) {
        /echo WIZ or CLR detected as MA. Aborting.
        /return
    }
    /if (${Select[${Group.MainTank.Class},WIZ,CSN]} && !${AllowWizClr}) {
        /echo WIZ or CLR detected as MT. Aborting.
        /return
    }
    | start at 1 instead of 0 to exclude yourself, we are doing ourself last after the loop
    /for x 1 to ${Group}
        /if (${Debug}) /echo INSIDE Loop - X: ${x} - OtherZone: ${Group.Member[${x}].OtherZone} - Type PC: ${Group.Member[${x}].Type.Equal[PC]} - OffLine: ${Group.Member[${x}].Offline}
        /if (${Broadcast}) /echo Processing GroupMember ${x} - ${Group.Member[${x}].Name} a ${Group.Member[${x}].Class.ShortName}
        /If (!${Group.Member[${x}].OtherZone} && ${Group.Member[${x}].Type.Equal[PC]} && !${Group.Member[${x}].Offline}) {
            /varset CSN ${Group.Member[${x}].Class.ShortName}
            /call CheckForAFNuke ${x} ${CSN}
            /if (!${Macro.Return}) /call CheckForAC ${x} ${CSN}
            /if (!${Macro.Return}) /call CheckForAssist ${x} ${CSN}
            /if (!${Macro.Return}) /call CheckForPullerTank ${x} ${CSN}
            /if (!${Macro.Return}) /call CheckForPuller ${x} ${CSN}
            /if (!${Macro.Return}) /call CheckForTank ${x} ${CSN}
            /doevents
        }
        /varset GetOut FALSE
    /next x
   
    /if (${Debug}) /echo After LOOP - MacReturn: !${Macro.Return} - GetOut: ${GetOut}
    /varset MyInd ${Group.Member[${Me}].Index} | should be zero
    /varset CSN ${Group.Member[${MyInd}].Class.ShortName}
    | /varset GetOut FALSE
    /if (${Debug}) /echo Last Member (Me) MyInd: ${MyInd} - MyClass: ${CSN} - MacReturn: ${Macro.Return} - GetOut: ${GetOut}
    /if (${Broadcast}) /echo I am ${Group.Member[${MyInd}].Name} a ${CSN}
    /call CheckForAFNuke ${MyInd} ${CSN}
    /if (!${Macro.Return}) /call CheckForAC ${MyInd} ${CSN}
    /if (!${Macro.Return}) /call CheckForAssist ${MyInd} ${CSN}
    /if (!${Macro.Return}) /call CheckForPullerTank ${MyInd} ${CSN}
    /if (!${Macro.Return}) /call CheckForPuller ${MyInd} ${CSN}
    /if (!${Macro.Return}) /call CheckForTank ${MyInd} ${CSN}
/return

Sub CheckForAC(int GrpMemNum, string CName)
    /if (${Debug}) /echo Inside CheckForAC GrpMemNum: ${GrpMemNum} - CName: ${CName} - ACFlag: ${ACClr}
    /if (${Select[${CName},CLR]} && ${ACClr}) {
        /call DoAutoCleric ${GrpMemNum}
        /varset GetOut TRUE
    }
/return ${GetOut}

Sub CheckForAFNuke(int GrpMemNum, string CName)
    /if (${Debug}) /echo Inside CheckForAFNuke GrpMemNum: ${GrpMemNum} - CName: ${CName} - WizFlag: ${AFNWiz}
    /if (${Select[${CName},WIZ]} && ${AFNWiz}) {
        /call DoAFNuke2 ${GrpMemNum}
        /varset GetOut TRUE
    }
/return ${GetOut}

Sub CheckForPullerTank(int GrpMemNum, string CName)
    /if (${Debug}) /echo Inside CheckForPullerTank GrpMemNum: ${GrpMemNum} - CName: ${CName}
    /if (!${Select[${CName},CLR,WIZ]} && ${Group.Member[${GrpMemNum}].MainTank} && ${Group.Member[${GrpMemNum}].Puller}) {
        /call DoKAPullerTank ${GrpMemNum}
        /varset GetOut TRUE
    }
/return ${GetOut}

Sub CheckForTank(int GrpMemNum, string CName)
    /if (${Debug}) /echo Inside CheckForTank GrpMemNum: ${GrpMemNum} - CName: ${CName}
    /if (!${Select[${CName},CLR,WIZ]} && ${Group.Member[${GrpMemNum}].MainTank} && !${Group.Member[${GrpMemNum}].Puller}) {
        /call DoKATank ${GrpMemNum}
        /varset GetOut TRUE
    }
/return ${GetOut}

Sub CheckForPuller(int GrpMemNum, string CName)
    /if (${Debug}) /echo Inside CheckForPuller GrpMemNum: ${GrpMemNum} - CName: ${CName}
    /if (!${Select[${CName},CLR,WIZ]} && !${Group.Member[${GrpMemNum}].MainTank} && ${Group.Member[${GrpMemNum}].Puller}) {
        /call DoKAPuller ${GrpMemNum}
        /varset GetOut TRUE
    }
/return ${GetOut}

Sub CheckForAssist(int GrpMemNum, string CName)
    /if (${Debug}) /echo Inside CheckForAssist GrpMemNum: ${GrpMemNum} - CName: ${CName}
    /if (!${Group.Member[${GrpMemNum}].MainAssist} !${Group.Member[${GrpMemNum}].MainTank}) {
        /call DoKAAssist ${GrpMemNum}
        /varset GetOut TRUE
    }
/return ${GetOut}

Sub DoAutoCleric(int GrpMemNum)
    /if (${Broadcast} || ${Debug}) /echo Assigning ${Group.Member[${GrpMemNum}]} to ${ACName} assisting ${MA}
    /bct ${Group.Member[${GrpMemNum}]} //tar ${MA}
    /bct ${Group.Member[${GrpMemNum}]} //mac ${ACName}
/return

Sub DoAFNuke2(int GrpMemNum)
    | TODO AFNuke85/100
    /if (${Broadcast} || ${Debug}) /echo Assigning ${Group.Member[${GrpMemNum}]} to AFNuke2 assisting ${MA}
    /bct ${Group.Member[${GrpMemNum}]} //tar ${MA}
    /bct ${Group.Member[${GrpMemNum}]} //mac afnuke2
/return

Sub DoKAAssist(int GrpMemNum)
    /if (${Broadcast} || ${Debug}) /echo Assigning ${Group.Member[${GrpMemNum}]} to ${KAName} assisting ${MA}
    /bct ${Group.Member[${GrpMemNum}]} //tar ${MA}
    /bct ${Group.Member[${GrpMemNum}]} //mac ${KAName}
/return

Sub DoKAPullerTank(int GrpMemNum)
    /if (${Broadcast} || ${Debug}) /echo Assigning ${Group.Member[${GrpMemNum}]} to ${KAName} PullerTank assisting ${MA}
    /bct ${Group.Member[${GrpMemNum}]} //tar ${MA}
    /bct ${Group.Member[${GrpMemNum}]} //mac ${KAName} pullertank
/return

Sub DoKATank(int GrpMemNum)
    /if (${Broadcast} || ${Debug}) /echo Assigning ${Group.Member[${GrpMemNum}]} to ${KAName} Tank assisting ${MA}
    /bct ${Group.Member[${GrpMemNum}]} //tar ${MA}
    /bct ${Group.Member[${GrpMemNum}]} //mac ${KAName} tank
/return

Sub DoKAPuller(int GrpMemNum)
    /if (${Broadcast} || ${Debug}) /echo Assigning ${Group.Member[${GrpMemNum}]} to ${KAName} Puller assisting ${MA}
    /bct ${Group.Member[${GrpMemNum}]} //tar ${MA}
    /bct ${Group.Member[${GrpMemNum}]} //mac ${KAName} puller
/return
Author
Incognito
First release
Last update
Rating
0.00 star(s) 0 ratings

Share this resource

Back
Top