• 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 --->
  • EverQuest (live servers) were patched today so brainiac is spending his evening updating MacroQuest. Please show him your appreciation.
Resource icon

Unmaintained v4 - All Class Combat Assist Macros 1.0

Download now:  Join us with Level 2 access or earn your way in with  RedCents.
Other Authors
V
Software Requirements
[Plugins]
MQ2EQBC
MQ2Cast
MQ2MoveUtils
MQ2EQBC
MQ2Irc

[Includes]
V4\Core\Buffs.inc
V4\Core\Casting.inc
V4\Core\CheckCombat.inc
V4\Core\CheckConstant.inc
V4\Core\CheckNoCombat.inc
V4\Core\CombatAbi.inc
V4\Core\CrowdControl.inc
V4\Core\Damage.inc
V4\Core\Debuffs.inc
V4\Core\Encounters.inc
V4\Core\Events.inc
V4\Core\Healing.inc
V4\Core\Items.inc
V4\Core\Main.inc
V4\Core\Movement.inc
V4\Core\Pets.inc
V4\Core\Power.inc
V4\Core\Skills.inc
V4\Core\Songs.inc
V4\Core\Variables.inc
V4\Core\Waiting.inc
V4\Classes\BER.inc
V4\Classes\BRD.inc
V4\Classes\BST.inc
V4\Classes\CLR.inc
V4\Classes\DRU.inc
V4\Classes\ENC.inc
V4\Classes\MAG.inc
V4\Classes\MNK.inc
V4\Classes\NEC.inc
V4\Classes\PAL.inc
V4\Classes\RNG.inc
V4\Classes\ROG.inc
V4\Classes\SHD.inc
V4\Classes\SHM.inc
V4\Classes\WAR.inc
V4\Classes\WIZ.inc
Server Type
🏢 Live Test
Backstory: On Ragefire, a friend of mine (we'll simply call him V) who no longer plays wanted to create a macro that could be used for raiding, grouping, and AFKing. This was completely written from the ground up by him and as such all credit goes to him. I have been given permission to post it here for people to build on if they wish, and I will not offer any support.

If anyone does wish to take this over, literally everything in the macro is labeled for what it does. Even someone as simple as myself could figure out what the code is doing (because it literally tells you) :)

I am not a coder, I can dabble, but in no means am I able to overhaul things. I've made a couple tweaks here and there, but for the most part the macro is just as it was created. As it stands, it's fully automated up to level 70 on live servers, including AAs. One or two things are broken, but for the most part everything works. It feels like such a shame for it to sit in my macro folder and not be used by really anyone, so I decided to post it here for the community to use/modify/fork/whatever.

The macro hasn't been updated since April of 2016. It's designed to use as few plugins as possible though.

To use, you'll have to download the uploaded zip and place the v4 folder in your macros folder. The folder file structure must be left intact inorder to work.

I might also also included an older version of the macro (V3) which is a bit more basic. I'm not sure.

Be forewarned, this macro is massive in what it can do. You will spend quite a long time going through each setting to determine what it does, although most are quite obvious. It does run extremely quick though, literally zero load time from /mac v4 to them starting to do stuff.

This macro doesn't currently work for Warriors/Paladins/Sks as those classes weren't completed fully (as those are typically the controllers). If someone wanted to create say a paladin for example, see below for how to go about enabling and creating the missing classes. Pulling is a feature that is written but it's incomplete.

