The Nagafen Monster Mission Macro - BE CAREFUL RUNNING

lol got it... the giants run back and fourth anywyas to stop that?
 
This macro worked fine before the patch, now the healers dont heal.

I notice the spam "You don't have that ability"

Anyone know if any abilities were removed or changed from this?

edit**

It seems that ability numbers have changed, does anyone have the updated ones?
 
do a /alt list when you're in the MM and it'll give you the updated list, then go through the macro and update them.

trying it now

steve
 
seems to be workign so far, made it through the first wave. we'll see how it loots etc and i'll post it up

steve
 
/alt act codes updated except rokyl as i dont use him, worked from start to finish and looted no problem

steve

Code:
|Naggy.mac v2.11 Coding by Fry, Z166204 Booges, Taron and JoeK
|Inspired by whycantiwin1
|Updated April 15th, 2008
|
|-*-This macro is to be only posted on MMOBugs.com-*-
|
|Usage: Please edit NaggyChars.ini with your characters names.
|       When entering mission for first time, spend your AA's
|       and click save.  The macro will auto load your saved AA's
|       Next Mission. Also make Kick Hotkey for Nagafen and Harm 
|       Touch hotkey for Tranixx.
|       Start the macro in Lavastorm next to "a weary traveler".
|       Start the Nagafen macro last.


#Chat group
#Chat tell
#Event Lastwave		"#*#great red dragon resides within his lair#*#"
#Event Slain 		"#*#You have been slain by#*#" 
#Event NoMonster	"#*#You may not enter the mission zone until you have chosen a monster#*#"
#Event Camping		"#*#It will take you about 25 seconds to prepare#*#"
#Event NoAAs 		"You do not have an ability set saved for this monster character."
#Event None         "You do not currently have any task replay timers."
#Event Finished     "'Defending the Lair' replay timer:  0d:0h:#1#m remaining."
#Event Incoming     "A greedy invader yells out, 'Everyone ready? Rez the fallen now out of AE range. One, two, three -- CHARGE! WAVE GO NOW!'"
#Event SomeTell     "#*#tells you#*#"


Sub Main
|--------------------------------------------------------------------
|##Between quotes type what people should say to you to get an invite
|--------------------------------------------------------------------
/declare Password 	string 	outer 	"PASSWORD"

/Echo +============*#*==================+
/Echo MMOBugs.com Naggy MM Automater V2.11
/Echo +============*#*==================+ 
/declare targetid 	    int    outer 	0
/declare Template 	    string outer 	Unknown
/declare missiondone 	int    outer 	0
/declare missioncounter	int	   outer 	0
/declare success        int    outer    0
/declare fail           int    outer    0
/declare MyAAExp        float  outer    ${Math.Calc[${Me.AAPointsTotal}*100+${Me.PctAAExp}]}
/declare MyExp          float  outer    ${Math.Calc[${Me.Level}*100+${Me.PctExp}]}
/declare TotalAAExp     float  outer    0.00
/declare TotalExp       float  outer    0.00
/declare WaveNumber     int    outer    0
/declare loopcount      int    outer    0
/squelch /plugin MQ2MoveUtils
/squelch /plugin MQ2Exchange
/squelch /plugin MQ2PiggyZone
/squelch /plugin MQ2Melee unload
/squelch /plugin MQ2AutoSkills unload

