• 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

Into the Hills Chanter Puller (2 Viewers)

geEQ

Member
Joined
Jan 24, 2014
RedCents
99¢
Someone has converted Blitter's Into the Hills macro - dead2.mac to use a chanter as the puller. You can go check out the Macroquest VIP Macros section to get it. I think many of us have been looking forward to something like this.

The link is:
COTF-Into the Hills (Chanter version)
 
I used it for a while yesterday with the guy who made the changes. We are tweaking it so that it will be smoother. My chanter had a few issues, but we worked them out and it runs smooth. I actually have fewer deaths than with my bard. Go figure.

Also working with him to make the SK and monk versions.
 
Great, eqgeek! I have used the crap out of the original Into the Hills macro. I now have six toons to max level and AA and five others to level 100 in a couple of weeks. It works great for afk experience, but I would love to make my chanter, me true main character, the central part of the macro.
 
Its been good to test because his chanter is max everything, mine is not! This showed is some things to improve. For example, I suggested that he add a few things like hitting mana reserve when medding. His chanter never needs to med, mine did. Also I suggested adding the pet to the buffs, then also to the cast/attack section.

I also modified his Mac to account for kissassist since he doesn't use it.
 
Nice my chanter isnt max everything and needs to med also.... and mostly Rk. one spells...... okay so I got all the spells set up... how come there is no slow spell?
 
Last edited:
If I recall he's using the AA slow. I will check to be sure.

Yes, just looked and he's slowing the mob with Dreary Deeds.
 
Pulls with Ethereal Manipulation AA... You shouldn't see it pulling with the bard AA except in the /bc command it says "Bellow" even though it is using EM.

Do you have kiss loading properly? Sometimes mine say ready before KA is working.
 
okay how do I set it up so the chanter goes off and pulls another mob while the 1 left in camp is at 70%? I thought I was folling the directions in the macro right but turns out I am doing something wrong because the chanter wont go run and look for a 2nd once the first is below 70
 
yea I was messing with it and couldnt get it... so I gave up and will jstu keep letting it go slow and steady that way I dont die toooooo much until the bard is 95 or higher so he can pull it faster
 
i had how i have to take my chanter off the mount. she gets stuck on the bridge if on the mount. and the path.ini is bad always runs my in to the walls so i have to use the bards path. also trying to figure out why kissassist wont loot even if put in looters position in macro.
 
i had how i have to take my chanter off the mount. she gets stuck on the bridge if on the mount. and the path.ini is bad always runs my in to the walls so i have to use the bards path. also trying to figure out why kissassist wont loot even if put in looters position in macro.

The path ini file for me is the same as for the bard, but you do need to be off the mount. I believe that using the Plaguebringer illusion/clicky will help if you have a mana problem - which I really struggle with right now.

As for the looter issue, I believe that the only reason there is a looter name in there is because the original author (blitter) copied his scouting ahead mac and didn't remove the part where you have to look for the item to click at the end - and in case you use a looter mac, which we have built into KA. What I've done is just add /bct ${TankName} /looton to the buff section.

Also, I have made a ton of minor little changes to the mac to customize it for my chanter. I took out some of the DPS, added the pet to the buffs and DPS section, added the mana draw to the med section (need to fully test that), removed/commented some of the bard nonsense, and I put my Kissassist load stuff just before the chanter buffs.

Right now this works great for me, though my chanter dies a few times and it's slower than doing it manually. The author of the chanter mac plans to try and move the group (currently broken in blitter's original mac) and that should really speed it up.
 
Noob question.

Dl the chanter-deadhills mac and the path file, pot in macro folder, connect all toons to bc, stand infront of gribble, target, /mac chanter-deadhills on chanter.


"deadzone.mac" < What is this?
 
Noob question.

Dl the chanter-deadhills mac and the path file, pot in macro folder, connect all toons to bc, stand infront of gribble, target, /mac chanter-deadhills on chanter.


"deadzone.mac" < What is this?

The deadzone mac is what the other toons run so that they will target grib and zone in. The mac ends itself as you zone in, then the chanter-deadhills mac will tell your toons to start your other mac on the other toons.
 
okay so I was having a problem with both macros for Bard and Chanter..... the problem was at the end something strange would happen and the puller couldn't hail gribble at the end and wouldn't finish the task and then remove everyone and not get the reward at the end...... second problem is the macro wont start over again because when you finally get to zone out because you removed everyone from instance your OOR from Gribble to request again.... soooooo this is how I fixed the problems

Rich (BB code):
Sub GetInstance
  /tar Gribble
  /stick
  /delay 30
  /if (${Target.Distance}<50) {
    /say willing
    /delay 2s
    /notify TaskSelectWnd TSEL_TaskList listselect 3
    /delay 2s
    /notify TaskSelectWnd TSEL_AcceptButton leftmouse 3
  } else {
   /bc Gribble is OOR
   /endm
  }
/return

the above one fixs the OOR for gribble.....

The below one fixes the final hail

Rich (BB code):
Sub ReturnToGribble
  /delay 90s ${Me.CombatState.NotEqual[COMBAT]}
  /delay 180s !${Me.XTarget}||${Me.XTarget[1].PctHPs}>99
  /delay 15s
  /beep
  /bca //end
  | My Tank automatically aggro's things with in range - just turning him off to make sure he doesn't do anything silly :)
  /bct ${TankName} //end
  /delay 2s
  /bca //moveto loc 436.9 -282.3
  /bca //tar Gribble
  /tar Gribble
  /delay 5s
  /delay 20s ${SpawnCount[PC]}==${SpawnCount[PC radius 40]}
  /bca //keypress H
  /keypress H
  /delay 5s
  /bca //say back
  /kickplayers task
  /delay 5s ${Window[ConfirmationDialogBox].Open}
  /nomodkey /notify ConfirmationDialogBox Yes_Button leftmouseup
  /delay 10s
  /say back
  /delay 120s ${Zone.ShortName.Equal[deadhills]}
  /delay 30s
  /varset CampNum 1
  /varset ReturnGribble 0
  /mac dead2
/return
 
Did you basically just change the time? I found that its a long delay before the final hail, and before everyone says leave.
 
no I left that alone.. I just made it make everyone hail before the puller does.... then I made the puller /stick to gribble so he runs up to him if he is OOR
 
Ok, just so you know, the author has completely rewritten this mac and it's working great for me. He included an INI file where you can set up your spells, clicky, and dps your own way. You also set tank, and toons here. We are currently working on moving a little code around so that kiss assist users will start their mac before the enchanter buffs. Previously it did that AFTEr and the chanter would start pulling before my team was ready.