*********************************
* Features *
*********************************
  • Fully automated up to level 70 including AAs/Discs. Will work for higher levels, but higher level AAs and Discs aren't programmed in. Discs are easy to add, AAs will have to be programmed in. Again, this was not designed specifically for Live
  • The included inis are prebuilt for level 70. Just put your tank/assist name in the proper section, and you should be basically good to go. Very minor adjustments will be needed for basic use.​
  • Will toggle raid buffs automatically and determine what classes are in the raid (IE, cleric will cast symbol if a druid is in the raid, or cast aego type spells if there isn't one)
  • Although not specially for live, it does have a built in aggro meter, and will use certain aggro reducers or gainers if needed. Aggro functions must be disabled on TLP servers that don't have the aggro meter enabled.
  • Dynamic assisting for Raids/Groups. If your raid defines an MA, your boxes will switch to assisting them.
  • Shrinking by zone.
  • Dynamic Spell casting by spell type on a mob by mob basis. If a mobtype is undead, clerics and paladins will cast undead damaging spells. If a mob is immune to fire (will have to be defined in the settings) it will switch to another element based on your ini file. If a mob is a belly caster, casters should run into belly cast range.
  • If boxes are feared, boxes will run back to whatever location they were at before they were feared.
  • Automatic rebuffing of spells upon fading.
  • The ability for specific people you define to request buffs.
  • Less reliant on tons of plugins. (only uses 3 or 4 total, no mq2cast, no mq2melee, etc, although you can use them if you wish)
  • Different levels of mob difficulty dynamically adjust how spells/heals/abilities are used. Harder mobs automatically have healers ramp up healing to adjust. Harder mobs have debuffs that might otherwise be disabled turned on.
  • For tanks, you can easily use KissAssist to pull with, and V4 doesn't care.
  • Visual HUD to display what settings are currently active!
  • Tons of other things I'm sure I'm missing!


*********************************
* Install *
*********************************
1) Copy the MQ2HUD.ini file from V4\UI to the MacroQuest2 Root folder. Replace the existing file or copy the contents to your current hud ini.
2) Copy a character file from the V4\Characters folder. Renamed it so it matches your character info. CLASS_NAME_SERVER
2a) Options: Set Up Bandoliers (Bard uses several) | Set Up Spell Sets
2b) Define your MA/MT in your INI - This is the character your boxes will assist, follow, and take orders from. Typically this is the same. The MA is who you will assist off of, the MT is who you will listen to.
2c) There are tons of options to go over and many many many features you can configure. Inside the settings folder are 2 other ini files you can edit to adjust how the macro works.
3) Modify the options in your character file the way you want them. (CHECK THEM ALL)
3a)All spells to be memed are in the INI files.
4) Create Hotkeys you want (Below).
4a) They are color coded to what types of functions they do. Similar colors are for similar things.
4b) You can skip to the Master Hotkeys for just creating hotkeys for your controller character. Although sometimes the hotkeys for each character are nice.

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
| Hotkey Setup
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Name: -> V4 <- | Color: Green | Code: /mac V4
Name: > End < | Color: Red | Code: /endmac
Name: Set: MT | Color: Yellow | Code: /varset sMT ${Target.CleanName}
Name: Set: MA | Color: Yellow | Code: /varset sMA ${Target.CleanName}
Name: Follow | Color: Green | Code: /varset sMoveType Follow
Name: Stop | Color: Red | Code: /varset Tog_Stop TRUE
Name: Manual | Color: Yellow | Code: /varset sMoveType Manual
Name: Tog: X Buffs | Color: Purple | Code: /varset Tog_XTarBuffs TRUE
Name: Tog: Raid Buffs | Color: Purple | Code: /varset Tog_RaidBuffs TRUE
Name: Tog: Cures | Color: Purple | Code: /varset Tog_DoCures TRUE
Name: Tog: Melee | Color: Red | Code: /varset Tog_DoMelee TRUE
Name: Tog: Behind | Color: Red | Code: /varset Tog_GetBehind TRUE
Name: Tog: Damage | Color: Red | Code: /varset Tog_Damage TRUE
Name: Tog: Ranged | Color: Red | Code: /varset Tog_Ranged TRUE
Name: Tog: DD | Color: Red | Code: /varset Tog_DirDMG TRUE
Name: Tog: AE | Color: Red | Code: /varset Tog_AEDMG TRUE
Name: Tog: DoT | Color: Red | Code: /varset Tog_DoTDMG TRUE
Name: Tog: Lang | Color: LBlue | Code: /varset Tog_SkillLang TRUE
Name: Tog: Skills | Color: LBlue | Code: /varset Tog_SkillMisc TRUE
Name: Tog: Tash | Color: Purple | Code: /varset Tog_Tash TRUE
Name: Tog: Slow | Color: Purple | Code: /varset Tog_Slow TRUE
Name: Tog: Malo | Color: Purple | Code: /varset Tog_Malo TRUE
Name: Tog: Cripple | Color: Purple | Code: /varset Tog_Cripple TRUE
Name: Tog: Snare | Color: Purple | Code: /varset Tog_Snare TRUE
Name: Tog: Mez | Color: Purple | Code: /varset Tog_Mez TRUE
Name: Tog: MR | Color: Yellow | Code: /varset Tog_MR TRUE
Name: Tog: CR | Color: Blue | Code: /varset Tog_CR TRUE
Name: Tog: FR | Color: Orange | Code: /varset Tog_FR TRUE
Name: Tog: DR | Color: Purple | Code: /varset Tog_DR TRUE
Name: Tog: PR | Color: Green | Code: /varset Tog_PR TRUE

