I dug this post up from an old copy of our database. It's not for use, but it's fun to look at.
No flash photography please. Thank you.
-----------------------------------------
KissAssist.mac v1.0 Phase 1 02/28/2011
KISS Assist is the base macro for a new macro system we are developing at RedGuides/NotAddicted.com. The idea is develop a macro that is easy to edit, well documented and easy to use. We will adding features to the macro after each phase is well tested.
Phase 1 is no frills melee. This macro will
Feel free to test it and post suggestions for improvements or features.
This macro is exclusive to RedGuides/NotAddicted.com and we ask that is not posted or discussed anywhere else.
No flash photography please. Thank you.
-----------------------------------------
KissAssist.mac v1.0 Phase 1 02/28/2011
KISS Assist is the base macro for a new macro system we are developing at RedGuides/NotAddicted.com. The idea is develop a macro that is easy to edit, well documented and easy to use. We will adding features to the macro after each phase is well tested.
Phase 1 is no frills melee. This macro will
- Assist your main tank
- Move to the mob
- Attack the Mob
- Move back to camp
Feel free to test it and post suggestions for improvements or features.
This macro is exclusive to RedGuides/NotAddicted.com and we ask that is not posted or discussed anywhere else.
Rich (BB code):
| - kissassist.mac v1.0 by Maskoi 02/28/2011
| - KISS Asisst will target mob, attack then move back to spot mac was started.
| Requires MQ2Melee & MQ2MoveUtils
| Usage - /mac kissassist TankName 95
| or target Main Tank and /mac kissassist
|-------------------------------------------------------------------------------------
| Sub Main
|-------------------------------------------------------------------------------------
#turbo 10
Sub Main
| - Variables
/declare MainTank string outer
/declare AssistAt int outer 95
/declare CampXLoc int outer ${Me.X}
/declare CampYLoc int outer ${Me.Y}
/declare CampRadius int outer 30
/declare CampZone int outer ${Zone.ID}
/declare CampReturn int outer 1
/declare LookForward int outer ${Me.Heading.DegreesCCW}
|-------------------------------------------------------------------------------------
| Check if required plugins are loaded
|-------------------------------------------------------------------------------------
/if (!${Bool[${Plugin[mq2moveutils]}]}) {
/echo MQ2MoveUtils not detected! This macro requires it!
/plugin mq2moveutils
}
/if (!${Bool[${Plugin[mq2melee]}]}) {
/echo MQ2Melee not detected! This macro requires it!
/plugin mq2melee
}
| - Turn aggro mode off on MQ2Melee
/squelch /melee aggro=0
|-------------------------------------------------------------------------------------
| - Assign Main Tank from command line parameter or targeted player, merc or pet
|-------------------------------------------------------------------------------------
/if (!${Defined[Param0]}) {
/varset MainTank ${Target.CleanName}
}
| - Check command line for tank name
/if (${Defined[Param0]}) {
/varset MainTank ${Param0}
/delay 10
/target id ${Spawn[${MainTank}].ID}
}
| - Error control no tank selected end macro
/if (!${Spawn[${Target}].ID} || !${Select[${Target.Type},Mercenary,PC,Pet]}) {
/echo You do not have a Mercenary, PC or Pet targeted. Please target Main Tank and restart macro.
/end
}
| - Targeted myself end macro
/if (${Target.CleanName.Equal[${Me.CleanName}]}) {
/echo You cannot assist yourself! Please target Main Tank and restart macro.
/end
}
/if (${Defined[Param1]}) {
/varset AssistAt ${Param1}
}
/echo Assisting >> ${MainTank} << at ${AssistAt}%
/squelch /target clear
|-------------------------------------------------------------------------------------
| Main Loop
|-------------------------------------------------------------------------------------
:MainLoop
/call CheckForAdds
/call Assist
/call Combat
/call ReturnToCamp
/goto :MainLoop
/return
|-------------------------------------------------------------------------------------
| SUB: Assist -Get Main Tank's target
|-------------------------------------------------------------------------------------
Sub Assist
/if (${Me.XTarget} < 1) /return
/if (${Spawn[${MainTank}].ID} && ${Me.XTarget} > 0) {
/assist ${MainTank}
}
/delay 3s ${Target.ID}
/return
|-------------------------------------------------------------------------------------
| SUB: Combat
|-------------------------------------------------------------------------------------
Sub Combat
/declare MyTargetID int local ${Target.ID}
/if (!${Target.ID}) /return
| Check Target Hps and type NPC or NPC Pet
/if (${Target.PctHPs}<=${AssistAt} && (${Target.Type.Equal[NPC]} || ${Target.Type.Equal[Pet]})) {
/echo Attacking ${Target.CleanName}
/moveto id ${MyTargetID} loose
:Attack
/killthis
/if (${MyTargetID}==${Target.ID}) /goto :Attack
}
/return
|-------------------------------------------------------------------------------------
| SUB: Check for adds
|-------------------------------------------------------------------------------------
Sub CheckForAdds
/if (${Me.XTarget} < 1) /return
:moreadds
/call Assist
/call Combat
/if (${Me.XTarget} > 0) /goto :moreadds
/return
|-------------------------------------------------------------------------------------
| SUB: Return To Camp
|-------------------------------------------------------------------------------------
Sub ReturnToCamp
/if (!${CampReturn} || ${Math.Distance[${CampYLoc}, ${CampXLoc}]} < ${CampRadius} || ${CampZone} != ${Zone.ID}) /return
/if (${Math.Distance[${CampYLoc}, ${CampXLoc}]} > ${CampRadius}) {
/moveto loc ${CampYLoc} ${CampXLoc}
/delay 30s !${Me.Moving}
/face heading ${LookForward}
}
/return