We are trying to get the group to move, which will make it faster. I think that will take a longer time, and he's writing the code, i'm just testing. I don't know when he will post the new version, but I'll ask.

- - - Updated - - -

I would also add that because of the way he has deconstructed this mac and made it work for an enchanter, you can possibly switch the enchanter out for a monk and comment out the mez business.
 
awesome , The upgrades work a whole lot smoother almost never die now... but when I do die on the chanter I get a problem with the macro restarting the macro it does the wait4rez stuff then the rez command doesnt work right
 
Last edited:
Yes, the original Mac never addressed the rez. I think he is going to do version 2.0 that moves the group for shorter pulls, and worry about rez later. Honestly, after I got a few gear upgrades and some AA in defense, I stopped dying. Oh, and don't use a mount or lev, these seem to get me killed.
 
I am working on the move part of it as we speak, but not sure I'll get it done before I leave town for a week. eqgeek has been tremendous help to me with troubleshooting. Will do what I can though tomorrow to get it going right.

This is the current version I have working on.

Rich (BB code):
| Enchanter Dead Hills Routine. 
| Version 1.04
| Attempting to clean up some of the problems that people seem to be having. Also looking to 
| automate more of it instead of using /load etc. Make it a bit faster maybe. 
| 
| 

#include spell_routines.inc

#event ToonReady "<#1> Ready"
#event WarriorEnage "<#1#> Engaging #2#"
#event LootingEvent "#*# has looted a #1#.-#*#"
#event UpdateEvent "#*#Your task '#1#' has been updated."

Sub Main


	| Variables to determine when to do certain things. 
	| All settings for this macro can be found in the file set in IniSelfBuff
	| If you do not have this file, run the program for the first time and 
	| it will create one for you. Then you must go through and edit all of the variables
	| to match your character. 
	
	/declare IniSelfBuff 	 string outer   mystuff.ini
	/declare NukeAt		int outer	
	/declare NoNukeAt 	int outer
	/declare NoDebuffAt 	int outer	
	/declare DoNuke1	int outer
	/declare DoNuke2	int outer 
	/declare DoNuke3	int outer
	/declare TankName 	string outer 
	/declare TankMacro 	string outer 
	/declare LooterName 	string outer 
	/declare LooterMacro 	string outer 
	/declare Toon1 		string outer
	/declare Macro1 	string outer 
	/declare Toon2 		string outer
	/declare Macro2 	string outer
	/declare Toon3 		string outer
	/declare Macro3 	string outer
	/declare SpellNuke1 	outer
	/declare SpellNuke2 	outer
	/declare SpellNuke3 	outer
	/declare SpellMez   	outer
	/declare SpellAEMez 	outer
	/declare SpellRune  	outer
	/declare SpellRuneBuff  outer
	/declare SpellDot   	outer
	/declare SpellStun  	outer
	/declare SpellTash  	outer
	/declare SpellCripple	outer
	/declare SpellAura1		outer
	/declare SpellAura2 		outer	
	/declare SpellAura1Message	outer
	/declare SpellAura2Message	outer
	/declare CampX		int outer
	/declare CampY		int outer
 	/declare Buff1 		outer
	/declare Buff2		outer
	/declare Buff3		outer
	/declare IniPathFile	 string outer
  	/declare Path[5,20,2] 	int outer
  	/declare MaxPaths 	int outer
  	/declare NumReady 	int outer 	0
	/declare CampNum 	int outer 	1
  	/declare ReadysRequired int outer 	0
  	/declare BardSong 	int outer 	0
  	/declare MezMob 	int outer 	0
  	/declare MezCount 	int outer 	0
  	/declare MezTimer 	timer outer 	0
  	/declare ClickName 	string outer 	0
  	/declare OuterItem 	string outer
  	/declare ReturnGribble 	int outer 	0
  	/declare zrange	 	int outer 	100
  	/declare BugTimer 	timer outer 	20000
  	/declare BugF 		int outer 	0
  	/declare NumTargets 	int outer 	0
  	/declare CurrentTarget 	int outer 	0
  	/declare NumMez 	int outer 	0
  	/declare MelodyTimer	timer outer 	0
  	/declare EventStep 	int outer 	0
	/declare MezTimerTwo    timer outer     0
	/declare Restart	int outer 

	/declare kk int local 0
  

  	/declare MezTargets 	int outer 0
  	/declare CheckMez 	timer outer 0
:StartAgain

	/varset NumReady 0
	/varset CampNum 1
  	/varset ReadysRequired 0
  	/varset BardSong 0
  	/varset MezMob 0
  	/varset MezCount 0
  	/varset MezTimer 0
  	/varset ClickName 0
  	/varset ReturnGribble 0
  	/varset zrange	100
  	/varset BugTimer 20000
  	/varset BugF 	0
  	/varset NumTargets 0
  	/varset CurrentTarget 0
  	/varset NumMez 0
  	/varset MelodyTimer 0
  	/varset EventStep 0
	/varset MezTimerTwo 0
	/varset Restart 0
	
	/doevents flush

	/if (${Me.Pet.ID}) /pet hold on	

	| Here begins the actual bulk of the routines. 

		/for kk 1 to ${Group}
    			/if (${Group.Member[${kk}].Type.Equal[PC]}) {
				/varcalc ReadysRequired ${ReadysRequired}+1
			}
		/next kk

	 /if (!${Zone.ShortName.Equal[deadhills_errand]})  /echo Readys Required: ${ReadysRequired}
	
	/if (${Zone.ShortName.Equal[deadhills_errand]}) {
		/call LoadIni
		/call SetUp
		/call MemSpells
		 /goto :killmob
	}
  	/call GetInstance
:SkipZoneIn
  	/call ZoneIn
	
	| Move Puller and Tank to the Camp

  	/bct ${TankName} //moveto loc ${CampX} ${CampY}
  	/moveto loc ${CampX} ${CampY}
	/delay 3s
  	