>---------------------------------------------------------------------------<
| Master Hotkeys (for your tank) |
>---------------------------------------------------------------------------<
Name: M: Follow | Color: Green | Code: /bc Follow
Name: M: Stop | Color: Red | Code: /bc stop
Name: M: Camp Desktop | Color: Yellow | Code: (Line1) /bcg //endmac | (Line2) /bcg //camp desktop
Name: M: Reload | Color: Blue | Code: /bcg //mac V4
Name: M: Invite | Color: Yellow | Code: /invite <CharName> (each Char in Group)
Name: M: Hide Corpse | Color: Yellow | Code: (Line1) /hidecorpse all | (Line2) /bc Hide Corpse
Name: M: Mag Res | Color: Yellow | Code: (Line1) /bc Mag Res | (Line2) /varset bDoMR TRUE
Name: M: Cold Res | Color: LBlue | Code: (Line1) /bc Cld Res | (Line2) /varset bDoCR TRUE
Name: M: Fir Res | Color: Orange | Code: (Line1) /bc Fir Res | (Line2) /varset bDoFR TRUE
Name: M: Dis Res | Color: Purple | Code: (Line1) /bc Dis Res | (Line2) /varset bDoDR TRUE
Name: M: Poi Res | Color: Green | Code: (Line1) /bc Poi Res | (Line2) /varset bDoPR TRUE
Name: M: Rebuff | Color: Blue | Code: /bc Rebuff
Name: M: HardMode | Color: Orange | Code: (Line1) /bc Hard | (Line2) /varset iKTDiff 2
Name: M: XX | Color: YY | Code: /ZZ

Again, place the v4.mac and the v4 folder both into your macros folder. The instructions are listed inside the folder as well for reference.
All of these are located in the zip file below! Good luck!
View attachment 12809



To create a paladin for example, you would need to go into the v4.mac.
Uncomment out the |#include V4\Classes\PAL.inc (remove the |)

Create a new class include. Here is an example of the one I made:
Rich (BB code):
| -------------------------------------------------------------------------------------
| Name: Paladin.inc
| Macro: V4
| -------------------------------------------------------------------------------------
sub CheckConstant_PAL
	/call FunctionConstant

	| -> Heal Self Emergency <-
	/call Heal_Self "${Ini[${F_Char},Spells,Heal_Emergency_Self]}" ${Ini[${F_Char},Healing,Emergency_Self]} 
		/if (${Macro.Return}) /return TRUE

	| -> Bestow DA (A) MT <-
	|/call Heal_MT_AA "${Ini[${F_Char},Spells,AA_Heal_Bestow_DAA]}" ${iHealAABestowDAMT} 100
		/if (${Macro.Return}) /return TRUE

	| -> Bestow DA (A) Self <-
	|/call Heal_SelfTarget_AA "${Ini[${F_Char},Spells,AA_Heal_Bestow_DAA]}" ${Ini[${F_Char},Healing,Emergency_Self]}
		/if (${Macro.Return}) /return TRUE

	| -> Bestow DA (A) Group <-
	|/call Heal_Group_AA "${Ini[${F_Char},Spells,AA_Heal_Bestow_DAA]}" ${Ini[${F_Char},Healing,Emergency_Self]} 100

	| -> Heal MT Fast <-
	/call Heal_MT "${Ini[${F_Char},Spells,Heal_Fast]}" ${iHealMTFastPct}
		/if (${Macro.Return}) /return TRUE

	| -> Heal Self Fast <-
	/call Heal_SelfTarget "${Ini[${F_Char},Spells,Heal_Fast]}" ${iHealFastPct}
		/if (${Macro.Return}) /return TRUE

	| -> Heal Group Fast <-
	/call Heal_Group "${Ini[${F_Char},Spells,Heal_Group]}" ${iHealFastPct}
		/if (${Macro.Return}) /return TRUE

	| -> Group Heal <-
	/call Heal_GroupHeal "${Ini[${F_Char},Spells,Heal_Group]}" ${iHealPct}
		/if (${Macro.Return}) /return TRUE
	
	| -> Heal MT <-
	/call Heal_MT "${Ini[${F_Char},Spells,Heal_Single]}" ${iHealMTPct}
		/if (${Macro.Return}) /return TRUE

	| -> Heal Self <-
	/call Heal_SelfTarget "${Ini[${F_Char},Spells,Heal_Single]}" ${iHealPct}
		/if (${Macro.Return}) /return TRUE

	| -> Heal Group <-
	/call Heal_Group "${Ini[${F_Char},Spells,Heal_Single]}" ${iHealPct}
		/if (${Macro.Return}) /return TRUE

	| -> Group Heal Over Time (AA) <-
	|/call Heal_GroupHoT_AA "${Ini[${F_Char},Spells,AA_Heal_Group_HoT]}" ${iHealHoTGrpPct} 150 ${Spell[${Ini[${F_Char},Spells,Heal_Group_HoT]}].Duration.TotalSeconds}
	|	/if (${Macro.Return}) /return TRUE

	| -> Group Heal Over Time <-
	/call Heal_GroupHoT "${Ini[${F_Char},Spells,Heal_Group_HoT]}" ${iHealHoTGrpPct}
		/if (${Macro.Return}) /return TRUE

	| -> Heal Over Time MT <-
	/call HoT_MT "${Ini[${F_Char},Spells,Heal_HoT]}" ${iHealMTHoTPct}
		/if (${Macro.Return}) /return TRUE

	| -> Heal Over Time Self <-
	/call HoT_Self "${Ini[${F_Char},Spells,Heal_HoT]}" ${iHealHoTPct}
		/if (${Macro.Return}) /return TRUE

	| -> Heal Over Time Group <-
	/call HoT_Group "${Ini[${F_Char},Spells,Heal_HoT]}" ${iHealHoTPct}
		/if (${Macro.Return}) /return TRUE

	| -=> XTarget Heals <=-
	/if (${Ini[${F_Char},Healing,Do_XTarget_Heal]}) {
		/call Heal_XTarget "${Ini[${F_Char},Spells,Heal_Single]}" ${iHealPct}
			/if (${Macro.Return}) /return TRUE
	}

	| -> Cures <-
	/if (${DoCures}) {
		
		| -> Cures: Single <-
		/call Cure_Single_Combat
			/if (${Macro.Return}) /return TRUE

		| -> Cure: Purify Soul <-
		|/call Cure_Single_Combat_AA "${Ini[${F_Char},Spells,AA_Cure_Purify]}" 100
		|	/if (${Macro.Return}) /return TRUE
	}

