The Nagafen Monster Mission Macro - BE CAREFUL RUNNING

Push from the mobs in this mission is crazy now, however it can be easily fixed.
I moved Naggy up closer to the bridge and added a distance check in the :naggycombatloop, if Naggy gets pushed back a few yards he simply walks back up to his starting point never breaking combat. This is working great for me and has a nice side effect of keeping the mobs bunched up in one spot for most of the fight.
 
Push from the mobs in this mission is crazy now, however it can be easily fixed.
I moved Naggy up closer to the bridge and added a distance check in the :naggycombatloop, if Naggy gets pushed back a few yards he simply walks back up to his starting point never breaking combat. This is working great for me and has a nice side effect of keeping the mobs bunched up in one spot for most of the fight.

Was exp effected in any way? It seems diminished.
 
Last edited:
hmm

so we have this working at anymore? waht coding did you use exactly for the distance check to make it not screw up? thanks
 
Can someone show me how to add the distance check spoken about a few posts up? would like to put that in but dont want to mess up the mac
 
Still works

Does this still work?

Yeah still works been using it the past 16 hours, I only use three characters, naggy and 2 clerics. When I checked I had 18 missions done with one fail.
 
Yeah still works been using it the past 16 hours, I only use three characters, naggy and 2 clerics. When I checked I had 18 missions done with one fail.

Code:
|Naggy.mac v2.10 Coding by Fry, Z166204 Booges, Taron and JoeK
|Inspired by whycantiwin1
|Updated October 12nd, 2006
|
|-*-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.10
/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 1056
        /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 4176
        /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 4177
        /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 4178
        /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 1056
        /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 (${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 4062
        /delay 5
        /delay 1s !${Me.Casting.ID}
        }
    /if (${Me.AltAbilityReady[Lava Breath]} && ${SpawnCount[npc invading radius 80]}>2) {
        /alt act 4061
        /delay 5
        /delay 1s !${Me.Casting.ID}
        }
    /if (${Me.AbilityReady[Kick]}) /doability "kick"
    /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 1052
        /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]}-1439]} ${Math.Calc[${Math.Rand[12]}-756]}
        /delay 5s !${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 1052
         /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 4145 
    /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 corpse 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 2 Minutes And Trying Again
/delay 2m
/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

From the first page the most recent? Says Oct 2006

Someone have an updated copy?
 
Someone a few pages back said they had fixed many of the bugs (including looting with wineq, Giant's walking back and forth, naggy range issues) he said he would post for upgrade access but looks like it fell on def ears as I don't think even Fry monitors this thread anymore. I sent the guy a PM but he never answered me back.
 
I keep checking here for that "range" fix mentioned above, hoping it get's listed :)
 
does this macro still work? and from reading other posts it seems it is on high alert for GMs maybe...any info on this?
 
I havent used this macro in a while, but when i was this is the range check i added:

Change this:

:naggycombatloop
/doevents
/if (${Target.Distance}>80) {
/attack off
/squelch /target clear
}

To this:

: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
}

You also need to change this:

/if (!${SpawnCount[npc invading]} && !${atcamp} && ${Zone.ID}==32) {
/squelch /moveto loc -1429 -777
/delay 10s !${Me.Moving}
/face heading -23
/varset atcamp 1
}

To this:

/if (!${SpawnCount[npc invading]} && !${atcamp} && ${Zone.ID}==32) {
/squelch /moveto loc -1400 -791
/delay 10s !${Me.Moving}
/face heading -23
/varset atcamp 1
}
 
Anybody else noticing that they are not gaining xp for completing the mission after looting the shard and zoning back into LS?

Yesterday things were fine, today I am not receiving any xp on my boxes. I have double checked and everyone is looting shards, but no xp gains even after changing the division between aaxp and regular xp.
 
Anybody else noticing that they are not gaining xp for completing the mission after looting the shard and zoning back into LS?

Yesterday things were fine, today I am not receiving any xp on my boxes. I have double checked and everyone is looting shards, but no xp gains even after changing the division between aaxp and regular xp.

yes you beat me to this post, noticed same thing did mission twice never got any xp. not sure whats up
 
Apparently its an issue on all monster missions, with a few bug reports on the EQ forums. Hopefully it will be fixed asap.
 
confirmed

i tested the Stone Brunt MM, No EXP.. and any looted rewards fade along with your shard of wisdom when you zone out.

bad news all around.. was hoping to have my bot army rdy for the fables month. Oh well.
 
Seems ok now

Just finished my first mission with macro and received experience for my four toons.