:killmob
	/if (${Me.Buff[Slackening Wave Rk. II].ID}) {
		/bc Mezzed myself. Waiting. 
		/delay 1s
		/goto :killmob
	}
	/if (${Me.CombatState.NotEqual[COMBAT]} && ${ReturnGribble}==1) { 
		/call ReturnToGribble
		/goto :StartAgain
	}
  	/if (${Me.CombatState.NotEqual[COMBAT]}) {
       		/call PullMobA 1 6 160 0 4
		/if (${Restart}) /goto :StartAgain
 	}
	
	/doevents
  
	| Ressurection routine should go here.
	/if (${Me.State.Equal[HOVER]}) {
    		/varset CampNum 6
    		/call Wait4Rez
  	}

  	/delay 2
  	/doevents
  	
	| No mobs? Go back to the top. 
	/if (${Me.XTarget}==0) /goto :killmob

	| Ther eare mobs in the Xtarget Window, time to kill them/mez them etc. 
   	/if (!${Target.ID} || (${Target.ID} && !${Target.AggroHolder.ID})) {
   		/if (${Me.XTarget}>0) {
			/if (${Me.XTarget}==1) { 
  				/xtar 1
				/delay 10
			} else { 
				/xtar 2
				/delay 10 
			}
		}
   	}

	
	|/grouproles unset ${Me.Name} 3
	/if (${Target.ID}) /face fast
	
	/delay 1s
	| Make sure runes are up. 

	/if (!${Me.Buff[${SpellRuneBuff}].ID}) {
		/bc Casting - ${SpellRune}
		/cast "${SpellRune}"
		}
	/if (${Me.Buff[${Spell[27616].Name}].ID}) {
		/alt act 791
		/bc Casting - Veil of Mindshadow
		}
	/if (!${Me.Buff[Eldritch Rune].ID}) { 
		/alt act 173
		/bc Casting - Eldritch Rune
		}
        /if (${Target.Distance}<70) { 
		/if (${Me.PctMana}<60 && !${FindItem[Latent Robe of Compulsion].Timer}) {
			 /useitem 17
			/bc Robe Click for Mana
		}
		/if (${Me.PctMana}<70 && ${Me.AltAbilityReady[Fundament: Second Spire of Enchantment]}) {
			/alt act 1381
			/bc Second Spire AA for Mana.
		}
				
		/doevents
        	/if (${Me.XTarget}==1 || (${MezTimerTwo.Value} && ${Me.XTarget}>1)&&!${Target.Dead}) {
			/xtar 1
			/if (!${Me.Buff[${SpellRuneBuff}].ID}) {
				/bc Casting ${SpellRune}...
				/call cast "${SpellRune}"
			}
			/delay 10
			/if (!(${Target.ID}==${Me.Pet.Target.ID}) && ${Me.Pet.ID}) /pet attack
			/if (!${Target.Buff[${SpellTash}].ID} && ${Int[${Target.PctHPs}]}>${NoDebuffAt}) {
				/bc Casting ${SpellTash}...
		 		/call cast "${SpellTash}"
				/goto :NextPass
			}
			/if (!${Target.Buff[${SpellCripple}].ID} && ${Int[${Target.PctHPs}]}>${NoDebuffAt}) {
				/bc Casting ${SpellCripple}
				/call cast "${SpellCripple}"
				/goto :NextPass
			}
			/if (!${Target.Buff[${Target.Slowed}].ID} && ${Int[${Target.PctHPs}]}>${NoDebuffAt}) {
				/bc Casting Dready Deeds AA
				/alt act 753
				/delay 4s
				/goto :NextPass
			}
			/if (!(${Me.Aura[1].Equal[${SpellAura1Message}]}) && !(${Me.Aura[2].Equal[${SpellAura1Message}]})) {
				/bc Casting ${SpellAura1}.... 
				/delay 1s
				/call cast "${SpellAura1}"
				/delay 3s
  			}
    			/if (!(${Me.Aura[1].Equal[${SpellAura2Message}]}) && !(${Me.Aura[2].Equal[${SpellAura2Message}]})) {
				/bc Casting ${SpellAura2}
				/delay 1s
				/call cast "${SpellAura2}"
				/delay 3s
   			}
			/xtar 1
			/delay 10
			/if (${Int[${Target.PctHPs}]}<${NukeAt} && ${Int[${Target.PctHPs}]}>${NoNukeAt}) {
				| Nuke Routines. 

				/if ((${Me.Gem[${SpellNuke1}]})&&(${Me.SpellReady[${SpellNuke1}]})&&(!${Me.Casting.ID})&& ${DoNuke1}) {
					/bc Casting ${SpellNuke1}....
					/call cast "${SpellNuke1}"
				}
				/if ((${Me.Gem[${SpellNuke2}]})&&(${Me.SpellReady[${SpellNuke2}]})&&(!${Me.Casting.ID})&& ${DoNuke2}) {
					/bc Casting ${SpellNuke2}...
					/call cast "${SpellNuke2}"
				}
				/if ((${Me.Gem[${SpellNuke3}]})&&(${Me.SpellReady[${SpellNuke3}]})&&(!${Me.Casting.ID})&& ${DoNuke3}) {
					/bc Casting ${SpellNuke3}...
					/call cast "${SpellNuke3}"
				}
			}
			/delay 10
:NextPass
			/doevents
		}
	
		/if (${Me.XTarget}>1 && !${MezTimerTwo.Value}) {
			/xtar 2
			/delay 1s
			/if (${Me.XTarget}==2) {
:ReMez
				/bc Casting ${SpellMez} on ${Target.Name}....
				/call cast "${SpellMez}"
				/if (!${Target.ID}) /goto :SkipMez
				/if (${Me.XTarget}<2) /goto :SkipMez
				/if (!${Macro.Return.Equal["CAST_SUCCESS"]}) /goto :ReMez
			} else {
:ReAEMez
				/if (${Target.ID}) /face fast
				/if (!${Target.ID}) /goto :SkipMez
				/bc Casting Bite of Tashani AA
				/alt act 1125
				/delay 10
				/bc Casting ${SpellAEMez}....
				/call cast "${SpellAEMez}"
				/for MezCount 2 to ${Me.XTarget}
					/xtar ${MezCount}
					/delay 10 
					/if (!${Target.Buff[${Target.Mezzed}].ID}) /goto :ReAEMez
					/if (${Me.XTarget}<3) /goto :SkipMez
				/next MezCount
	
			}
		/varset MezTimerTwo 360
:SkipMez
		}
	
   
  	}
  

 	/delay 2
 	/goto :killmob
/return

 


Sub SetUp
	/declare kk int inner
	/declare i int inner
	/declare k int inner
  	/alert clear 1
  	/alert add 1 Gribble
 	 /alert add 1 adventurer
  	/alert add 1 Cogwitz
  	/hidecorpse looted
  	/bct ${TankName} //alert add 1 Gribble
  	/bct ${TankName} //alert add 1 adventurer
	
	
	  /varset i 1

	|  Loads the Path file