/return FALSE

sub CheckCombat_PAL
	/call FunctionConstant

	| -=> AE Aggro Reducer <=-
	|/call Aggro_XTarget
	|/if (${Macro.Return}) {

		| -> AA: Sanctuary <-
		|/call Buff_Self_Combat_AA "${Ini[${F_Char},Spells,AA_Buff_Sanctuary]}"
		|	/if (${Macro.Return}) /return TRUE

		| -> AA: Silent Casting <-
		|/call Buff_Self_Combat_AA "${Ini[${F_Char},Spells,AA_Buff_SilentCast]}"
		|	/if (${Macro.Return}) /return TRUE

		| -> AA: Divine Retribution <-
		|/call Buff_Self_Combat_AA "${Ini[${F_Char},Spells,AA_Buff_DivineRetrib]}"
		|	/if (${Macro.Return}) /return TRUE
	|}

	| -> Rez: Combat <-
	/if (${Ini[${F_Char},Healing,Rez_InCombat]}) {
		/call CheckAllHealthOK ${Ini[${F_Char},Buffs,HPStopRez]}
		/if (${Macro.Return}) {
				/call Rez_Group_Friends "${Ini[${F_Char},Spells,Rez_Single]}"
					/if (${Macro.Return}) /return TRUE
		}
	}

	| -> Combat <-
	/call CheckAllHealthOK ${Ini[${F_Char},Damage,HP_Stop_Damage]}
	/if (${Macro.Return}) {

		| -=> Level 2 Diff Mobs <=-
		/if (${iKTDiff}==2) {

			| -> Melee <-		
			/call DMG_Melee
				/if (${Macro.Return}) /return TRUE


			| -> Turn Undead <-
			/call AA_KillTarget_Undead "${Ini[${F_Char},Spells,AA_DirDMG_Undead]}"
				/if (${Macro.Return}) /return TRUE

			| -> Banestrike <-
			/call AA_KillTarget_Banestrike "Banestrike"
				/if (${Macro.Return}) /return TRUE

			| -> Single Target DD<-
			/call DMG_STDD "${Ini[${F_Char},Spells,DMG_DirDMG]}"
					/if (${Macro.Return}) /return TRUE

		}

		| -=> Level 1 Diff Mobs <=-
		/if (${iKTDiff}==1) {

			| -> Melee <-		
			/call DMG_Melee
				/if (${Macro.Return}) /return TRUE

			| -> Banestrike <-
			/call AA_KillTarget_Banestrike "Banestrike"
				/if (${Macro.Return}) /return TRUE	
		
			| -> AE DD <-
			/call DMG_AEDD "${Ini[${F_Char},Spells,DMG_AEDmg]}"
				/if (${Macro.Return}) /return TRUE


			| -> Single Target DD<-
			/call DMG_STDD "${Ini[${F_Char},Spells,DMG_DirDMG]}"
					/if (${Macro.Return}) /return TRUE
		}

		| -=> Level 0 Diff Mobs <=-
		/if (${iKTDiff}==0) {

			| -> Melee <-		
			/call DMG_Melee
				/if (${Macro.Return}) /return TRUE		

			| -> Bandolier: Proc Buff <-
			/call Use_Bandolier "${Ini[${F_Char},Bandolier,Buff_Proc]}"
				/if (${Macro.Return}) /return TRUE	


			| -> Yaulp <-
			/if (${bDoMelee}) {
				/call Buff_Self_Combat "${Ini[${F_Char},Spells,Buff_SelfATK]}"
					/if (${Macro.Return}) /return TRUE
			}

			| -> Single Target DD<-
			/call DMG_STDD "${Ini[${F_Char},Spells,DMG_DirDMG]}"
					/if (${Macro.Return}) /return TRUE
		}
	}
/return FALSE