/if (${Ini[naggychars.ini,NaggyChars,Lord Nagafen,NULL].Equal[${Me.Name}]}) /varset Template Lord Nagafen
/if (${Ini[naggychars.ini,NaggyChars,Priest Of Nagafen1,NULL].Equal[${Me.Name}]}) /varset Template Priest Of Nagafen
/if (${Ini[naggychars.ini,NaggyChars,Priest Of Nagafen2,NULL].Equal[${Me.Name}]}) /varset Template Priest Of Nagafen2
/if (${Ini[naggychars.ini,NaggyChars,Priest Of Nagafen3,NULL].Equal[${Me.Name}]}) /varset Template Priest Of Nagafen3
/if (${Ini[naggychars.ini,NaggyChars,King Tranixx,NULL].Equal[${Me.Name}]}) /varset Template King Tranixx
/if (${Ini[naggychars.ini,NaggyChars,Magus Rokyl,NULL].Equal[${Me.Name}]}) /varset Template Magus Rokyl
/if (${Ini[naggychars.ini,NaggyChars,Warlord Skarlon,NULL].Equal[${Me.Name}]}) /varset Template Warlord Skarlon


	:main 
	/doevents 
	/call GM
	/if (${Template.Equal[Unknown]}) {
	/echo Character Template Unknown. Please Edit 
	/echo NaggyChars.ini And Insert Your Character Names.
	/echo Macro Ended
	/end
	}
	/if (${Zone.ID}==27) {
	    /varset WaveNumber 0
        /varcalc TotalAAExp ${TotalAAExp}+${Me.AAPointsTotal}*100+${Me.PctAAExp}-${MyAAExp}
        /varcalc TotalExp ${TotalExp}+${Me.Level}*100+${Me.PctExp}-${MyExp}
	    /echo XP Gained ${Math.Abs[${Math.Calc[${Me.Level}*100+${Me.PctExp}-${MyExp}]}]}% - Total XP Gained ${Math.Abs[${TotalExp}]}%
	    /echo AA XP Gained ${Math.Abs[${Math.Calc[${Me.AAPointsTotal}*100+${Me.PctAAExp}-${MyAAExp}]}]}% - Total AA XP Gained ${Math.Abs[${TotalAAExp}]}%
	    /echo I am ${Me.PctExp}% through level ${Me.Level} And ${Me.PctAAExp}% through my next AA.
        /echo I have ${Me.AAPointsTotal} AA's spent and ${Me.AAPoints} AA's banked.
	    /varcalc MyAAExp ${Me.AAPointsTotal}*100+${Me.PctAAExp}
        /varcalc MyExp ${Me.Level}*100+${Me.PctExp}
	    /if (${Template.Equal[Lord Nagafen]}) /call Event_None 
		/call Waitforall
		/if (${Template.Equal[Lord Nagafen]}) /call MissionSub
		/call TemplateSelection
		/call EnterMission
		/if (${Zone.ID}==32) {
		/call BuyAAs
		}
		/cleanup
		/call Fight
		
		/if (${Me.Race.Name.Equal[Dragon]} && ${Me.Class.Name.Equal[Warrior]}) {
			/tasktimer
		    /delay 5s
			}
		:waitfortimer
		/doevents
        /delay 10s
		/if (${Zone.ID}==32) /goto :waitfortimer
		/if (${missiondone}==0) {
		/varcalc fail ${fail}+1
		/echo Mission Failed
		/echo Successful Missions: ${success}
		/echo Failed Missions: ${fail} 
		}
		}
	/if (${Zone.ID}==32) {
		/if (${Me.Race.Name.Equal[Dragon]} && ${Me.Class.Name.Equal[Warrior]}) {
			/call Nagafen
			}
		/if (${Me.Race.Name.Equal[Giant]} && ${Me.Class.Name.Equal[Cleric]}) {
			/call Priest1
			}
		/if (${Me.Race.Name.Equal[Giant]} && ${Me.Class.Name.Equal[Shadow Knight]}) {
			/call Tranixx
			}
		/if (${Me.Race.Name.Equal[Giant]} && ${Me.Class.Name.Equal[Wizard]}) {
			/call Magus
			}
		/if (${Me.Race.Name.Equal[Giant]} && ${Me.Class.Name.Equal[Warrior]}) {
			/call Warlord
			}
		}
	/if (${Zone.ID}!= 27 && ${Zone.ID}!= 32) {
	/echo Please Start This Macro In Lavastorm Mountains Next To "a weary traveler"
	/end
	}
	/goto :main
/return 

Sub Waitforall
	/declare tempvar int local
	:wait
	/delay 1
	/if (${Zone.ID}!=27) /goto :wait
	/for tempvar 1 to ${Group.Members}
		/if (!${Group.Member[${tempvar}].ID}) /goto :wait
	/next tempvar
/return

Sub TemplateSelection
	:wait
	/delay 3s
	/doevents
	/if (${Window[TaskTemplateSelectWnd].Open}) {
	    /delay 3s 
		/call TemplateSelect
		/return
		} 
    /if (!${Template.Equal[Lord Nagafen]}) /goto :wait
/return

Sub MissionSub
	/if (${Me.Sitting}) /stand 
	/target A Weary Traveler
	/If (${Target.Distance}>40 && ${Zone.ID}==32) {
		/squelch /moveto loc 2720 -96
		/delay 10s !${Me.Moving}
		}
	/face
	/delay 2s
	/squelch /stick 10 
	/delay 2s 
	/squelch /stick off 
	/say Fierce Battles 
	/delay 3s 
	/if (!${Window[TaskTemplateSelectWnd].Open}) /call Wait
	/delay 1s
	/notify TaskTemplateSelectWnd TaskTemplateSelectListRequired listselect ${Window[TaskTemplateSelectWnd].Child[TaskTemplateSelectListRequired].List[Lord Nagafen]}
	/delay 5
	/notify TaskTemplateSelectWnd TaskTemplateSelectListRequired leftmouse ${Window[TaskTemplateSelectWnd].Child[TaskTemplateSelectListRequired].List[Lord Nagafen]}
	/delay 5
	/notify TaskTemplateSelectWnd TaskTemplateSelectAcceptButton leftmouseup 
	/delay 1s
/return

Sub EnterMission

	/doevents flush
	/if (${Me.Sitting}) /stand 
	/target A Weary Traveler
	/If (${Target.Distance}>40 && ${Zone.ID}==32) {
		/squelch /moveto loc 2720 -96
		/delay 10s !${Me.Moving}
		}
	/face
	/delay 2s
	/squelch /stick 10 
	/delay 2s 
	/squelch /stick off 
	/cleanup
	/delay 10s
	/say Imagine
	/delay 10s
	/if (${Zone.ID}==27) /say Imagine
	/delay 2s
	/doevents
	/call ZonerNaglair