:iloop1

    	/varset k 1
    	/if (!${Bool[${Ini[${IniPathFile},"Path${i}","PointX${k}"]}]}) {
      		/varcalc MaxPaths ${i}-1 
      		/echo Number of paths ${MaxPaths}    
      		/return
    	}

:kloop1

      	/if (!${Bool[${Ini[${IniPathFile},"Path${i}","PointX${k}"]}]}) {
        	/varset Path[${i},${k},1] 0
        	/varset Path[${i},${k},2] 0
        	/varcalc i ${i}+1
        	/goto :iloop1
      	} else {
    		|    /echo ${i} ${k} ${Ini[${IniPathFile},"Path${i}","PointX${k}"]}
        	/varset Path[${i},${k},1] ${Ini[${IniPathFile},"Path${i}","PointX${k}"]}
        	/varset Path[${i},${k},2] ${Ini[${IniPathFile},"Path${i}","PointY${k}"]}
        	|/echo ${Path[${i},${k},1]}
        	/varcalc k ${k}+1
     	}
    
 	/goto :kloop1

/return

Sub ReturnToGribble
  	/delay 90s ${Me.CombatState.NotEqual[COMBAT]}
  	/delay 180s !${Me.XTarget}||${Me.XTarget[1].PctHPs}>99 
  	/delay 15s
  	/beep
  	/bca //end
  	| My Tank automatically aggro's things with in range - just turning him off to make sure he doesn't do anything silly :)
  	/bct ${TankName} //end
 	/delay 2s
  	/bca //moveto loc 436.9 -282.3
  	/bca //tar Gribble
  	/tar Gribble	
	/delay 5s
  	/delay 20s ${SpawnCount[PC]}==${SpawnCount[PC radius 40]}
  	/keypress H
  	/delay 5s
  	/bca //say back
  	/kickplayers task
  	/delay 5s ${Window[ConfirmationDialogBox].Open}
  	/nomodkey /notify ConfirmationDialogBox Yes_Button leftmouseup
  	/delay 10s
  	/say back
  	/delay 120s ${Zone.ShortName.Equal[deadhills]}
  	/delay 30s
  	/varset CampNum 1
  	/varset ReturnGribble 0
	/varset Restart 1
/return 

Sub GetInstance
	/bc Getting instance, and zoning in.
  	/tar Gribble
  	/delay 10
  	/if (${Target.Distance}<50) {
    		/say willing
    		/delay 2s
    		/notify TaskSelectWnd TSEL_TaskList listselect 3
    		/delay 2s
    		/notify TaskSelectWnd TSEL_AcceptButton leftmouse 3
  	} else {
   		/bc Gribble is OOR
   		/endm
  	}
/return