sub CheckNoCombat_PAL
	/call FunctionConstant

	| -> Top Off MT <-
	/call HoT_MT "${Ini[${F_Char},Spells,Heal_HoT]}" ${Ini[${F_Char},Healing,NoCombat_TopOff]}
		/if (${Macro.Return}) /return TRUE

	| -> Top Off Self <-
	/call HoT_Self "${Ini[${F_Char},Spells,Heal_HoT]}" ${Ini[${F_Char},Healing,NoCombat_TopOff]}
		/if (${Macro.Return}) /return TRUE

	| -> Top Off Group <-
	/call HoT_Group "${Ini[${F_Char},Spells,Heal_HoT]}" ${Ini[${F_Char},Healing,NoCombat_TopOff]}
		/if (${Macro.Return}) /return TRUE

	/call CheckAllHealthOK ${Ini[${F_Char},Buffs,HPStopBuff]}
	/if (${Macro.Return}) {
		/call CheckForAggro
		/if (!${Macro.Return}) {

			| -> Cure: Single <-
			/if (${DoCures}) {
				/call Cure_Single_NoCombat
					/if (${Macro.Return}) /return TRUE
			}

			| -> Rez: Blessing of Resurrection <-
			/call Rez_Group_Friends_AA "${Ini[${F_Char},Spells,AA_Rez]}" 200
				/if (${Macro.Return}) /return TRUE

			| -> Rez: No Combat <-
			/if (${Ini[${F_Char},Healing,Rez_NoCombat]}) {
				/call Rez_Group_Friends "${Ini[${F_Char},Spells,Rez_Single]}"
					/if (${Macro.Return}) /return TRUE
			}

			| -> Mass Group Buff <-
			/if (${bMGB}) {
				/call Buff_MassBuff "${Ini[${F_Char},Spells,Buff_MassGroup]}"
					/if (${Macro.Return}) /return TRUE
			}

			| -> Buff: Aura <-
			/if (${Ini[${F_Char},Buffs,Do_Buff_Aura]}) {
				/call Buff_Aura_Self "${Ini[${F_Char},Spells,Buff_Aura]}"
				/if (${Macro.Return}) /return TRUE
			}

			| -> Buff: Aegolism <-
			/if (${Ini[${F_Char},Buffs,Do_Buff_Aego]}) {
				/call FindClassInGroupOrRaid DRU
				/if (!${Macro.Return}) {
					/call Buff_Group_All "${Ini[${F_Char},Spells,Buff_Aego]}" Aego
					/if (${Macro.Return}) /return TRUE
				}
			}

			| -> Buff: Self Aegolism <-
			/if (${Ini[${F_Char},Buffs,Do_Buff_Aego]}) {
				/call FindClassInGroupOrRaid DRU
				/if (!${Macro.Return}) {
					/call Buff_SelfTarget "${Ini[${F_Char},Spells,Buff_Aego]}" Aego
					/if (${Macro.Return}) /return TRUE
				}
			}

			| -> Buff: HP <-
			/if (${Ini[${F_Char},Buffs,Do_Buff_HP]}) {
				/call FindClassInGroupOrRaid DRU
				/if (!${Macro.Return}) {
					/call Buff_Group_All "${Ini[${F_Char},Spells,Buff_HP]}" HP
					/if (${Macro.Return}) /return TRUE
				}
			}

			| -> Buff: Self HP <-
			/if (${Ini[${F_Char},Buffs,Do_Buff_HP]}) {
				/call FindClassInGroupOrRaid DRU
				/if (!${Macro.Return}) {
					/call Buff_SelfTarget "${Ini[${F_Char},Spells,Buff_HP]}" HP
					/if (${Macro.Return}) /return TRUE
				}
			}

			| -> Buff: Symbol <-
			/if (${Ini[${F_Char},Buffs,Do_Buff_Symbol]}) {
				/call FindClassInGroupOrRaid DRU
				/if (${Macro.Return}) {
					/call Buff_Group_All "${Ini[${F_Char},Spells,Buff_Symbol]}" Symbol
					/if (${Macro.Return}) /return TRUE
				}
				/if (!${Macro.Return} && !${Ini[${F_Char},Buffs,Do_Buff_Aego]}) {
					/call Buff_Group_All "${Ini[${F_Char},Spells,Buff_Symbol]}" Symbol
					/if (${Macro.Return}) /return TRUE
				}
			}

			| -> Buff: Self Symbol <-
			/if (${Ini[${F_Char},Buffs,Do_Buff_Symbol]}) {
				/call FindClassInGroupOrRaid DRU
				/if (${Macro.Return}) {
					/call Buff_SelfTarget "${Ini[${F_Char},Spells,Buff_Symbol]}" Symbol
					/if (${Macro.Return}) /return TRUE
				}
				/if (!${Macro.Return} && !${Ini[${F_Char},Buffs,Do_Buff_Aego]}) {
					/call Buff_SelfTarget "${Ini[${F_Char},Spells,Buff_Symbol]}" Symbol
					/if (${Macro.Return}) /return TRUE
				}
			}

			| -> Buff: Self HP <-
			/if (${Ini[${F_Char},Buffs,Do_Buff_SelfHP]}) {
				/call Buff_Self "${Ini[${F_Char},Spells,Buff_SelfHP]}"
					/if (${Macro.Return}) /return TRUE
			}
		
			| -> Buff: AC <-
			/if (${Ini[${F_Char},Buffs,Do_Buff_AC]}) {
				/call FindClassInGroupOrRaid DRU
				/if (${Macro.Return}) {
					/call Buff_Group_All "${Ini[${F_Char},Spells,Buff_AC]}" AC
					/if (${Macro.Return}) /return TRUE
				}
				/if (!${Macro.Return} && !${Ini[${F_Char},Buffs,Do_Buff_Aego]}) {
					/call Buff_Group_All "${Ini[${F_Char},Spells,Buff_AC]}" AC
					/if (${Macro.Return}) /return TRUE
				}
			}

			| -> Buff: Self AC <-
			/if (${Ini[${F_Char},Buffs,Do_Buff_AC]}) {
				/call FindClassInGroupOrRaid DRU
				/if (${Macro.Return}) {
					/call Buff_SelfTarget "${Ini[${F_Char},Spells,Buff_AC]}" AC
					/if (${Macro.Return}) /return TRUE
				}
				/if (!${Macro.Return} && !${Ini[${F_Char},Buffs,Do_Buff_Aego]}) {
					/call Buff_SelfTarget "${Ini[${F_Char},Spells,Buff_AC]}" AC
					/if (${Macro.Return}) /return TRUE
				}
			}

			| -> Buff: Str <-
			/if (${Ini[${F_Char},Buffs,Do_Buff_Str]}) {
				/call FindClassInGroupOrRaid DRU
				/if (!${Macro.Return}) {
					/call FindClassInGroupOrRaid SHM
					/if (!${Macro.Return}) {
						/call Buff_Group_Melee "${Ini[${F_Char},Spells,Buff_Str]}" Str
						/if (${Macro.Return}) /return TRUE
					}
				}
			}
		
			| -> Buff: Self Combat Innate <-
			/if (${Ini[${F_Char},Buffs,Do_Buff_SelfCombInnat]}) {
				/call Buff_Self "${Ini[${F_Char},Spells,Buff_SelfCombInnat]}"
					/if (${Macro.Return}) /return TRUE
			}
		
			| -> Buff: Melee Guard <-
			/if (${Ini[${F_Char},Buffs,Do_Buff_MeleeGuard]}) {
				/call Buff_Group_Tank "${Ini[${F_Char},Spells,Buff_MeleeGuard]}" MelGrd
					/if (${Macro.Return}) /return TRUE
			}
		
			| -> Buff: Death Pact <-
			/if (${Ini[${F_Char},Buffs,Do_Buff_DeathPact]}) {
				/call Buff_MT "${Ini[${F_Char},Spells,Buff_DeathPact]}" DeathPac_MT
					/if (${Macro.Return}) /return TRUE
			}
		
			| -> Buff: Spell Focus <-
			/if (${Ini[${F_Char},Buffs,Do_Buff_SpellFocus]}) {
				/call Buff_Group_Power "${Ini[${F_Char},Spells,Buff_SpellFocus]}" SpellFoc
					/if (${Macro.Return}) /return TRUE
			}

			| -> Buff: Self Spell Focus <-
			/if (${Ini[${F_Char},Buffs,Do_Buff_SpellFocus]}) {
				/call Buff_SelfTarget "${Ini[${F_Char},Spells,Buff_SpellFocus]}" SpellFoc
					/if (${Macro.Return}) /return TRUE
			}

			| -=> Raid Buffs <=-
			/if (${bDoBuffRaid}) {
		
				| -> Buff: Raid Aegolism <-
				/if (${Ini[${F_Char},Buffs,Do_Buff_Aego]}) {
					/call FindClassInGroupOrRaid DRU
					/if (!${Macro.Return}) {
						/call Buff_Raid "${Ini[${F_Char},Spells,Buff_Aego]}" Aego
						/if (${Macro.Return}) /return TRUE
					}
				}
		
				| -> Buff: Raid HP <-
				/if (${Ini[${F_Char},Buffs,Do_Buff_HP]}) {
						/call FindClassInGroupOrRaid DRU
						/if (!${Macro.Return}) {
							/call Buff_Raid "${Ini[${F_Char},Spells,Buff_HP]}" HP
								/if (${Macro.Return}) /return TRUE
						}
				}
		
				| -> Buff: Raid Symbol <-
				/if (${Ini[${F_Char},Buffs,Do_Buff_Symbol]}) {
					/call FindClassInGroupOrRaid DRU
					/if (${Macro.Return}) {
						/call Buff_Raid "${Ini[${F_Char},Spells,Buff_Symbol]}" Symbol
						/if (${Macro.Return}) /return TRUE
					}
					/if (!${Macro.Return} && !${Ini[${F_Char},Buffs,Do_Buff_Aego]}) {
						/call Buff_Raid "${Ini[${F_Char},Spells,Buff_Symbol]}" Symbol
						/if (${Macro.Return}) /return TRUE
					}
				}
			}
			
			| -=> XTarget Buffs <=-
			/if (${bDoBuffXTargets}) {
				| -> Buff: XTarget 1 <-
				/call Buff_XTarget "${Ini[${F_Char},Spells,XTarget_Buff1]}" 1
					/if (${Macro.Return}) /return TRUE
	
				| -> Buff: XTarget 2 <-
				/call Buff_XTarget "${Ini[${F_Char},Spells,XTarget_Buff2]}" 2
					/if (${Macro.Return}) /return TRUE
	
				| -> Buff: XTarget 3 <-
				/call Buff_XTarget "${Ini[${F_Char},Spells,XTarget_Buff3]}" 3
					/if (${Macro.Return}) /return TRUE
			}
		}
	}

	| -> Cures <-
	/if (${DoCures}) {
		| -> Cures: Peroidic Check <-
		/call Cure_Periodic_Check
			/if (${Macro.Return}) /return TRUE
	}