/return

sub ZonerNaglair
	:waitforzone
	/if (${Zone.ID}!=32) /goto :waitforzone
	/delay 5s
	/varcalc missioncounter ${missioncounter}+1
	/echo Entered Mission ${missioncounter}.
/return

Sub Fight
	/squelch /target clear
	/if (${Template.Equal[Lord Nagafen]}) {
		/call Nagafen
		}
	/if (${Template.Equal[Priest Of Nagafen]}) {
		/call Priest1
		}
	/if (${Template.Equal[Priest Of Nagafen2]}) {
		/call Priest1
		}
	/if (${Template.Equal[Priest Of Nagafen3]}) {
		/call Priest1
		}	
	/if (${Template.Equal[King Tranixx]}) {
		/call Tranixx
		}
	/if (${Template.Equal[Magus Rokyl]}) {
		/call Magus
		}
	/if (${Template.Equal[Warlord Skarlon]}) {
		/call Warlord
		}
/return
   
Sub Tranixx
/if (${Zone.ID}==27) {
    /goto :endcombat
}

/if (${Zone.ID}==32) {
	/squelch /moveto loc -1356 -834
	/delay 5s !${Me.Moving}
	}
/if (${Zone.ID}==32) {
    /squelch /moveto loc -1433 -734
	/delay 5s !${Me.Moving}
	/varset missiondone 0
	/declare atcamp int local 0 
	}

	:meleeloop
	/if (${Zone.ID}==27) {
    /goto :endcombat
}
	/if (!${SpawnCount[npc invading]} && !${atcamp} && ${Zone.ID}==32) {
		/squelch /moveto loc -1433 -734
		/delay 5s !${Me.Moving}
		/face heading -23
		/varset atcamp 1
		}
	/doevents
	/if (${missiondone}) /goto :endcombat
	/assist ${Spawn[pc race Dragon]}
	/if (${Target.ID} && ${Target.Race.Name.NotEqual[Chest]}) {
		/varset targetid ${Target.ID}
		/varset atcamp 0
		/attack on
		/squelch /stick 12
		/goto :combatloop
		}
	/if (${Target.Race.Name.Equal[Chest]}) /squelch /target clear
	/goto :meleeloop
	
	:combatloop
	/doevents
	/if (${Me.Y}>-1360 && ${Zone.ID}==32) {
		/attack off
		/squelch /moveto loc ${Math.Calc[${Math.Rand[10]}-1456]} ${Math.Calc[${Math.Rand[10]}-746]}
		/delay 5s !${Me.Moving}
		/squelch /target clear
		}
	/if (!${Target.ID} || ${Target.ID}!=${targetid} || ${Target.Type.NotEqual[NPC]}) {
		/squelch /target clear
		/attack off
		/goto :meleeloop
		}
	/if (${Me.AltAbilityReady[Feral Rage]} && ${SpawnCount[npc invading radius 20]}>5 ) {
		/squelch /stick pause
		/alt act 6056
		/delay 1s
		/delay 10s !${Me.Casting.ID}
		/squelch /stick unpause
	}
	/if (${Me.AltAbilityReady[Shroud of Pain]} && !${Me.Casting.ID} && ${Me.PctMana}>25 && !${Me.Buff[Shroud of Pain Recourse].ID}) {
		/squelch /stick pause
		/squelch /face fast
		/alt act 7961
		/delay 5
		/delay 10s !${Me.Casting.ID}
		/squelch /stick unpause
		}
	/if (${Me.AltAbilityReady[Abduction of Stength]} && !${Me.Casting.ID} && ${Me.PctMana}>25 && !${Me.Buff[Ab. of Strength Recourse].ID}) {
		/squelch /stick pause
		/squelch /face fast
		/alt act 7962
		/delay 5
		/delay 10s !${Me.Casting.ID}
		/squelch /stick unpause
		}
	/if (${Me.AltAbilityReady[Mental Corruption]} && !${Me.Casting.ID} && ${Me.PctMana}>25 && !${Me.Buff[Mental Corruption].ID}) {
		/squelch /stick pause
		/squelch /face fast
		/alt act 7963
		/delay 5
		/delay 10s !${Me.Casting.ID}
		/squelch /stick unpause
		}
	/goto :combatloop
	
	:endcombat
	/squelch /target clear
/return

Sub Magus
/if (${Zone.ID}==27) {
    /goto :endcombat
}
/if (${Zone.ID}==32) {
	/squelch /moveto loc -1356 -834
	/delay 5s !${Me.Moving}
	}