Sub Wait4Ready(int MaxReady)
	|  This is a routine I call which waits for every toon to say they are ready to proceed.  I normally use this 
	|  for zoning and moving between camps (I've used the slacker /afol method tho in this macro)
	

  	/doevents flush
:loop
   	/doevents
   	/delay 1
  	/if (${NumReady}<${MaxReady}) /goto :loop
  	/bc All toons are [+g+]Ready
  	/varset NumReady 0
/return

Sub ZoneIn

	/declare kk int inner
	/declare bufflist string local ${Ini[${IniSelfBuff}, MyBuffs]}
	/declare buffloop int local 0 
	/declare lastbuff int local 0
:shortloop
  	/tar Gribble
	|----------
	|
	|
	|  Insert your /bct commands to role buffs for the characters.  You can do it here (in deadhills) b4 you zone in.
	|
	|----------
	|  /bct ${Toon1} //cast "Talisman of the Courageous Rk. II"
	|  /bct ${Toon2} //cast "Unified Hand of Certitude"
	|  /delay 10s
	| Group perfected Leviatation
	|  /bct ${Toon1} //alt activate 1666
	|  /delay 5
	|  /bct ${Toon1} //cast "Talisman of Celerity"

  	/delay 32s
  	/say leave
  	/delay 120s ${Zone.ShortName.Equal[deadhills_errand]}
  	/if (!${Zone.ShortName.Equal[deadhills_errand]}) /goto :shortloop
	/call LoadIni
	/call SetUp
  	/keypress ESC
  	/delay 10s
  	/for kk 1 to ${Group}
      		/delay ${Math.Rand[9]}s
      		/bct ${Group.Member[${kk}].Name} //mac deadzone.mac
  	/next kk

	

  	/echo waiting for readys.
  	/call Wait4Ready ${ReadysRequired}
	
	/call SetupCamp
	/delay 8s
	|-------------------
	|
	|  Or you can do it here, inside the zone
	|	
	|-------------------
	/if (!${Me.Gem[${Buff1}]} ) { 
      		/memspell 12 "${Buff1}" 
      		/delay 5s
	} 
	
	
	/call cast "${Buff1}"
	/delay 8s
	/if (!${Me.Gem[${Buff2}]} ) { 
      		/memspell 12 "${Buff2}" 
      		/delay 5s
	} 
	/call cast "${Buff2}"
	/delay 8s
	/if (!${Me.Gem[${Buff3}]} ) { 
      		/memspell 12 "${Buff3}" 
      		/delay 5s
	} 
	/call cast "${Buff3}"
	/delay 8s

	/call MemSpells
	/delay 8s

	| Load up some clickie buffs on toons.
  	/bca //useitem 3
  	/delay 6
 	/bca //useitem 6
 	/delay 6
  	/bca //useitem 20
  	/delay 6
  	/bca //useitem 11
  	/delay 6
  	/bca //useitem 15
  	/delay 2s

	| Custom self buffs from the ini file defined in IniSelfBuff at top.	
	| File should look similar to the following
	|
	| [MyBuffs]
	| Item1name=casttime
	| Item2name=casttime
	| Item3name=casttime
	| etc
	|
	| I.E. 
	| [MyBuffs]
	| Staff of Eternal Eloquence=30
	
	/varcalc lastbuff ${bufflist.Count[|]}-1


	/if (!${Ini[${IniSelfBuff}].Length}) {
		/echo You do not have a ${IniSelfBuff} file created. Skipping.
		/goto :SkipSelfBuff
	}
	/for buffloop 1 to ${lastbuff}
		/echo Attempting to use item: ${bufflist.Arg[${buffloop},|]}
		/useitem "${bufflist.Arg[${buffloop},|]}"
		/delay ${Ini[${IniSelfBuff},MyBuffs,${bufflist.Arg[${buffloop},|]}]}
	/next buffloop

 :SkipSelfBuff

/return


Sub FollowPath(PathNumber)
	/declare i int inner
   	/varset i 1

:movecamploop1

     	/doevents
     	/bc [+Y+]Path : [+y+]${PathNumber}[+Y+]  Point : [+y+]${i}  [+x+]
     	/squelch /moveto loc ${Path[${PathNumber},${i},1]} ${Path[${PathNumber},${i},2]}    
     	/delay 60s ${MoveTo.Stopped}
  	/varcalc i ${i}+1
  	/if (${Bool[${Path[${PathNumber},${i},1]}]}) /goto :movecamploop1
/return


Sub SetupCamp

	|----------------
	|
	|  This area is where you send out /bct's to your other toons to set up.  i.e The tank sets up ready to receive mobs, you healers set up.
	|
	|-----------------
  	|/bct ${Toon2} //tar ${TankName}
  	/bca //tar ${TankName}
	/delay 5s
  	/bct ${TankName} //mac ${TankMacro}
  	/bct ${Toon1} //mac ${Macro1}
  	/bct ${Toon3} //mac ${Macro3}
  	/bct ${Toon2} //mac ${Macro2}
  	/bct ${LooterName} //hidecorpse looted
  	/delay 5
  	/bct ${LooterName} //mac ${LooterMacro}
  	/delay 5s
/return

Sub PullMobA(PullType, MaxMobs, PullRange, MezRange, NumberMobsToCheck)
	| This macro no longer uses the PullType but I haven't removed it yet.  (To avoid
	| issues with calls up top. Eventually I'll remove it and change all those calls. 
	| For now I've removed all the bard fade checks and such, the chanter will not fade
	| with the current setup.  My chanter has never needed to with 4 mobs. 

	|| PullType = 1 = Boastful Bellow,  2 = Sonic Displacement, 4 = Slumber, 8 = Double Pull...  (bitwise operation)
	/declare i int inner
	/declare EndOfPath int inner 0
	/declare CheckMob int inner 1
	/declare PullList string inner
	/declare tt int inner 0


  	/if (${Zone.ShortName.NotEqual[deadhills_errand]}) {
     		/bc Not in the correct zone
     		/bca //end
    	 	/end
  	}

 	/if (!(${Me.Aura[1].Equal[${SpellAura1Message}]}) && !(${Me.Aura[2].Equal[${SpellAura1Message}]})) {
		/echo Twincast Down, casting. 
		/delay 1s
		/call cast "${SpellAura1}"
		/delay 3s
  	}

    	/if (!(${Me.Aura[1].Equal[${SpellAura2Message}]}) && !(${Me.Aura[2].Equal[${SpellAura2Message}]})) {
		/echo Mana Reverb down, casting
		/delay 1s
		/call cast "${SpellAura2}"
		/delay 3s
   	}
	/if (!${Me.Pet.Buff[${SpellStun}]} && ${Me.Pet.ID}) {
		/bc Buffing Pet with ${SpellStun}
		/call cast "${SpellStun}"
		/delay 3s
	}
  	/varset EndOfPath 0
  	/varset i 1
  	/if (${Me.PctMana}<15) {
		/if (${Me.AltAbilityReady[Mana draw]}) {
			/bc Casting Mana Draw for some mana.
			/call Cast "Mana draw" alt 10s
			/goto :SkipMed 
		} 
     		/sit
		/echo Medding for some Mana....

:MedIt
     
     		/if (${Me.PctMana}<99) /goto :MedIt

:SkipMed

	}

:moveloop
     	/bc [+Y+]Path : [+y+]${CampNum}[+Y+]  Point : [+y+]${i}  [+x+]
      	/squelch /moveto loc ${Path[${CampNum},${i},1]} ${Path[${CampNum},${i},2]}
:MoveLoop1
       	/doevents

	|  This is the grunt of the pulling routine
	|  This bit is checking for targets while moving....
       	/varset CheckMob ${SpawnCount[NPC radius ${PullRange} zradius ${zrange} los noalert 1]}
       	/if (${CheckMob}>${NumberMobsToCheck}) /varset CheckMob ${NumberMobsToCheck}
       	/if (${CheckMob}) {
         	/for tt 1 to ${CheckMob} 
           		/doevents  
           		/if (${ReturnGribble}==1 || ${Me.CombatState.Equal[COMBAT]}) {
              			/varcalc i ${i}-1
              			/goto :ReturnPath
           		}
           		/tar id ${NearestSpawn[${tt}, NPC los radius ${PullRange} zradius ${zrange} noalert 1].ID}
           		/delay 2s ${Target.ID}==${NearestSpawn[${tt}, NPC los radius ${PullRange} zradius ${zrange} noalert 1].ID}||${Me.CombatState.Equal[COMBAT]}
           		/if (${Target.Type.Equal[NPC]} && ${Target.LineOfSight}) {
             			/if (${Zone.ShortName.NotEqual[deadhills_errand]}) {
     					/bc Not in the correct zone
     					/bca //end
   					/end
  				}
               			/bc Ethereal Mainpulation [+t+]${Target.Name}
              			/alt activate 2207
             			/delay 1
           		}   
          	/next tt
	}
         
     	/delay 1
    
     	/if (!${MoveTo.Stopped}) /goto :MoveLoop1

	|  This bit is checking for mobs to pull at the way point.

      	/varset CheckMob ${SpawnCount[NPC radius ${PullRange} zradius ${zrange} los noalert 1]}
       	/if (${CheckMob}>${NumberMobsToCheck}) /varset CheckMob ${NumberMobsToCheck}
       	/if (${CheckMob}) {
         	/for tt 1 to ${CheckMob} 
           		/doevents
           		/if (${ReturnGribble}==1 || ${Me.CombatState.Equal[COMBAT]}) {
              			/varcalc i ${i}-1
              			/goto :ReturnPath
           		} 
           		/tar id ${NearestSpawn[${tt}, NPC los radius ${PullRange} zradius ${zrange} noalert 1].ID}
          		/delay 2s ${Target.ID}==${NearestSpawn[${tt}, NPC los radius ${PullRange} zradius ${zrange} noalert 1].ID}||${Me.CombatState.Equal[COMBAT]}
           		/if (${Target.Type.Equal[NPC]} && ${Target.LineOfSight}) {
            			/bc Ethereal Manipulation [+t+]${Target.Name}
				/if (${Zone.ShortName.NotEqual[deadhills_errand]}) {
     					/bc Not in the correct zone
     					/bca //end
     					/end
 				}
               			/alt activate 2207
             			/delay 4
           		}
           	/next tt
	}
  	/varcalc i ${i}+1
			
  	/if (${Bool[${Path[${CampNum},${i},1]}]}) /goto :moveloop
  	/delay 1s
  	/bc End of Path Encounted - No Aggro ${i}
  	/varset EndOfPath 1
  	/if (${CampNum}==3) {
    		/tar Cogwitz
    		/delay 2s ${Target.Name.Find[Cogwitz]}
    		/keypress H
    		/delay 5
    		/keypress H
  	}
  	/varcalc i ${i}-2
:ReturnPath
   	/stopsong
  
	/if (${Me.XTarget} && ${i}<10 && ${CampNum}==3 && ${NearestSpawn[1,NPC noalert 1].Distance}>180) {
      		/delay 3s ${NearestSpawn[1,NPC noalert 1].Distance}<160 || ${Me.PctHPs}<60
   	}

   	/if (${i}<1) { 
     		/stopsong
     		/if (${EndOfPath}==1 && ${CampNum}<3) {
        		/varcalc CampNum ${CampNum}+1
        		/varset EndOfPath 0
     		}
     		/if (${EndOfPath}==1 && ${CampNum}==3) {   
       			/call ReturnToGribble    
		
     		}
     		/return
   	}

   	
      	/squelch /moveto loc ${Path[${CampNum},${i},1]} ${Path[${CampNum},${i},2]}
  
:MoveLoop2

       	/delay 1
       	/doevents
    
     	/if (!${MoveTo.Stopped}) /goto :MoveLoop2
     	/varcalc i ${i}-1
     	/goto :ReturnPath
/return



Sub Event_ToonReady(Line1,ToonName)
  	
	/varcalc NumReady ${NumReady}+1

/return

Sub Event_LootingEvent(Line1, ItemName)
  	/varset ItemName ${ItemName.Right[-57]}
  	/varset ItemName ${ItemName.Left[-1]}
  	/bc Item = ${ItemName}
  	/if (${ItemName.Find[Excavation Tools]} || ${ItemName.Find[Dynamite]} || ${ItemName.Find[Xulous Spellbook]}) {
     		/bc Click item found = ${ItemName}
     		/delay 2s   
     		/delay 6s ${Me.CombatState.Equal[COMBAT]}
     		/bct ${LooterName} //useitem "${ItemName}"
     		/delay 6s ${Me.CombatState.Equal[COMBAT]}
     		/bct ${LooterName} //useitem "${ItemName}"
     		/varset OuterItem ${ItemName}
     		/varset ReturnGribble 1
  	}
/return

Sub Event_UpdateEvent(Line1, TaskName)

  	/varcalc EventStep ${EventStep}+1
 	 /bc [+m+]${TaskName}[+w+] : finished STEP [+m+]${EventStep}

/return


Sub MemSpells 

	/declare changed	int inner 	0

:SpellChanged
	/varset changed 0

	/echo Memming spells. Hang on. 
   	
	/if (!${Me.Gem[${SpellNuke1}]} ) { 
      		/memspell 1 "${SpellNuke1}" 
		/bc Memmeing ${SpellNuke1} - Slot 1
      		/delay 20
     		/varset changed 1
   	} 

   	/if (!${Me.Gem[${SpellNuke2}]} ) { 
      		/memspell 2 "${SpellNuke2}" 
		/bc Memming ${SpellNuke2} - Slot 2
      		/delay 20
     		/varset changed 1
	} 
  	
	/if (!${Me.Gem[${SpellNuke3}]} ) { 
      		/memspell 3 "${SpellNuke3}" 
      		/bc Memming ${SpellNuke3} - Slot 3
		/delay 20
     		/varset changed 1
	} 


	/if (!${Me.Gem[${SpellMez}]} ) { 
      		/memspell 4 "${SpellMez}" 
		/bc Memming ${SpellMez} - Slot 4
      		/delay 20
     		/varset changed 1
	} 

	/if (!${Me.Gem[${SpellAEMez}]} ) { 
      		/memspell 5 "${SpellAEMez}" 
		/bc Memming ${SpellAEMez} - Slot 5
      		/delay 20
     		/varset changed 1
	} 

	/if (!${Me.Gem[${SpellRune}]} ) { 
      		/memspell 6 "${SpellRune}"
		/bc Memming ${SpellRune} - Slot 6
      		/delay 20
     		/varset changed 1
	} 

	/if (!${Me.Gem[${SpellCripple}]} ) { 
      		/memspell 7 "${SpellCripple}"
		/bc Memming ${SpellCripple} - Slot 7
      		/delay 20
     		/varset changed 1
	} 

	/if (!${Me.Gem[${SpellDot}]} ) { 
      		/memspell 8 "${SpellDot}"  
		/bc Memming ${SpellDot} - Slot 8 
      		/delay 20
     		/varset changed 1
	} 

	/if (!${Me.Gem[${SpellStun}]} ) { 
      		/memspell 9 "${SpellStun}" 
		/bc Memming ${SpellStun} - Slot 9
      		/delay 20
     		/varset changed 1
	} 
	
	/if (!${Me.Gem[${SpellTash}]} ) { 
      		/memspell 10 "${SpellTash}" 
		/bc Memming ${SpellTash} - Slot 10
      		/delay 20
     		/varset changed 1
	} 

	/if (!${Me.Gem[${SpellAura1}]} ) { 
      		/memspell 11 "${SpellAura1}" 
		/bc Memming ${SpellAura1} - Slot 11
      		/delay 20
     		/varset changed 1
	} 

	/if (!${Me.Gem[${SpellAura2}]} ) { 
      		/memspell 12 "${SpellAura2}"
		/bc Memming ${SpellAura2} - Slot 12
      		/delay 20
     		/varset changed 1
	} 


	/if (${changed}) {
		/varset changed 0
		/bc test: spell changed so memming again.
		/goto :SpellChanged
	}

	/echo Spells are memmed. 

/return 

Sub LoadIni
/if (!${Restart}) {
	
/if (!${Ini[${IniSelfBuff}].Length}) {
		/echo Nosuch file ${IniSelfBuff}, creating file. 
		/echo Please Edit ${IniSelfBuff} and set up your macro. 
		/ini ${IniSelfBuff} "MySettings" "TankName" "TANKNAMEGOESHERE"
		/ini ${IniSelfBuff} "MySettings" "TankMacro" "TANKMACROGOESHERE"
		/ini ${IniSelfBuff} "MySettings" "LooterName" "LOOTERNAMEGOESHERE"
		/ini ${IniSelfBuff} "MySettings" "LooterMacro" "LOOTERMACROGOESHERE"
		/ini ${IniSelfBuff} "MySettings" "Toon1" "TOON1NAMEGOESHERE"
		/ini ${IniSelfBuff} "MySettings" "Macro1" "TOON1MACROGOESHERE"
		/ini ${IniSelfBuff} "MySettings" "Toon2" "TOON2NAMEGOESHERE"
		/ini ${IniSelfBuff} "MySettings" "Macro2" "TOON2MACROGOESHERE"
		/ini ${IniSelfBuff} "MySettings" "Toon3" "TOON3NAMEGOESHERE"
		/ini ${IniSelfBuff} "MySettings" "Macro3" "TOON3MACROGOESHERE"
		/ini ${IniSelfBuff} "MySettings" "NukeAt" "90"
		/ini ${IniSelfBuff} "MySettings" "NoNukeAt" "20"
		/ini ${IniSelfBuff} "MySettings" "NoDebuffAt" "65"
		/ini ${IniSelfBuff} "MySettings" "DoNuke1" "1"
		/ini ${IniSelfBuff} "MySettings" "DoNuke2" "1"
		/ini ${IniSelfBuff} "MySettings" "DoNuke3" "1"	
		/ini ${IniSelfBuff} "MySettings" "SpellNuke1" "Mindcleave Rk. II"
		/ini ${IniSelfBuff} "MySettings" "SpellNuke2" "Phantasmal Assault Rk. II"
		/ini ${IniSelfBuff} "MySettings" "SpellNuke3" "Chromaclash Rk. II"
		/ini ${IniSelfBuff} "MySettings" "SpellMez" "Confound Rk. II"
		/ini ${IniSelfBuff} "MySettings" "SpellAEMez" "Slackening Wave Rk. II"
		/ini ${IniSelfBuff} "MySettings" "SpellRune=Phantasmal Unity Rk. II"
		/ini ${IniSelfBuff} "MySettings" "SpellRuneBuff" "Polyiridescent Rune Rk. II"
		/ini ${IniSelfBuff} "MySettings" "SpellDot" "Mind Squall Rk. II"
		/ini ${IniSelfBuff} "MySettings" "SpellStun" "Dizzying Squall Rk. II"
		/ini ${IniSelfBuff} "MySettings" "SpellTash" "Eunciation of Tashan Rk. II"
		/ini ${IniSelfBuff} "MySettings" "SpellCripple" "Demolished Consciousness Rk. II"
		/ini ${IniSelfBuff} "MySettings" "SpellAura1" "Twincast Aura"
		/ini ${IniSelfBuff} "MySettings" "SpellAura1Message" "Twincast Aura"
		/ini ${IniSelfBuff} "MySettings" "SpellAura2" "Mana Reverberation Aura Rk. II"
		/ini ${IniSelfBuff} "MySettings" "SpellAura2Message" "Mana Rev. Aura Rk. II"
		/ini ${IniSelfBuff} "MySettings" "Buff1" "Hastening of Sviir Rk. II"
		/ini ${IniSelfBuff} "MySettings" "Buff2" "Voice of Foresight Rk. II"
		/ini ${IniSelfBuff} "MySettings" "Buff3" "Shield of the Dauntless Rk. II"
		/ini ${IniSelfBuff} "MySettings" "deadhills_errandCampX" "480.4"
		/ini ${IniSelfBuff} "MySettings" "deadhills_errandCampY" "-251"
		/ini ${IniSelfBuff} "MySettings" "deadhills_errand" "hillsinto.ini"
		/ini ${IniSelfBuff} "MyBuffs" "clickitem1" "casttime"
		/ini ${IniSelfBuff} "MyBuffs" "clickitem2" "casttime"
		/ini ${IniSelfBuff} "MyBuffs" "clickitem3" "casttime"
		/ini ${IniSelfBuff} "MyBuffs" "Staff of Eternal Eloquence" "30"
		/endmac
	} else {	
		/echo Loading INI settings from ${IniSelfBuff} 
		/varset NukeAt ${Ini[${IniSelfBuff},MySettings,NukeAt]}
		/varset NoNukeAt ${Ini[${IniSelfBuff},MySettings,NoNukeAt]}
	 	/varset NoDebuffAt ${Ini[${IniSelfBuff},MySettings,NoDebuffAt]}
		/varset DoNuke1 ${Ini[${IniSelfBuff},MySettings,DoNuke1]}
		/varset DoNuke2 ${Ini[${IniSelfBuff},MySettings,DoNuke2]}
		/varset DoNuke3 ${Ini[${IniSelfBuff},MySettings,DoNuke3]}
		/varset TankName ${Ini[${IniSelfBuff},MySettings,TankName]}
		/varset TankMacro ${Ini[${IniSelfBuff},MySettings,TankMacro]}
		/varset LooterName ${Ini[${IniSelfBuff},MySettings,LooterName]}
		/varset LooterMacro ${Ini[${IniSelfBuff},MySettings,LooterMacro]}
		/varset Toon1 ${Ini[${IniSelfBuff},MySettings,Toon1]}
		/varset Macro1 ${Ini[${IniSelfBuff},MySettings,Macro1]}
		/varset Toon2 ${Ini[${IniSelfBuff},MySettings,Toon2]}
		/varset Macro2 ${Ini[${IniSelfBuff},MySettings,Macro2]}
		/varset Toon3 ${Ini[${IniSelfBuff},MySettings,Toon3]}
		/varset Macro3 ${Ini[${IniSelfBuff},MySettings,Macro3]}
		/varset SpellNuke1 ${Ini[${IniSelfBuff},MySettings,SpellNuke1]}
		/varset SpellNuke2 ${Ini[${IniSelfBuff},MySettings,SpellNuke2]}
		/varset SpellNuke3 ${Ini[${IniSelfBuff},MySettings,SpellNuke3]}
		/varset SpellMez ${Ini[${IniSelfBuff},MySettings,SpellMez]}
		/varset SpellAEMez ${Ini[${IniSelfBuff},MySettings,SpellAEMez]}
		/varset SpellRune ${Ini[${IniSelfBuff},MySettings,SpellRune]}
		/varset SpellRuneBuff ${Ini[${IniSelfBuff},MySettings,SpellRuneBuff]}
		/varset SpellDot ${Ini[${IniSelfBuff},MySettings,SpellDot]}
		/varset SpellStun ${Ini[${IniSelfBuff},MySettings,SpellStun]}
		/varset SpellTash ${Ini[${IniSelfBuff},MySettings,SpellTash]}
		/varset SpellCripple ${Ini[${IniSelfBuff},MySettings,SpellCripple]}
		/varset SpellAura1 ${Ini[${IniSelfBuff},MySettings,SpellAura1]}
		/varset SpellAura1Message ${Ini[${IniSelfBuff},MySettings,SpellAura1Message]}
		/varset SpellAura2 ${Ini[${IniSelfBuff},MySettings,SpellAura2]}
		/varset SpellAura2Message ${Ini[${IniSelfBuff},MySettings,SpellAura2Message]}
		/varset Buff1 ${Ini[${IniSelfBuff},MySettings,Buff1]}
		/varset Buff2 ${Ini[${IniSelfBuff},MySettings,Buff2]}
		/varset Buff3 ${Ini[${IniSelfBuff},MySettings,Buff3]}
		/varset CampX ${Ini[${IniSelfBuff},MySettings,${Zone.ShortName}CampX]}
		/varset CampY ${Ini[${IniSelfBuff},MySettings,${Zone.ShortName}CampY]}
		/varset IniPathFile ${Ini[${IniSelfBuff},MySettings,${Zone.ShortName}]}
		/echo IniPathFile set to ${IniPathFile}
		/echo INI settings complete.
	}
}
/return
 
Last edited:
thanks for the update mine was working great for awhile and now my chanter gets halfway through step 3 and just stops and sits there till times out. ill try the update now. at first not having a bard to understand WHY it had to be just a bard to do this. but this chanter set up is great i love it

- - - Updated - - -

ohh you have it written in the macro that it uses a ini selfbuff. should say to look in the "mystuff.ini" took me a little while to find it

- - - Updated - - -

another glith when it creates the mystuff.ini it sets up the spells the Tash spell it creates is "SpellTash=Eunciation of Tashan" needs an "N" Enuncation. i fixed it on my ini but just heads up so when the macro makes the file it can do it.

- - - Updated - - -

one more so far in the mystuff.ini when created it sets path to look for "hillsinto.ini" but the path file we download is "deadpath.ini" its a simple fix to make the small adjustments but just trying to help and make it simple so someone can just download you path and macro and it will just work many thanks
 
I am working on the move part of it as we speak, but not sure I'll get it done before I leave town for a week. eqgeek has been tremendous help to me with troubleshooting. Will do what I can though tomorrow to get it going right.

This is the current version I have working on.

Thank you for sharing this here. If you want to post your macro in a new thread I will sticky it.
 
ohh you have it written in the macro that it uses a ini selfbuff. should say to look in the "mystuff.ini" took me a little while to find it

If you read his comments in the mac, I think he mentions this. It also shows in the MQ2 window that you need to edit it. The first time you use it, you might want to do /mqp on zone in and go edit the chanter file.

You also still need to set the roles and xtarget 1 on the chanter to tank or MA.


one more so far in the mystuff.ini when created it sets path to look for "hillsinto.ini" but the path file we download is "deadpath.ini" its a simple fix to make the small adjustments but just trying to help and make it simple so someone can just download you path and macro and it will just work many thanks

I believe he attaches the right file on the MQ2 forum. I'm guessing that if they make a new thread here, it will include both files and instructions. Meanwhile, anyone can PM or post here and I'll try to help. I'm not the writer, but just familiar with it from testing.
 
In the comments of the macro it states what I quoted. I have been using his macro from the first day. I'm a VIP mq2 member so I downloaded the files from there. His path ini that is downloaded is called deadpath.ini the macro is set to hillsinto.ini. I'm made my comments to help the writer and help others that may have a problem.
 
You also still need to set the roles and xtarget 1 on the chanter to tank or MA.

Sometimes I forget to set group roles and set xtarget1 in the bard macro, but there are some Everquest commands I discovered to add to a macro to do it. For the dead2.mac I added:

Rich (BB code):
| Set group roles and xtarget1 to Group Tank's Target
  /grouproles set ${TankName} 1
  /grouproles set ${TankName} 2
  /grouproles set ${Me.Name} 3
  /xtarget set 1 GTT
 
Last edited:
This is great. Now if we could just get it to work with a pet tank, I would be in heaven.
 
I've got an sk version pulling/tanking. Still adding the tanking variables but it pulls and tanks and i have most my tank stuff in holyshits for now.

When I say pulling i mean just pulling as many as it aggros no splitting or single pulls. So far with 1 zerker and 1 wizard dpsing it takes me 32m with it. Not going to get much faster thats 80-90k dps total with SK dps.
 
Last edited:
I've got an sk version pulling/tanking. Still adding the tanking variables but it pulls and tanks and i have most my tank stuff in holyshits for now.

When I say pulling i mean just pulling as many as it aggros no splitting or single pulls. So far with 1 zerker and 1 wizard dpsing it takes me 32m with it. Not going to get much faster thats 80-90k dps total with SK dps.

Can you post it in it's own thread? I'd like to test it out. I'll have to use my lower level toons though... My SK is only 98 and I think he'd get smooshed with the rest of them being level 100.
 
Can you post it in it's own thread? I'd like to test it out. I'll have to use my lower level toons though... My SK is only 98 and I think he'd get smooshed with the rest of them being level 100.

I have to finish adding the tanking stuff maybe have it use an ini also. When I'm done it will work for anyone to pull.
 
I've got one that just brute pulls, but my sk can't handle it yet. Working on one that uses his abilities to split, very difficult to work out the logic behind it to make it consistent. Still plugging away at it though.
 
Would you be willing to hook us up with the version you have just brute force pulling? Also, how many AA's does your SK have and what other classes are you using in your group?
 
You could use the snare to split they have an undead and normal version in AAs. My SK is max AAs. I use bard, zerker, wizard, sk, cleric, shaman to test. I will replace the shaman with another dps once i have it how I want.

Update

I moved all the Settings to an ini you wont ever have to edit the macro. Added most of the SK stuff for aggro, nukes, ae aggro, self buffs, life taps. Of course none of this can be tested by me until MQ2 is up again.
 
Last edited:
what can be wrong for me: i start the deadhill.mac and enc-toon gets the task, zones in and wants to start to pull. but none of the other toons reacts in any way - if i move them in manually and start the macros on every single toon it works so far...
 
Into the Hills Chanter Puller

Users who are viewing this thread

Back
Top
Cart