/return FALSE

sub KTDifficult_PAL
	| -=> Level 2 Diff Mobs <=-
	/if (${iKTDiff}==2) {
		/varset iHealPct ${Ini[${F_Char},Healing,Heal_Hard]}
		/varset iHealFastPct ${Ini[${F_Char},Healing,Fast_Hard]}
		/varset iHealHoTPct ${Ini[${F_Char},Healing,HoT_Hard]}
		/varset iHealMTPct ${Ini[${F_Char},Healing,MT_Heal_Hard]}
		/varset iHealMTFastPct ${Ini[${F_Char},Healing,MT_Fast_Hard]}
		/varset iHealMTHoTPct ${Ini[${F_Char},Healing,MT_HoT_Hard]}
		/varset iHealHoTGrpPct ${Ini[${F_Char},Healing,Grp_HoT_Hard]}
		/varset iHealAABestowDAMT ${Ini[${F_Char},Healing,AA_BestowDA_MT_Hard]}
		/if (${bDoMelee}) /varset bDiffMeleeOff TRUE
		/varset bDoMelee FALSE
	}

	| -=> Level 1 Diff Mobs <=-
	/if (${iKTDiff}==1) {
		/varset iHealPct ${Ini[${F_Char},Healing,Heal_Medium]}
		/varset iHealFastPct ${Ini[${F_Char},Healing,Fast_Medium]}
		/varset iHealHoTPct ${Ini[${F_Char},Healing,HoT_Medium]}
		/varset iHealMTPct ${Ini[${F_Char},Healing,MT_Heal_Medium]}
		/varset iHealMTFastPct ${Ini[${F_Char},Healing,MT_Fast_Medium]}
		/varset iHealMTHoTPct ${Ini[${F_Char},Healing,MT_HoT_Medium]}
		/varset iHealHoTGrpPct ${Ini[${F_Char},Healing,Grp_HoT_Medium]}
		/varset iHealAABestowDAMT ${Ini[${F_Char},Healing,AA_BestowDA_MT_Medium]}
		/if (${bDoMelee}) /varset bDiffMeleeOff TRUE
		/varset bDoMelee FALSE
	}

	| -=> Level 0 Diff Mobs <=-
	/if (${iKTDiff}==0) {
		/varset iHealPct ${Ini[${F_Char},Healing,Heal_Normal]}
		/varset iHealFastPct ${Ini[${F_Char},Healing,Fast_Normal]}
		/varset iHealHoTPct ${Ini[${F_Char},Healing,HoT_Normal]}
		/varset iHealMTPct ${Ini[${F_Char},Healing,MT_Heal_Normal]}
		/varset iHealMTFastPct ${Ini[${F_Char},Healing,MT_Fast_Normal]}
		/varset iHealMTHoTPct ${Ini[${F_Char},Healing,MT_HoT_Normal]}
		/varset iHealHoTGrpPct ${Ini[${F_Char},Healing,Grp_HoT_Normal]}
		/varset iHealAABestowDAMT ${Ini[${F_Char},Healing,AA_BestowDA_MT_Normal]}
		/if (${bDiffMeleeOff}) {
			/varset bDiffMeleeOff FALSE
			/varset bDoMelee TRUE
		}
	}