/if (${Zone.ID}==32) {
	/squelch /moveto loc -1413 -720
	/delay 5s !${Me.Moving}
	/varset missiondone 0
	/declare meleetarget int local 0
	/declare atcamp int local 0
    }
	:meleeloop
	/if (${Zone.ID}==27) {
    /goto :endcombat
}
	/if (!${SpawnCount[npc invading]} && !${atcamp} && ${Zone.ID}==32) {
		/squelch /moveto loc -1413 -720
		/delay 5s !${Me.Moving}
		/face heading -23
		/varset atcamp 1
		}
	/doevents
	/if (${missiondone}) /goto :endcombat
	/assist ${Spawn[pc race Dragon]}
	/if (${Target.ID} && ${Target.Race.Name.NotEqual[Chest]}) {
		/varset targetid ${Target.ID}
		/varset meleetarget 0
		/varset atcamp 0
		/goto :combatloop
		}
	/if (${Target.Race.Name.Equal[Chest]}) /squelch /target clear
	/goto :meleeloop
	
	:combatloop
	/squelch /face fast
	/doevents
	/if (${Me.Y}>-1360 && ${Zone.ID}==32) {
		/attack off
		/squelch /moveto loc ${Math.Calc[${Math.Rand[10]}-1456]} ${Math.Calc[${Math.Rand[10]}-746]}
		/delay 5s !${Me.Moving}
		/squelch /target clear
		}
	/if (!${Target.ID} || ${Target.ID}!=${targetid} || ${Target.Type.NotEqual[NPC]}) {
		/squelch /target clear
		/attack off
		/goto :meleeloop
		}
	/if ((${Me.PctMana}<26 || ${Target.PctHPs}<30) && !${meleetarget}) {
		/varset meleetarget 1
		/attack on
		/squelch /stick 12
		/varset atcamp 0
		}
	/if (${Me.AltAbilityReady[Rend]} && !${Me.Casting.ID} && ${Me.PctMana}>25 && !${meleetarget}) {
		/alt act 4172
		/delay 1s
		/delay 20s !${Me.Casting.ID}
		}
	/goto :combatloop
	
	:endcombat
/return
	
Sub Warlord
/if (${Zone.ID}==27) {
    /goto :endcombat
}
/if (${Zone.ID}==32) {
    /unequip mainhand
	/squelch /moveto loc -1356 -834
	/delay 5s !${Me.Moving}
	}
	/if (${Zone.ID}==32) {
	/squelch /moveto loc -1419 -729
	/delay 5s !${Me.Moving}
	/declare atcamp int local 0
	/varset missiondone 0
	}

	:meleeloop
	/doevents
	/if (${Zone.ID}==27) {
    /goto :endcombat
}
	/if (!${SpawnCount[npc invading]} && !${atcamp} && ${Zone.ID}==32) {
		/squelch /moveto loc -1419 -729
		/delay 5s !${Me.Moving}
		/face heading -23
		/varset atcamp 1
		}
	/if (${missiondone}) /goto :endcombat
	/assist ${Spawn[pc race Dragon]}
	/if (${Target.ID} && ${Target.Race.Name.NotEqual[Chest]}) {
		/varset targetid ${Target.ID}
		/varset atcamp 0
		/attack on
		/squelch /stick 12
		/goto :combatloop
		}
	/if (${Target.Race.Name.Equal[Chest]}) /squelch /target clear
	/goto :meleeloop

	:combatloop
	/doevents
	/if (${Me.Y}>-1360 && ${Zone.ID}==32) {
		/attack off
		/squelch /moveto loc ${Math.Calc[${Math.Rand[10]}-1456]} ${Math.Calc[${Math.Rand[10]}-746]}
		/delay 5s !${Me.Moving}
		/squelch /target clear
		}
	/if (!${Target.ID} || ${Target.ID}!=${targetid} || ${Target.Type.NotEqual[NPC]}) {
		/squelch /target clear
		/attack off
		/goto :meleeloop
		}
	/if (${Me.AltAbilityReady[Feral Rage]} && ${SpawnCount[npc invading radius 20]}>5) {
		/squelch /stick pause
		/alt act 6056
		/delay 1s
		/delay 10s !${Me.Casting.ID}
		/squelch /stick unpause
	}
	/goto :combatloop

	:endcombat
/return

