|**--------------
newtoon.mac
by LamahHerder
-----------------
Requirements:
MQ2Nav mesh tutoriala + tutorialb + poknowledge + bazaar
Usage:
1. Modify declare variables to your desires
2. /mac newtoon
-----------------
newtoon.mac
ver 1907b
--------------**|
#define DOMSG /echo
#define DODBG /squelch /echo
#event parcel "You have received a new parcel delivery!"
Sub Main
/declare BINDPOK int outer 1 | Bind in PoK (choose only PoK or Guild)
/declare BINDGUILD int outer 0 | Bind in Guild Lobby (choose only PoK or Guild)
/declare MERCTANK int outer 1 | (choose only tank OR healer) Get Merc Tank
/declare MERCHEALER int outer 0 | (choose only tank OR healer) Get Merc Healer
/declare GETCHARM int outer 1 | Get Kobold Skull Charm http://everquest.allakhazam.com/db/item.html?item=29524
/declare GETFELLOW int outer 1 | Get Fellowship Registration Insignia http://everquest.allakhazam.com/db/item.html?item=64853
/declare GETWRBAG int outer 1 | Get Sturdy Traveler's Pack (25% WR) http://everquest.allakhazam.com/db/item.html?item=103902
/declare GETAUGGE int outer 1 | Get Glowing Emerald Augment http://everquest.allakhazam.com/db/quest.html?quest=5706
/declare GETPARCEL int outer 1 | Retrieve all from parcel merchant (PoK)
/declare GETGUILD int outer 0 | Join The Novices Of ${MacroQuest.Server} http://everquest.allakhazam.com/db/quest.html?quest=8451
/if ( ( ${BINDPOK} && ${BINDGUILD} ) || ( ${MERCTANK} && ${MERCHEALER} ) ) {
/if ( ${BINDPOK} && ${BINDGUILD} ) /echo You may have either BINDPOK or BINDGUILD, not both!
/if ( ${MERCTANK} && ${MERCHEALER} ) /echo You may have either MERCTANK or MERCHEALER, not both!
/end
}
/while ( ${BINDPOK} || ${BINDGUILD} || ${MERCTANK} || ${MERCHEALER} || ${GETCHARM} || ${GETFELLOW} || ${GETWRBAG} || ${GETAUGGE} || ${GETPARCEL} || ${GETGUILD} ) {
DODBG ${Macro.CurSub} - Loop
/call checkReport
/delay 5
/if ( ${Zone.ShortName.Equal[tutoriala]} ) /call doTUTA
/if ( ${Zone.ShortName.Equal[tutorialb]} ) /call doTUTB
/if ( ${Zone.ShortName.Equal[poknowledge]} ) /call doPOK
/if ( ${Zone.ShortName.Equal[bazaar]} ) /call doBazaar
/if ( ${Zone.ShortName.Equal[guildlobby]} ) /call doGuildLobby
}
/call checkReport
DOMSG [ ${Macro.Name} - ${Me.Name} ] Finished in ${Macro.RunTime}
/return
Sub doTUTA
DODBG ${Macro.CurSub}
/if ( ${FindItemCount[Tome]} ) /itemnotify "${FindItem[Tome]}" rightmouseup
/while ( !${Window[targetwindow]} ) {
/if ( ${Window[alertwnd]} ) /notify alertwnd ALW_Close_Button leftmouseup
/if ( ${Window[rewardselectionwnd]} ) /notify rewardselectionwnd RewardSelectionChooseButton leftmouseup
/if ( ${Window[LargeDialogWindow]} ) /invoke ${Window[largedialogwindow].Child[LDW_OkButton].LeftMouseUp}
/delay 5
}
/if ( ${Bool[${Task[Jail Break!].Index}]}==FALSE ) {
/if ( ${Spawn[Arias].Distance}>50 ) /call navToYX 11.29 88.40
/call targetID ${Spawn[npc Arias].ID}
/keypress HAIL
/delay 5
/say escape
/delay 3s ${Window[TaskSelectWnd].Open}==TRUE
/invoke ${Window[TaskSelectWnd].Child[TSEL_AcceptButton].LeftMouseUp}
/delay 3s ${Bool[${Task[Jail].Index}]}==TRUE
}
/call navToYX 8.62 66.86
/call navToYX 51.38 27.85
/call navToID ${Spawn[npc The Gloomingdeep Jailor].ID}
/keypress AUTOPRIM
/while ( ${Bool[${FindItem[=The Gloomingdeep Jailor's Key].ID}]}==FALSE ) {
/delay 1
/if ( !${Window[inventorywindow]} ) /keypress INVENTORY
/if ( ${Window[advancedlootwnd]} ) /notify advancedlootwnd ADLW_PLL_LootAllBtn leftmouseup
}
/delay 1s
/nomodkey /itemnotify "The Gloomingdeep Jailor's Key" leftmouseup
/call targetID ${Spawn[pet Arias].ID}
/click left target
/if ( ${Window[inventorywindow]} ) /keypress INVENTORY
/delay 5s ${Window[GiveWnd].Open}
/invoke ${Window[GiveWnd].Child[GVW_Give_Button].LeftMouseUp}
/keypress HAIL
/delay 99s ${Zone.ShortName.Equal[tutorialb]}==TRUE
/return
Sub doTUTB
DODBG ${Macro.CurSub}
/call checkReport
/delay 1s
/call targetID ${Spawn[npc Arias].ID}
/keypress HAIL
/call cleanWindows
/if ( ${GETCHARM} ) {
| Gloomingdeep arms
/if ( ${Task[Basic].Objective[4].Status.NotEqual[Done]} ) {
/call navToID ${Spawn[npc Vahlara].ID}
/keypress HAIL
/call cleanWindows
/while ( !${Cursor.ID} ) {
/delay 2
/if ( ${FindItemCount[Gloomingdeep]} ) /break
}
/if ( ${Cursor.ID} ) /autoinventory
/call cleanWindows
/say others
}
| Ghetto Jboots
/if ( ${Task[Basic].Objective[8].Status.NotEqual[Done]} ) {
/call navToID ${Spawn[npc Basher Alga].ID}
/keypress HAIL
/delay 2s ${Window[TaskSelectWnd].Open}==TRUE
/call cleanWindows
/keypress HAIL
/while ( !${FindItemCount[Worn Totem]} ) {
/call cleanWindows
/delay 5
}
/if ( ${FindItemCount[Worn Totem]} ) /useitem "Worn Totem"
/delay 2s
}
| Chat with Prathun (needed for final reward)
/if ( ${Task[Basic].Objective[7].Status.NotEqual[Done]} ) {
/call navToID ${Spawn[npc Prathun].ID}
/keypress HAIL
/call cleanWindows
}
| Noob song/spell/tome
/if ( ${Task[Basic].Objective[6].Status.NotEqual[Done]} ) {
/call navToID ${Spawn[npc Rytan].ID}
/say blessed
/call cleanWindows
/delay 1s
/if ( ${FindItemCount[Song]} ) /nomodkey /itemnotify "${FindItem[Song]}" rightmouseup
/if ( ${FindItemCount[Spell]} ) /nomodkey /itemnotify "${FindItem[Spell]}" rightmouseup
/if ( ${FindItemCount[Tome]} ) /nomodkey /itemnotify "${FindItem[Tome]}" rightmouseup
/delay 1s
/delay 9s ( !${Cursor.ID} )
}
| Weapon sharpen (needed for final reward)
/if ( ${Task[Basic].Objective[3].Status.NotEqual[Done]} ) {
/call navToID ${Spawn[npc Absor].ID}
/keypress HAIL
/nomodkey /itemnotify mainhand leftmouseup
/delay 1s
/if (${Cursor.ID}) /click left target
/delay 2s (${Window[givewnd]})
/if (${Window[givewnd]}) /notify givewnd GVW_Give_Button leftmouseup
/call cleanWindows
/if (${FindItemCount[Sharpened]}) /itemnotify "${FindItem[Sharpened]}" leftmouseup
/if (${FindItemCount[Polished]}) /itemnotify "${FindItem[Polished]}" leftmouseup
/call cleanWindows
}
}
| Merc Tank
/if ( ( !${Mercenary.Index} ) && ( ${MERCHEALER} || ${MERCTANK} ) ) {
/call navToID ${Spawn[npc Elegist].ID}
/click right target
/delay 1s
/if ( ${Me.Subscription.Equal[FREE]} ) {
/if ( ${MERCTANK} ) /invoke ${Window[mmtw_merchantwnd].Child[MMTW_SubtypeListBox].Select[3]}
/if ( ${MERCHEALER} ) /invoke ${Window[mmtw_merchantwnd].Child[MMTW_SubtypeListBox].Select[4]}
} else {
/if ( ${MERCTANK} ) /invoke ${Window[mmtw_merchantwnd].Child[MMTW_SubtypeListBox].Select[9]}
/if ( ${MERCHEALER} ) /invoke ${Window[mmtw_merchantwnd].Child[MMTW_SubtypeListBox].Select[9]}
}
/delay 1s
/invoke ${Window[mmtw_merchantwnd].Child[MMTW_HireButton].LeftMouseUp}
}
| Bank Bag (not shared bank)
/if ( ${FindItemCount[Backpack]}==1 ) {
/call navToID ${Spawn[npc Lyndroh].ID}
/click right target
/delay 1s
/nomodkey /itemnotify bank1 leftmouseup
/delay 1s
/call cleanWindows
}
:leaveToPOK
/call navToYX -137.90 -13.43
/call targetID ${Spawn[npc Arias].ID}
/keypress HAIL
/keypress HAIL
/delay 1s
/call cleanWindows
/delay 1s
/varset GETCHARM 0
/say I am ready to leave
/delay 99s ${Zone.ShortName.Equal[PoKnowledge]}==TRUE
/return
Sub doPOK
DODBG ${Macro.CurSub}
/call checkReport
/if ( ${BINDPOK} ) {
/call navToYX -189.91 -82.76
/call targetID ${Spawn[npc Soulbinder Jera].ID}
/say bind your soul
/varset BINDPOK 0
}
/if ( ${GETWRBAG} || ${GETFELLOW} || ${GETGUILD} ) /call navToYX -102.52 -113.86
| Start Bazaar quest for ${GETWRBAG}
/if ( !${Bool[${Task[Bazaar].Index}]}>0 && ${GETWRBAG} ) /call taskStart "Secalna" "/keypress HAIL" "Bazaar"
| Start Guild quest for ${GETGUILD}
/if ( !${Bool[${Task[Guild Lobby].Index}]}>0 && ${GETGUILD} ) /call taskStart "Secalna" "/keypress HAIL" "Guild Lobby"
| Get fellowship token
/if ( ${GETFELLOW} ) {
/call navToYX 165.79 -110.27
/call navToYX 430.86 68.75
/call targetID ${Spawn[npc Randall].ID}
/say how
/call cleanWindows
/varset GETFELLOW 0
}
| Get Parcel
/if ( ${GETPARCEL} ) {
/call navToYX 427.35 474.42
/call targetID ${Spawn[npc Frans Henkal].ID}
/click right target
/delay 1s
/notify MerchantWnd MW_MerchantSubWindows tabselect 3
/delay 1s
/notify MerchantWnd MW_Retrieve_All_Button leftmouseup
/varset GETPARCEL 0
}
| GETWRBAG 2
/if ( ${Bool[${Task[Bazaar].Index}]}>0 && ${GETWRBAG} ) {
/call navToYX 494.62 840.17
/call navToID ${Spawn[npc Nebbo Watzet].ID}
/say bazaar
/call navToDoorID 6 | Facade
/delay 99s ${Zone.ShortName.Equal[bazaar]}==TRUE
/call doBazaar | !TODO Improve logic and move this to doBazaar
/call navToID ${Spawn[npc Nebbo Watzet].ID}
/say find
/delay 2s
/call cleanWindows
/varset GETWRBAG 0
}
/if ( (${BINDGUILD} || ${GETGUILD} || ${GETAUGGE}) ) {
/call navToID ${Spawn[npc Aven Spiritmaker].ID}
/say joining
/call navToDoorID 17 | to Guild Lobby
/delay 99s ${Zone.ShortName.Equal[guildlobby]}==TRUE
/call doGuildLobby
}
/return
Sub doBazaar
DODBG ${Macro.CurSub}
/call checkReport
/if ( ${Bool[${Task[Bazaar].Index}]}>0 && ${GETWRBAG} ) {
/call navToID ${Spawn[npc Nermin].ID}
/say business
/call navToPortalID 57 | BLU 59 BLK 57 BLU
/call navToID ${Spawn[npc Elan].ID}
/say items
/call cleanWindows
/call navToPortalID 59 | BLU 59 BLK 57 BLU
/call navToPortalID 58 | RED 61 BLK 58 RED
/call navToID ${Spawn[npc Helena].ID}
/say trader
/call cleanWindows
/call navToPortalID 61 | RED 61 BLK 58 RED
}
:leaveBazaar
/call navToID ${Spawn[npc Sage Vindillar].ID}
/say test subject
/delay 99s ${Zone.ShortName.Equal[poknowledge]}==TRUE
/return
Sub doGuildLobby
DODBG ${Macro.CurSub}
/call checkReport
/if ( ${GETGUILD} || ${BINDGUILD} ) {
/if ( ${GETGUILD} ) {
/call navToID ${Spawn[npc Kesiri Dawnlark].ID}
/say corpse summoner
/call navToID ${Spawn[npc Disciple of Luclin].ID}
/say help
}
/if ( ${BINDGUILD} ) {
/call navToYX 412.34 -270.09
/call targetID ${Spawn[npc High Priestess of Luclin].ID}
/say bind
/varset BINDGUILD 0
}
/if ( ${GETGUILD} ) {
/call navToID ${Spawn[npc Kesiri Dawnlark].ID}
/say guildmates
/call navToDoorID 34
/call cleanWindows
/call navToID ${Spawn[npc Kesiri Dawnlark].ID}
/say willing
/call cleanWindows
/varset GETGUILD 0
}
/if ( ${GETAUGGE} ) {
/call navToID ${Spawn[npc Kesiri Dawnlark].ID}
/say guild halls
/call navToDoorID 3 | OBJ_GUILD_DOOR > Standard Guild Hall
/delay 99s ${Zone.ShortName.Equal[guildhall]}==TRUE
/call doGuildHall
/call navToID ${Spawn[npc Kesiri Dawnlark].ID}
/keypress HAIL
/delay 1s
/call cleanWindows
/varset GETAUGGE 0
}
}
:leaveGuildLobby
/call navToDoorID 2 | OBJ_TRANS_ENTRY > PoK
/delay 99s ${Zone.ShortName.Equal[poknowledge]}==TRUE
/return
Sub doGuildHall
DODBG ${Macro.CurSub}
/call checkReport
/if ( ${Bool[${Task[Exploring].Index}]}==TRUE ) {
/call targetID ${Spawn[npc a_guild_treasurer].ID}
/keypress HAIL
/call cleanWindows
/call navToYX 65.31 -112.85 | regen pool area
/call navToID ${Spawn[npc Zeflmin Werlikanin].ID}
/keypress HAIL
/call navToYX 0.40 98.47 | crafting area
/call navToID ${Spawn[npc Melody].ID}
/say benefits
}
:leaveGuildHall
/call navToDoorID 1 | OBJ_GUILD_DOOR > guildlobby
/delay 99s ${Zone.ShortName.Equal[guildlobby]}==TRUE
/return
Sub cleanWindows
DODBG ${Macro.CurSub}
:loopLargeDialogWindow
/if (${Window[LargeDialogWindow]}) /invoke ${Window[largedialogwindow].Child[LDW_OkButton].LeftMouseUp}
/if (${Window[TaskSelectWnd]}) /nomodkey /notify TaskSelectWnd TSEL_AcceptButton leftmouseup
/if (${Window[rewardselectionwnd]}) /nomodkey /notify rewardselectionwnd RewardSelectionChooseButton leftmouseup
/if (${Window[lfguildwnd]}) /keypress TOGGLE_LFGUILDWIN
/delay 1s ${Window[LargeDialogWindow].Open}==TRUE
/if (${Cursor.ID}) /autoinventory
/if (!${Window[LargeDialogWindow]}) /return
/goto :loopLargeDialogWindow
/return
Sub checkReport
DODBG ${Macro.CurSub}
/if ( ${Me.ZoneBound[0].ShortName.Equal[poknowledge]} ) /varset BINDPOK 0
/if ( ${Me.ZoneBound[0].ShortName.Equal[guildloby]} ) /varset BINDGUILD 0
/if ( ${Mercenary.Index} ) {
/varset MERCTANK 0
/varset MERCHEALER 0
}
/if ( ${FindItem[Kobold Skull Charm].ID} ) /varset GETCHARM 0
/if ( ${FindItem[Fellowship Registration Insignia].ID} ) /varset GETFELLOW 0
/if ( ${FindItem[Sturdy Traveler's Pack].ID} ) /varset GETWRBAG 0
/if ( ${FindItem[Sturdy Traveler's Pack].ID} ) /varset GETAUGGE 0
/if ( ${Bool[${Me.Guild}]}==TRUE) /varset GETGUILD 0
/if ( ${BINDPOK} ) DOMSG [ ${Macro.Name} - ${Me.Name} ] < BINDPOK
/if ( ${BINDGUILD} ) DOMSG [ ${Macro.Name} - ${Me.Name} ] < BINDGUILD
/if ( ${MERCTANK} ) DOMSG [ ${Macro.Name} - ${Me.Name} ] < MERCTANK
/if ( ${MERCHEALER} ) DOMSG [ ${Macro.Name} - ${Me.Name} ] < MERCHEALER
/if ( ${GETCHARM} ) DOMSG [ ${Macro.Name} - ${Me.Name} ] < GETCHARM
/if ( ${GETFELLOW} ) DOMSG [ ${Macro.Name} - ${Me.Name} ] < GETFELLOW
/if ( ${GETWRBAG} ) DOMSG [ ${Macro.Name} - ${Me.Name} ] < GETWRBAG
/if ( ${GETAUGGE} ) DOMSG [ ${Macro.Name} - ${Me.Name} ] < GETAUGGE
/if ( ${GETPARCEL} ) DOMSG [ ${Macro.Name} - ${Me.Name} ] < GETPARCEL
/if ( ${GETGUILD} ) DOMSG [ ${Macro.Name} - ${Me.Name} ] < GETGUILD
/if ( ${RETURNTUTB} ) DOMSG [ ${Macro.Name} - ${Me.Name} ] < RETURNTUTB
/return
Sub event_parcel
DODBG ${Macro.CurSub}
/varset GETPARCEL 1
/return
|
| from tf.inc
|
Sub navToDoorID(int doorID)
DODBG ${Macro.CurSub} doorID = ${doorID}
/nav door id ${doorID} click
/if (!${Navigation.Active}) /delay 5
/while (${Navigation.Active}) {
/delay 5
}
/return
Sub navToYX(float Yloc, float Xloc)
DODBG ${Macro.CurSub} Yloc = ${Yloc} Xloc = ${Xloc}
/nav locyx ${Yloc} ${Xloc}
/delay 2s !${Navigation.Active}
:stillMoving
/delay 5 !${Navigation.Active}
/if (${Navigation.Active}) /goto :stillMoving
/return
Sub navToID(int newID)
DODBG ${Macro.CurSub} newID = ${newID}
/nav id ${newID}
/if (!${Navigation.Active}) /delay 1s
/while (${Navigation.Active} || ${Target.ID}!=${newID}) {
/delay 5
/if (${Target.ID}!=${newID}) {
/if (${Spawn[${newID}].LineOfSight}) {
/call targetID ${newID}
}
}
}
/delay 2
/return
Sub navToPortalID(int portalID)
DODBG ${Macro.CurSub} doorID = ${portalID}
/declare origZone int local ${Zone.ID}
/doortarget id ${portalID}
/nav door id ${portalID} click
/if (!${Navigation.Active}) /delay 5
/while (${Navigation.Active}) {
/delay 5
}
/while (${Switch.Distance}<60 || ${Me.Moving}) {
/delay 5
}
/return
Sub targetID(int newID)
DODBG ${Macro.CurSub} newID = ${newID}
/if (${Target.ID}==${newID}) /return
/target id ${newID}
/delay 2s ${Target.ID}==${newID}
/return
Sub taskStart(string taskNPC, string taskCommand, string taskName)
DODBG ${Macro.CurSub} taskNPC = ${taskNPC} taskCommand = ${taskCommand} taskName = ${taskName}
/call navToID ${Spawn[npc ${taskNPC}].ID}
/docommand ${taskCommand}
/delay 15
/invoke ${Window[TaskSelectWnd].Child[TSEL_TaskList].Select[${Window[TaskSelectWnd].Child[TSEL_TaskList].List[${taskName}]}]}
/delay 15
/invoke ${Window[TaskSelectWnd].Child[TSEL_AcceptButton].LeftMouseUp}
/return
Sub event_zoned
DODBG ${Macro.CurSub}
/return
Sub event_taskupdated
DODBG ${Macro.CurSub}
/return