/return FALSE

Here is a sample ini for the paladin. PAL_Name_Server
Rich (BB code):
[Spells]
Buff_HP=
Buff_Aego=
Buff_SelfHP=
Buff_Symbol=
Buff_AC=
Buff_Str=
Buff_SelfCombInnat=
Buff_MeleeGuard=
Buff_SelfATK=Yaulp IV
Buff_Aura=

Buff_Familiar=
Buff_Illusion=
Buff_MassGroup=
	
Heal_Single=Superior Healing
Heal_Fast=
Heal_HoT=Celestial Cleansing
Heal_Group=Wave of Healing
Heal_Group2=Healing Wave of Prexus
Heal_Group_HoT=
Heal_Emergency_Self=
	
Cure_Disease=
Cure_Poison=
Cure_Curse=Remove Greater Curse
Cure_Blind=
Cure_Corruption=
	
Rez_Single=Resurrection

DMG_DirDMG=Holy Might
DMG_DirDMG2=Holy Might
DMG_Undead_DirDMG=Exile Undead
DMG_Summoned_DirDMG=
DMG_AEDmg=
DMG_DoT_Undead=
	
AA_Heal_Group_HoT=Celestial Regeneration
AA_Heal_Bestow_DAA=Bestow Divine Aura Azia
AA_Heal_Station=
AA_Heal_DivineArb=
AA_Cure_Purify=Purify Soul
AA_Cure_Radiant=
AA_Rez_Divine=Divine Resurrection
AA_Rez=
AA_DirDMG_Undead=Turn Undead