Sub Nagafen
/if (${Zone.ID}==27) {
    /goto :endcombat
}
/if (${Zone.ID}==32) {
	/squelch /moveto loc -1356 -834
	/delay 5s !${Me.Moving}
	}
	/if (${Zone.ID}==32) {
	/squelch /moveto loc -1429 -777
	/delay 5s !${Me.Moving}
	/declare atcamp int local 0
	/varset missiondone 0
	}

	:naggymainloop
	/if (${Zone.ID}==27) {
    /goto :endcombat
}
	/if (${Target.Race.Name.Equal[Chest]}) /squelch /target clear
	/doevents
	/if (${Target.ID}==${Me.ID}) /target clear
	/if (!${SpawnCount[npc invading]} && !${atcamp} && ${Zone.ID}==32) {
		/squelch /moveto loc -1429 -777
		/delay 10s !${Me.Moving}
		/face heading -23
		/varset atcamp 1
		}
	/if (${SpawnCount[npc invading radius 100]}>0 && ${NearestSpawn[npc invading].Distance}<80) {
		/varset atcamp 0
		/if (${Target.Type.NotEqual[NPC]}) /squelch /target clear
		/if (${SpawnCount[npc enchanter radius 80]}>0) /target npc enchanter
		/if (!${Target.ID} && ${SpawnCount[npc cleric radius 80]}>0) /target npc cleric
		/if (!${Target.ID}) /target ID ${NearestSpawn[npc invading].ID}
		/attack on
		/varset targetid ${Target.ID}
		/goto :naggycombatloop
		}
	/if (${missiondone}) /goto :endcombat
	/goto :naggymainloop
	
	:naggycombatloop
	/doevents
	/if (${Math.Distance[-1396 -791 ${Me.Y} ${Me.X}]}>12.25) {
	/squelch /moveto loc -1400 -791
	}
	/if (${Target.Distance}>80) {
	/attack off
	/squelch /target clear
	}
	/if (!${Target.ID} || ${Target.ID}!=${targetid} || ${Target.Type.NotEqual[NPC]}) /goto :naggymainloop
	/squelch /face fast
	/if (${Me.AltAbilityReady[Dragon Roar]} && ${SpawnCount[npc invading radius 80]}>2) {
		/alt act 7859
		/delay 5
		/delay 1s !${Me.Casting.ID}
		}
	/if (${Me.AltAbilityReady[Lava Breath]} && ${SpawnCount[npc invading radius 80]}>2) {
		/alt act 7858
		/delay 5
		/delay 1s !${Me.Casting.ID}
		}
	/if (${Me.AbilityReady[Kick]}) {
	/doability "kick"
	/delay 5
	}
	/goto :naggycombatloop
	
	:endcombat
/return

Sub Priest1
/if (${Zone.ID}==27) {
    /goto :endcombat
}
/if (${Zone.ID}==32) {
	/squelch /moveto loc -1356 -834
	/delay 5s !${Me.Moving}
	}
/if (${Zone.ID}==32) {
	/squelch /moveto loc ${Math.Calc[${Math.Rand[4]}-1439]} ${Math.Calc[${Math.Rand[12]}-756]}
	/delay 5s !${Me.Moving}
	/declare healat int local 65
	/declare healtarget int local
	/declare healloop int local
	/varset missiondone 0
	/declare atcamp int local 0
	/declare healtimeout timer local
	}
	
	:combatcheck
	/doevents
	/if (${Zone.ID}==27) {
    /goto :endcombat
}
	/if (${Me.AltAbilityReady[Smoke Bomb]} && ${SpawnCount[npc invading radius 100]}>2 && ${Me.PctHPs}<80) {
        /target NPC
		/alt act 6052
		/delay 5
		/delay 1s !${Me.Casting.ID}
		/squelch /target clear
		}
	/if (!${SpawnCount[npc invading]} && !${atcamp} && ${Zone.ID}==32) {
		/squelch /moveto loc ${Math.Calc[${Math.Rand[4]}-1400]} ${Math.Calc[${Math.Rand[12]}-791]}
		/delay 10s !${Me.Moving}
		/face heading -23
		/varset atcamp 1
		}
	/if (${missiondone}) /goto :endcombat
	/if (${SpawnCount[pc cleric]}>1 && ${NearestSpawn[1,pc cleric].ID}>${NearestSpawn[2,pc cleric].ID}) {
		/varset healat 75
		} else {
		/varset healat 65
		}
	/call CheckHeal ${healat}
	/if (${Macro.Return}) /goto :heal
	
	/if (${missiondone}) /goto :endcombat
	/assist ${Spawn[pc race Dragon]}
	/if (${Target.ID} && ${Target.Race.Name.NotEqual[Chest]} && ${Target.Type.Equal[npc]}) {
		/varset targetid ${Target.ID}
		/varset atcamp 0
		/attack on
		/squelch /stick 12
		/goto :combatloop
		}
	/if (${Target.Race.Name.Equal[Chest]}) /squelch /target clear

    /if (${Me.PctMana}<50 && ${SpawnCount[npc invading]}==0 && ${Me.Standing}) { 
        /for loopcount 0 to ${Group.Members} 
        /tar ${Group.Member[${loopcount}]} 
    /if (${Target.PctHPs}<94) /goto :skipmed 
        /next loopcount 
        :medloop 
     /if (!${Me.Sitting}) /sit 
     /if (${SpawnCount[npc invading]}==0) /goto :medloop 
     :skipmed
     }
	
		
|	/if (!${SpawnCount[npc invading radius 200]} && ${Me.Standing} && ${Me.PctMana}>50 && !${Me.Casting.ID}) {
|   /sit
|    }
	/goto :combatcheck

	:combatloop
		/doevents
		/if (${SpawnCount[pc cleric]}>1 && ${NearestSpawn[1,pc cleric].ID}>${NearestSpawn[2,pc cleric].ID}) {
			/varset healat 75
			} else {
			/varset healat 65
			}
		/call CheckHeal ${healat}
		/if (${Macro.Return}) /goto :heal
		/if (${Me.AltAbilityReady[Smoke Bomb]} && ${SpawnCount[npc invading radius 100]}>2 && ${Me.PctHPs}<80) {
         /target NPC
		 /alt act 6052
		 /delay 5
		 /delay 1s !${Me.Casting.ID}
		 /squelch /target clear
		}
		/if (${Me.Y}>-1360 && ${Zone.ID}==32) {
		/attack off
		/if (${Zone.ID}==32) {
		/squelch /moveto loc ${Math.Calc[${Math.Rand[10]}-1446]} ${Math.Calc[${Math.Rand[12]}-756]}
		}
		/delay 5s !${Me.Moving}
		/squelch /target clear
			}
		/if (!${Target.ID} || ${Target.ID}!=${targetid} || ${Target.Type.NotEqual[NPC]}) /goto :combatcheck
	/goto :combatloop

	:heal
	/varset healtarget 0
	/for healloop 0 to ${Group.Members}
		/if (${Group.Member[${healloop}].PctHPs} < ${Group.Member[${healtarget}].PctHPs}) /varset healtarget ${healloop}
	/next healloop

	/attack off
	/squelch /stick off
	/squelch /target clear
	/target ID ${Group.Member[${healtarget}].ID}
	/delay 1s ${Target.ID}==${Group.Member[${healtarget}].ID}
	/squelch /face fast
	/if (${Target.Distance}>135) {
	/squelch /stick 10
	/delay 3s !${Me.Moving}
	/squelch /stick off
	}
	/if (${Target.PctHPs}<94) { 
	/alt act 7930 
	/delay 1s

	/varset healtimeout 20s
	:waitforheal
	/if (${Target.PctHPs}>96) {
		/keypress duck
		/delay 5
		/keypress duck
		}
	/if (!${healtimeout}) /goto :abort
	/if (${Me.Casting.ID}) /goto :waitforheal
	:abort

	/delay 5
	/if (${Zone.ID}==32) {
	/squelch /moveto loc ${Math.Calc[${Math.Rand[4]}-1439]} ${Math.Calc[${Math.Rand[12]}-756]}
	}
	/delay 3s
	}
	/goto :combatcheck
	
	:endcombat
	/squelch /target clear
/return

Sub CheckHeal(int healat)
	/declare healtarget int local 0
	/declare healloop int local 0

	/for healloop 1 to ${Group.Members}
		/if (${Group.Member[${healloop}].PctHPs} < ${Group.Member[${healtarget}].PctHPs}) /varset healtarget ${healloop}
	/next healloop
        /if (${SpawnCount[npc invading]}==0) /varset healat 94
	/if (${Group.Member[${healtarget}].PctHPs} < ${healat}) /return 1
/return 0

Sub Priest2
/if (${Zone.ID}==32) {
	/squelch /moveto loc -1356 -834
	/delay 5s !${Me.Moving}
	}
/if (${Zone.ID}==32) {
	/squelch /moveto loc ${Math.Calc[${Math.Rand[10]}-1456]} ${Math.Calc[${Math.Rand[10]}-746]}
	/delay 5s !${Me.Moving}
	}
	/declare healat int local 65
	/declare healtarget int local
	/declare healloop int local
	/varset missiondone 0
	/declare atcamp int local 0
/return
   
|--
|##GM Sub for checking
|---------------------
Sub GM
	/if (${Spawn[gm].ID}) {
		/gsay Time to go, cya later
		/camp 
		/endmac
	}
/return 


|-
|# Chest popping
|----------------
Sub Event_Lastwave
	/squelch /stick off
	/squelch /moveto off
	/echo Task Completed, Getting In Line To Loot Shard!
	/if (${Me.Race.Name.Equal[Dragon]} && ${Me.Class.Name.Equal[Warrior]}) {
			/delay 1m
			}
	:again
	/if (${Zone.ID}==32) {
		/delay ${Math.Rand[5]}s
        /if (${Zone.ID}==32) {
        /squelch /moveto loc -1331 -828
        }
		/delay 20s !${Me.Moving}
        
        /delay ${Math.Rand[5]}s
		/if (${SpawnCount[npc object race chest]}) {
			/target ornate
			/squelch /stick 2
			/delay 2s ${Target.Distance}<5
			/open
			/delay 4s !${Target.ID}
			}

		/target ornate
		/delay 12s ${Target.ID}
		/loot 
		/delay 2s
		/if (${Window[LootWnd].Open}) {
			/if (${Corpse.Items}==1) {
				/itemnotify loot1 rightmouseup
				/itemnotify loot1 rightmouseup
				/delay 2s
				} else {
				/itemnotify loot2 rightmouseup 
				/itemnotify loot2 rightmouseup
				/delay 2s 
				}
			/if (${Window[ConfirmationDialogBox].Open}) /nomodkey /notify ConfirmationDialogBox Yes_Button leftmouseup 
			/delay 2s 
			/notify LootWnd DoneButton Leftmouseup 
			/delay 3s (!${Window[LootWnd].Open})
			/notify LootWnd DoneButton Leftmouseup 
			}
		/if (!${FindItem[Shard of Wisdom].InvSlot.ID}) {
		/goto :again
		}
		/popup Shard Looted, Task Completed!
		/echo Task Completed!  Good Job!
		/varset missiondone 1
		/varcalc success ${success}+1
		/echo Successful Missions: ${success}
		/echo Failed Missions: ${fail} 
		/if (${Me.Race.Name.Equal[Dragon]} && ${Zone.ID}==32) {
		/squelch /moveto loc -1379 -857
		}
		/if (${Me.Race.Name.Equal[Giant]} && ${Zone.ID}==32) {
		/squelch /moveto loc ${Math.Calc[${Math.Rand[10]}-1399]} ${Math.Calc[${Math.Rand[10]}-792]}
		}
		}   