ITM_Mount=White Wolf Saddle

Misc_Dispell=Annul Magic
Misc_Invis=
	
XTarget_Buff1=Blessing of Aegolism
XTarget_Buff2=
XTarget_Buff3=

[Gems]
Gem_1=Celestial Elixir
Gem_2=Complete Healing
Gem_3=Ethereal Light
Gem_4=Word of Vigor
Gem_5=Yaulp V
Gem_6=Remedy
Gem_7=Counteract Disease
Gem_8=
Gem_9=

[Buffs]
Do_XTarget_Buffs=FALSE
Do_Raid_Buffs=FALSE
ManaToLow=25
HPStopBuff=50
Do_Buff_HP=FALSE
Do_Buff_Aego=TRUE
Do_Buff_SelfHP=TRUE
Do_Buff_Symbol=TRUE
Do_Buff_AC=FALSE
Do_Buff_Str=FALSE
Do_Buff_SelfCombInnat=FALSE
Do_Buff_MeleeGuard=FALSE
Do_Buff_DeathPact=FALSE
Do_Buff_SpellFocus=FALSE
Do_Buff_Familiar=FALSE
Do_Buff_Illusion=FALSE
Do_Buff_Aura=FALSE

[Combat]
MT=Bobtank
MA=Bobtank
AssistRange=100
AssistAt=99
Do_Melee=TRUE
Do_GetBehind=FALSE

[Damage]
HP_Stop_Damage=70
Mana_Stop_Damage=50
Aggro_Stop_Damage=110
AE_Number_Mobs=2
DoT_Max_Try=2
Do_Damage=TRUE
Do_DirectDMG=TRUE
Do_AEDMG=FALSE
Do_DoT=FALSE

[Debuff]
Mana_Stop_Debuff=60
HP_Stop_Debuff=70
Debuff_Max_Try=2

[Healing]
Do_XTarget_Heal=TRUE
Do_Cures=TRUE
Rez_NoCombat=TRUE
Rez_InCombat=FALSE

HPStopRez=70
Emergency_Self=20
NoCombat_TopOff=85
	
Heal_Normal=60
Fast_Normal=50
HoT_Normal=70
MT_Heal_Normal=75
MT_Fast_Normal=45
MT_HoT_Normal=85
Grp_HoT_Normal=75
AA_BestowDA_MT_Normal=0
	
Heal_Medium=65
Fast_Medium=60
HoT_Medium=70
MT_Heal_Medium=80
MT_Fast_Medium=70
MT_HoT_Medium=0
Grp_HoT_Medium=0
AA_BestowDA_MT_Medium=0
	
Heal_Hard=70
Fast_Hard=60
HoT_Hard=80
MT_Heal_Hard=85
MT_Fast_Hard=55
MT_HoT_Hard=0
Grp_HoT_Hard=85
AA_BestowDA_MT_Hard=0

Cure_Per_Check=60s

[Power]
SitDuringCombat=FALSE
MedAt=92
CombatMed=1

[Movement]
MoveType=Manual
FollowDist=10
Camp_Leash=15

[General]
Skilling_Language=FALSE
Skilling_MiscSkills=FALSE
UtilitySpellGem=8

[Bandolier]
Normal=
Buff_Proc=

[Chat]
EQBCServer=127.0.0.1
IRC=FALSE
IRCServer=192.168.121.2
IRCPort=6667
IRCChan=#EQ
IRCJoinWait=130

[AA]
Banestrike=|
Author
etherealmist
First release
Last update
Rating
0.00 star(s) 0 ratings

Share this resource

Back
Top