/return


|--
|##Chat Events
|-------------
Sub Event_Chat(string ChatType,string ChatSender,string ChatText)
	/If (${ChatType.Equal[TELL]} && ${ChatText.Equal[${Password}]}) {
		/invite ${ChatSender}
		/taskaddplayer ${ChatSender}
		/return
		}
	/If (${ChatText.Equal[make me leader]}) {
		/makeleader ${ChatSender}
		/return
		}
/return

|--
|##Holds macro when you die
|--------------------------
Sub Event_Slain 
	:wait1
	/delay 1s
	/target myself
	/if (${Me.PctHPs}<5) /goto :wait1
	/if (!${Target.ID}) /goto :wait1
	/delay 3s
	/if (${Me.Race.Name.Equal[Dragon]} && ${Me.Class.Name.Equal[Warrior]}) {
	/fade
	}
	/if (${SpawnCount[pc race Dragon]}==0 && ${SpawnCount[pc]}<=2) {
	/fade
	}
/return 

|--
|##End Macro if you camp on your own
|-----------------------------------
Sub Event_Camping
	/echo Camping - Ending macro!
/endmacro

|--
|## Task Quitter
|-----------------
Sub Event_None 
/if (${Ini[naggychars.ini,NaggyChars,Lord Nagafen,NULL].Equal[${Me.Name}]}) {
/declare tempvar int local
/for tempvar 1 to ${Group.Members}
/taskremove ${Group.Member[${tempvar}]}
/next tempvar
/taskquit
}
/return

|--
|## Task Quit If Timer
|-----------------
Sub Event_Finished(Line,int TaskTime)
/varcalc TaskTime ${TaskTime}-1

/if (!${Ini[naggychars.ini,NaggyChars,Lord Nagafen,NULL].Equal[${Me.Name}]}) {
/return
}
/if (${TaskTime}<1) {
/echo Your Task Has Ended, Quitting Task
/declare tempvar int local
/for tempvar 1 to ${Group.Members}
/taskremove ${Group.Member[${tempvar}]}
/next tempvar
/taskquit
/return
}
/echo Waiting ${TaskTime} Minutes For Task Timer To Expire So We Can Start A New Mission.
/delay ${TaskTime}m
/if (${Ini[naggychars.ini,NaggyChars,Lord Nagafen,NULL].Equal[${Me.Name}]}) {
/declare tempvar int local
/for tempvar 1 to ${Group.Members}
/taskremove ${Group.Member[${tempvar}]}
/next tempvar
/taskquit
}
/return

|--
|## Still Have Mission Timer
|-----------------
Sub Wait
:waitmore1
/echo Mission Timer Still Active Waiting 20 Seconds And Trying Again
/delay 20s
/if (!${Window[TaskTemplateSelectWnd].Open}) /say Fierce Battles
/delay 3s
/if (!${Window[TaskTemplateSelectWnd].Open}) /goto :waitmore1
/return 

|---
| Incoming
|----------
sub Event_Incoming
/varcalc WaveNumber ${WaveNumber}+1
/echo Here Comes Wave ${WaveNumber}!
/if (${Me.Sitting}) {
/stand
}
/return


|---
| Buy AA's
|----------
sub BuyAAs
      /keypress i 
      /notify InventoryWindow IW_AltAdvBtn leftmouseup 
      /delay 1s
      /notify AAWindow AAW_LoadButton leftmouseup 
      /delay 1s
      /doevents
/return

sub Event_NoAAs
	/beep
	/beep
	/echo Buy all the AA's on the general tab. After you have finished please click save.
/return

sub Event_SomeTell
/echo Tell received.
/beep
/delay 10
/beep
/delay 10
/beep
/return

sub Event_NoMonster
/echo Monster Select Failed, Retrying
/call TemplateSelect
/call EnterMission
/return

sub TemplateSelect
	/declare tempvar int local
	/declare tempvar1 int local
	/if (${Template.Equal[Lord Nagafen]}) {
		/echo Selecting Lord Nagafen
		/notify TaskTemplateSelectWnd TaskTemplateSelectListRequired listselect ${Window[TaskTemplateSelectWnd].Child[TaskTemplateSelectListRequired].List[Lord Nagafen]} 
		/delay 10
		/notify TaskTemplateSelectWnd TaskTemplateSelectListRequired leftmouse ${Window[TaskTemplateSelectWnd].Child[TaskTemplateSelectListRequired].List[Lord Nagafen]} 
		/delay 10
		/notify TaskTemplateSelectWnd TaskTemplateSelectAcceptButton leftmouseup 
		/delay 5s 
		/return
	} else {
		/if (${Template.Equal[Priest Of Nagafen2]}) {
			/varset tempvar 1
			/varset Template Priest of Nagafen
			}
	   	/if (${Template.Equal[Priest Of Nagafen3]}) {
			/varset tempvar1 1
			/varset Template Priest of Nagafen
			}
		/echo Selecting ${Template}
		/notify TaskTemplateSelectWnd TaskTemplateSelectListOptional listselect ${Window[TaskTemplateSelectWnd].Child[TaskTemplateSelectListOptional].List[${Template}]} 
		/delay 10
		/notify TaskTemplateSelectWnd TaskTemplateSelectListOptional leftmouse ${Window[TaskTemplateSelectWnd].Child[TaskTemplateSelectListOptional].List[${Template}]} 
		/delay 10
		/notify TaskTemplateSelectWnd TaskTemplateSelectAcceptButton leftmouseup 
		/delay 5s 
		/if (${tempvar}) /varset Template Priest of Nagafen2
		/return
		/if (${tempvar1}) /varset Template Priest of Nagafen3
	}

	/echo Failed to locate correct character name in ${inichars}. Please update ${inichars} and add your character to a template.
/end
 
Nice work Stevieg, we gotta find somone to update the first page.
 

Attachments

  • Naggy.mac
    26.3 KB · Views: 25
not fixed yet, hangs up before it executes /tasktimer and drops the missions, trying to find correct syntax to display proper race/class name in mq2


steve
 
not fixed yet, hangs up before it executes /tasktimer and drops the missions, trying to find correct syntax to display proper race/class name in mq2


steve

Ive had some minor issues with one or two mission fails but beyond that it looks smooth.

Lemme know if you want me to test anything.
 
Ive had some minor issues with one or two mission fails but beyond that it looks smooth.

Lemme know if you want me to test anything.

9 successful and 0 failures so i think its alright now lol except for the magus rokyl /alt activate codes havent been updated but the rest are

steve
 
Broke as of 12/25/08. Naggy will not auto use Dragon Roar. Macro also spams in EQ window "You don't have that ability." Priests do not auto heal. When I used this same macro a month ago each priest would attempt to heal any mission character that was not 100%, especially Naggy after the characters loaded his abilities. They no longer heal anything. The priest also spam in an EQ window "You don't have that ability." If you manually use Perfected Heal they also spam "You can't use that command while casting...".

I am not seeing enough to check the macro myself.

Thanks for any help in advance.
 
Broke as of 12/25/08. Naggy will not auto use Dragon Roar. Macro also spams in EQ window "You don't have that ability." Priests do not auto heal. When I used this same macro a month ago each priest would attempt to heal any mission character that was not 100%, especially Naggy after the characters loaded his abilities. They no longer heal anything. The priest also spam in an EQ window "You don't have that ability." If you manually use Perfected Heal they also spam "You can't use that command while casting...".

I am not seeing enough to check the macro myself.

Thanks for any help in advance.

you have to go through and manually change all the alt activate numbers to their new values

steve
 
The alternate activates seemed to match. I zoned into the mission and did a /alt list and then searched the macro for /alt act and the important ones match the current /alt list. Some other syntax issue?

Thanks in advance for your assistance
 
Anyone able to use this since Mid December?

I am still having issues even after updating to the most recent compile.

Broke as of 12/25/08. Naggy will not auto use Dragon Roar. Macro also spams in EQ window "You don't have that ability." Priests do not auto heal. When I used this same macro a month ago each priest would attempt to heal any mission character that was not 100%, especially Naggy after the characters loaded his abilities. They no longer heal anything. The priest also spam in an EQ window "You don't have that ability." If you manually use Perfected Heal they also spam "You can't use that command while casting...".

Thanks in advance for your assistance.
 
It seems to work, but every 1 or 3 missions it fails.

Anyone have any idea on a fix?

Seems to work overall, just has some small problems.
 
I tried to make some changes but still having some serious problems.

Mainly that the leader runs off when he zones back into lavastorm somtimes.

Its been about 3 to 4 runs max before it messes up.

Anyone have any thoughts?
 
I added a /warp t under the /target weary commands.

And a /warp t under the command you say to start the missions.

Works okay right now.
 
Any ideas on how to fix the spam "you do not have that ability"? The clerics I have don't heal at all. Running on 3 computers and all have the same issue. I am new to this and no clue on how to add or write or anything. Any help would be appreciated.
Thanks in advance!
 
This macro works 3 or 4 rounds then goes bad, even with my changes ( adding /warp t after /target weary traveler ).

Has anyone looked into this macro at all?