• 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
newtoon.mac - setup to get ready to level

Release newtoon.mac - setup to get ready to level 230415a

No permission to download
Joined
May 17, 2015
RedCents
6,058¢
Run new toon to PoK and pickup free gear along the way
  1. Kobold Skull Charm
  2. Fellowship Registration Insignia
  3. Sturdy Traveler's Pack
If you just want Traveler's pack set all other declares to 0 and start in PoK

Rich (BB code):
 |**----------
 newtoon.mac
 -------------
 Howto:
 1. Required: MQ2Nav mesh tutoriala + tutorialb + poknowledge +  bazaar
 2. Modify declare values for what you want 
 3. /mac newtoon
 
 1907a (LamahHerder)
 + Rewrote logic
 + MQ2Nav required for movement
 ? My PC on Brekt Runtime Foreground=303seconds Background=346seconds
 ? 345 lines
 -------------
 newtoon.mac
 ----------**|
| Remove /squelch for reports
#define DOMSG /echo
#define DODEBUG /squelch /echo
sub main
    /declare BINDPOK    int    outer   1   | Bind in PoK
    /declare GETMERC    int    outer   1   | Get Tank Merc
    /declare GETCHARM   int    outer   1   | Get Tutorial Charm
    /declare GETFELLOW  int    outer   1   | Get Fellowship Token
    /declare GETWRBAG   int    outer   1   | Get 25% reduction bag
    /call checkReport
    /while (${BINDPOK} || ${GETMERC} || ${GETCHARM} || ${GETFELLOW} || ${GETWRBAG}) {
        /call checkReport
        /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
    }
    /call checkReport
/return
sub doTUTA
    DODEBUG ${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
        /say escape
        /delay 5s ${Window[TaskSelectWnd].Open}==TRUE
        /invoke ${Window[TaskSelectWnd].Child[TSEL_AcceptButton].LeftMouseUp}
        /delay 5s ${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}
    /attack on
    /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
    DODEBUG ${Macro.CurSub}
    /delay 1s
    /if (${Task[Basic].Objective[2].Status.NotEqual[Done]}) {
        /call navToID ${Spawn[npc Arias].ID}
        /keypress HAIL
        /delay 1s
    }
    /if (${FindItemCount[Charm]} || !${GETCHARM}) /goto :portPOK
    | 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 5s ${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
    }
    | Merc Tank
    /if (!${Mercenary.Index} && ${GETMERC}) {
        /call navToID ${Spawn[npc Elegist].ID}
        /click right target
        /delay 1s
        /if (${Me.Subscription.Equal[FREE]}) {
            /invoke ${Window[mmtw_merchantwnd].Child[MMTW_SubtypeListBox].Select[3]}
        } else {
            /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
        /autoinventory
        /invoke ${Window[bigbankwnd].Child[BIGB_DoneButton].LeftMouseUp}
    }
    | Noob song/spell/tome
    /if (${Task[Basic].Objective[6].Status.NotEqual[Done]}) {
        /call navToID ${Spawn[npc Rytan].ID}
        /say blessed
        /call cleanWindows
        /delay 1s
        /autoinventory
        /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 9s (!${Cursor.ID})
        /if (${Window[spellbookwnd]}) /keypress SPELLBOOK
        /call cleanWindows
    }
    | Weapon sharpen (needed for final reward)
    /if (${Task[Basic].Objective[3].Status.NotEqual[Done]}) {
        /call navToID ${Spawn[npc Absor].ID}
        /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
        /delay 2s (!${Window[givewnd]})
        /call cleanWindows
        /if (${FindItemCount[Sharpened]}) /itemnotify "${FindItem[Sharpened]}" leftmouseup
        /if (${FindItemCount[Polished]}) /itemnotify "${FindItem[Polished]}" leftmouseup
        /delay 1s
        /if (${Cursor.ID}) /autoinventory
    }
    | Get skull charm
    /call navToYX -137.90 -13.43
    /call targetID ${Spawn[npc Arias].ID}
    /keypress HAIL
    /while (!${Cursor.ID}) {
        /delay 2
        }
    /if (${Cursor.ID}) /autoinventory
    /call cleanWindows
    /varset GETCHARM 0
    
    :portPOK
        /say I am ready to leave
        /delay 99s ${Zone.ShortName.Equal[PoKnowledge]}==TRUE
/return
sub doPOK
    DODEBUG ${Macro.CurSub}
    /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}) {
        /call navToYX -102.52 -113.86
    }
    | Start GETWRBAG
    /if (!${Bool[${Task[Bazaar].Index}]}>0 && ${GETWRBAG}) {
        /call navToID ${Spawn[npc Secalna].ID}
        /keypress HAIL
        /delay 1s
        /invoke ${Window[TaskSelectWnd].Child[TSEL_TaskList].Select[${Window[TaskSelectWnd].Child[TSEL_TaskList].List[The Bazaar]}]}
        /delay 1s
        /invoke ${Window[TaskSelectWnd].Child[TSEL_AcceptButton].LeftMouseUp}
        /if (${GETFELLOW}) {
            /call navToYX 165.79 -110.27
        }
    }
    | Get fellowship token
    /if (${GETFELLOW}) {
        /call navToYX 430.86 68.75
        /call targetID ${Spawn[npc Randall].ID}
        /say how
        /call cleanWindows
        /varset GETFELLOW 0
    }
    | GETWRBAG 1
    /if (${Bool[${Task[Bazaar].Index}]}>0 && ${GETWRBAG}) {
        /call navToID ${Spawn[npc Nebbo Watzet].ID}
        /say bazaar
    }
    :zoneToBazaar
        /if (${GETWRBAG}) {
            /call navToDoorID 6 | Facade
            /delay 99s ${Zone.ShortName.Equal[bazaar]}==TRUE
        }
/return
sub doBazaar
    DODEBUG ${Macro.CurSub}
    /if (${Zone.ShortName.Equal[bazaar]} && ${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
        /call navToID ${Spawn[npc Sage Vindillar].ID}
        /say test subject
        /delay 99s ${Zone.ShortName.Equal[poknowledge]}==TRUE
        /call navToID ${Spawn[npc Nebbo].ID}
        /say find
        /delay 1s
        /call cleanWindows
        /varset GETWRBAG 0
    }
/return
sub doGetFellow
    DODEBUG ${Macro.CurSub}
    /if (!${GETFELLOW}) /return
/return
sub doGetWRBag
    DODEBUG ${Macro.CurSub}
    /if (!${GETWRBAG}) /return
/return
sub doReturnTUTB
    DODEBUG ${Macro.CurSub}
    /if (${RETURNTUTB}) {
        /call navToID ${Spawn[npc Secalna Galnor].ID}
        /say send
/return
sub navToDoorID(doorID)
    DODEBUG ${Macro.CurSub}
    /doortarget id ${doorID}
    /nav door id ${doorID} click
    /if (!${Navigation.Active}) /delay 5
    /while (${Navigation.Active}) {
        /delay 5
    }
/return
sub navToPortalID(doorID)
    DODEBUG ${Macro.CurSub}
    /declare origZone int local ${Zone.ID}
    /doortarget id ${doorID}
    /nav door id ${doorID} click
    /if (!${Navigation.Active}) /delay 5
    /while (${Navigation.Active}) {
        /delay 5
    }
    /while (${Switch.Distance}<60 || ${Me.Moving}) {
        /delay 5
    }
/return
sub navToYX(Yloc, Xloc)
    DODEBUG ${Macro.CurSub}
    /nav locyx ${Yloc} ${Xloc}
    /delay 2s !${Navigation.Active}
    :stillMoving
        /delay 5 !${Navigation.Active}
        /if (${Navigation.Active}) /goto :stillMoving
/return
sub navToID(newID)
    DODEBUG ${Macro.CurSub}${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}
            }
        }
    }
/return
sub targetID(newID)
    DODEBUG ${Macro.CurSub}
    /if (${Target.ID}==${newID}) /return
    /target id ${newID}
    /delay 2s ${Target.ID}==${newID}
/return
sub cleanWindows
    DODEBUG ${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
        /delay 1s ${Window[LargeDialogWindow].Open}==TRUE
        /if (${Cursor.ID}) /autoinventory
        /if (!${Window[LargeDialogWindow]}) /return
    /goto :loopLargeDialogWindow
/return
sub checkReport
    DODEBUG ${Macro.CurSub}
    /if (${Me.ZoneBound[0].ShortName.Equal[poknowledge]}) /varset BINDPOK 0
    /if (${Mercenary.Index}) /varset GETMERC 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 (${BINDPOK}) DOMSG [ ${Macro.Name} - ${Me.Name} ] Todo: BINDPOK
    /if (${GETMERC}) DOMSG [ ${Macro.Name} - ${Me.Name} ] Todo: GETMERC
    /if (${GETCHARM}) DOMSG [ ${Macro.Name} - ${Me.Name} ] Todo: GETCHARM
    /if (${GETFELLOW}) DOMSG [ ${Macro.Name} - ${Me.Name} ] Todo: GETFELLOW
    /if (${GETWRBAG}) DOMSG [ ${Macro.Name} - ${Me.Name} ] Todo: GETWRBAG
    DODEBUG (${BINDPOK} && ${GETMERC} && ${GETCHARM} && ${GETFELLOW} && ${GETWRBAG})
    /if (!${BINDPOK} && !${GETMERC} && !${GETCHARM} && !${GETFELLOW} && !${GETWRBAG}) {
        DOMSG [ ${Macro.Name} - ${Me.Name} ] Finished in ${Macro.RunTime}
    }
/return
 
Last edited:
Great! I was thinking of starting some, but the drama around getting through all that stuff. This is marvelous.
 
I imagine when this is done a full run will take like 10m

On the parcel feature what do you think I should do?

  1. Do it 1 time at the end of the run? (Sending junk to a couple char in <10m may not give you time to parcel all you wanted)
  2. Leave it in a loop for you to /end so it checks parcel every like 10m or something

- - - Updated - - -

Great! I was thinking of starting some, but the drama around getting through all that stuff. This is marvelous.

Yea the only PITA is movement to the quests really
I did not want have to require mq2nav mesh files or even a separate path file was hoping to just have a simple minimal plugin required macro for this....but /moveto and doors are so shitty I may just giveup and go with mq2advpath
 
If you edit the mesh right (look at some of Droid's edits) for MQ2Nav then quests and pipelining a set of actions would be easier I think. I turned Droid on to MQ2Nav and he mastered it and taught me several things. Any programmatic actions with MQ2Nav has to be matched, though, I think with a tailored mesh. Otherwise you are just asking for death by snagging the character on environmental features. Or that silly back and forth flipping it does on certain meshes.

I've been thinking about creating a series of "subroutines" that enable every essential aspect of quests:
1. Go here (including doors or portals or zones)
2. Ask this. Say this.
3. Go kill this and collect these, return them to me. Or do something. Return. Say something to me.
4. Open/close/give quest giver certain items.
5. Collect prize/experience

I've got pieces of many of these written or culled from other scripts... they just need to be formalized. Some of them have "sub-functions" that vary... but you could see writing a simple series of commands that carry through with nearly any quest in a given order. Whether MQ2Nav or MQ2AdvPath is the right answer for movement I don't really know. I prefer MQ2Nav for ease of conception. But the AdvPath approach is good for exactness of the path without worrying about mesh coordination (and you have to run the path safely to be able to create it).

Complications of course (mostly around inadvertent MOB attacks), but worth thinking more about.

JJB
 
If you edit the mesh right (look at some of Droid's edits) for MQ2Nav then quests and pipelining a set of actions would be easier I think. I turned Droid on to MQ2Nav and he mastered it and taught me several things. Any programmatic actions with MQ2Nav has to be matched, though, I think with a tailored mesh. Otherwise you are just asking for death by snagging the character on environmental features. Or that silly back and forth flipping it does on certain meshes.

I've been thinking about creating a series of "subroutines" that enable every essential aspect of quests:
1. Go here (including doors or portals or zones)
2. Ask this. Say this.
3. Go kill this and collect these, return them to me. Or do something. Return. Say something to me.
4. Open/close/give quest giver certain items.
5. Collect prize/experience

I've got pieces of many of these written or culled from other scripts... they just need to be formalized. Some of them have "sub-functions" that vary... but you could see writing a simple series of commands that carry through with nearly any quest in a given order. Whether MQ2Nav or MQ2AdvPath is the right answer for movement I don't really know. I prefer MQ2Nav for ease of conception. But the AdvPath approach is good for exactness of the path without worrying about mesh coordination (and you have to run the path safely to be able to create it).

Complications of course (mostly around inadvertent MOB attacks), but worth thinking more about.

JJB

PeteSampras did some quest/task consolidated framework thingy... I remember seeing it but couldnt find it again

The issue with MQ2Nav is like you said.... need to share the mesh files not everyones works well
The issue I have with mq2advpath is not everyone has that plugin loaded, it is a 2nd ini file and I am just being lazy =)

The way I have this now just requires mq2moveutils which basically everyone uses so it *should* be able to be used for a long time, could even include it in the default macros for all I care. I could pull the move.inc sub's into this and it would probably work just as well.
 
PeteSampras did some quest/task consolidated framework thingy... I remember seeing it but couldnt find it again

The issue with MQ2Nav is like you said.... need to share the mesh files not everyones works well
The issue I have with mq2advpath is not everyone has that plugin loaded, it is a 2nd ini file and I am just being lazy =)

The way I have this now just requires mq2moveutils which basically everyone uses so it *should* be able to be used for a long time, could even include it in the default macros for all I care. I could pull the move.inc sub's into this and it would probably work just as well.

Just curious -- what would your thoughts be on the idea of having the ability to generate a mesh from the plugin?
 
Just curious -- what would your thoughts be on the idea of having the ability to generate a mesh from the plugin?

I think it would be situational due to assumptions and probably not worth your effort

assumption1 - would be slower than generating with the app
assumption2 - probably a PITA for bugs as you are shoehorining functionality into EQ/MQ2. 'wrong tool for the job' thinking


Generally the goal is 'I am here and I need to go to this place/thing'. We have 2 general options...
1 - brute force via /moveto and /mq2advpath
2 - auto-magically with mq2nav

#1 is painful and slow to get going as it is really manual tedium
#2 is unreliable

What if have #3 as a hybrid of both?

I have yet to actually really sit down and play with mq2nav but some of the things I think would be interesting
A - play path - like mq2advpath, this would probably ease 90% of the issues people have. This allows a way to reduce #1 pain and improve #2 pain as you can make waypoints.
B - store path in array - AFAIK path's for mq2advpath can only be stored in an ini for that zone.... I would love if you could store path's in a mq2 array. Then you can include that array in the mac

C - danger-area - related to the detour.... a way to say 'never get within ## distance of this black hole trap'
D - detour - what I mean here is that perhaps per zone just like mq2advpath you could specify a baby/mini path around a danger-area. I imagine this working like IF within ## radius of 'detour path' use the detour path rather than the auto-magic-path.
 
i got bored, so made a new character, and tried to fix up the bazaar wr bag qust

Rich (BB code):
|**----------
 newtoon.mac
-------------

 Goal = Get a new toon setup

 1701c (LamahHerder)
 + Faster, cleaner, better (ty eqmule)
 + Bind's @ Soulbinder in PoK
 + Get's Fellowship Insignia
 
 1701b (LamahHerder)
 + Select reward working
 + Gets Tank Merc dependant on Subscription

 1701a (LamahHerder)
 ! Select Reward does not always work:
	/notify RewardSelectionBottomPane RewardSelectionChooseButton leftmouseup
 + Removed InvSlot stuff
 + Removes all tasks when run complete
 + Ports to PoK
 + Fixed Spell/Song/Tome memorization, also made sure Berserker mem's extra tome.
 + Cleanup...

 1609a (LamahHerder)
 + First version
 + Complete all of tutoriala
 + Complete tutorialb task with Arias to get charm
 
-------------
 newtoon.mac
----------**|

Sub Main
	 /if (${Zone.ShortName.Equal[tutoriala]}) /call tutoriala
	 /if (${Zone.ShortName.Equal[tutorialb]}) /call tutorialb
	 /if (${Zone.ShortName.Equal[PoKnowledge]}) /call PoKnowledge
	 /echo !!!!! YAY YOZ WON DA EBERQUEST !!!!!
/end

Sub tutoriala
	/target Arias
		/bc Starting ${Zone.ShortName}
		/if (${Window[alertwnd]}) /nomodkey /notify alertwnd ALW_Close_Button leftmouseup
		/delay 2s ${Target.ID}==${Spawn[Arias].ID}
		/hail
		/if (${Window[LargeDialogWindow]}) /invoke ${Window[largedialogwindow].Child[LDW_OkButton].LeftMouseUp}
		/if (${FindItemCount[Tome]}) /nomodkey /itemnotify "${FindItem[Tome]}" rightmouseup
		/say escape
		/delay 5s ${Window[TaskSelectWnd].Open}==TRUE
		/if (${Window[TaskSelectWnd]}) /notify TaskSelectWnd TSEL_AcceptButton leftmouseup
		/doortarget OBJ_JDSWITCHA
		/if (${Window[LargeDialogWindow]}) /invoke ${Window[largedialogwindow].Child[LDW_OkButton].LeftMouseUp}
		/call openDoor
		/moveto loc 0.44 20.75
	/delay 10s ${MoveTo.Stopped}

	/bc Killing Jailor in ${Zone.ShortName}
	 	/moveto loc ${Spawn[npc Jailor].Loc}
	 	/target npc Jailor
	 	/delay 10s ${MoveTo.Stopped}
	 	/attack
		/delay 1s
	/delay 120s (!${Me.Combat})

	/bc Looting Jailer in ${Zone.ShortName}
		/delay 2s (${Window[advancedlootwnd]})
		/if (${Window[advancedlootwnd]}) /notify advancedlootwnd ADLW_PLL_LootAllBtn leftmouseup
	/delay 2s (!${Window[advancedlootwnd]})

	/target pet Arias
		/nomodkey /itemnotify "The Gloomingdeep Jailor's Key" leftmouseup
		/delay 2s (${Cursor.ID})
		/if (${Target.Distance} > 20) /moveto id ${Target.ID}
		/delay 2s ${MoveTo.Stopped}
		/if (${Target.Distance} < 21) /nomodkey /click left target
		/delay 2s (${Window[givewnd]})
		/if (${Window[givewnd]}) /notify givewnd GVW_Give_Button leftmouseup
		/delay 2s (!${Window[givewnd]})
		/bc Finished ${Zone.ShortName}
		/call closeWindows
	/delay 180s ${Zone.ShortName.Equal[tutorialb]}==TRUE
/return

Sub tutorialb 
	/bc Starting ${Zone.ShortName}
	/call abusePerson Arias
	
	| Get item = Gloomingdeep Kobold Arms
	/call abusePerson Vahlara
		/delay 2s
		/autoinventory
		/say others
	/call closeWindows
	
	| Get junky-jboots clicky = Worn Totem
	/call abusePerson "Basher Alga"
		/if (${Window[TaskSelectWnd]}) /notify TaskSelectWnd TSEL_AcceptButton leftmouseup
		/hail
		/call closeWindows
		/call getReward
		/if (${FindItemCount[Worn Totem]}) /useitem "Worn Totem"
	/delay 3s (!${Cast.Ready})

	| Get Mercenary = Tank
	/target npc Elegist
		/moveto id ${Spawn[npc Elegist].ID}
		/delay 8s ${Target.Distance}<10
		/click right target
		/delay 1s
		
			/if (${Me.Subscription.Equal[GOLD]}) {
				/invoke ${Window[mmtw_merchantwnd].Child[MMTW_TypeComboBox].Select[2]}
				/delay 1s 
				/invoke ${Window[mmtw_merchantwnd].Child[MMTW_SubtypeListBox].Select[1]}
			}

			/if (${Me.Subscription.Equal[SILVER]}) /invoke ${Window[mmtw_merchantwnd].Child[MMTW_SubtypeListBox].Select[9]}
			/if (${Me.Subscription.Equal[FREE]}) /invoke ${Window[mmtw_merchantwnd].Child[MMTW_SubtypeListBox].Select[3]}
			
		/invoke ${Window[mmtw_merchantwnd].Child[MMTW_HireButton].LeftMouseUp}
		/delay 1s
	/invoke ${Window[mmgw_managewnd].Child[MMGW_SuspendButton].LeftMouseUp}

	/call abusePerson Lyndroh
		/click right target
		/delay 2s (${Window[bigbankwnd]})
		/nomodkey /itemnotify bank1 leftmouseup
		/delay 1s
		/if (${Cursor.ID}) /autoinventory
	/invoke ${Window[bigbankwnd].Child[BIGB_DoneButton].LeftMouseUp}

	| Get item = noob song/tome/spell
	/call abusePerson Rytan
		/say blessed
		/call closeWindows
		/delay 1s
		/if (${Cursor.ID}) /autoinventory
		/call closeWindows
		/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 9s (!${Cursor.ID})
		/if (${Window[spellbookwnd]}) /keypress SPELLBOOK
	/call closeWindows

	| Get item = weapon upgrade
	/call abusePerson Absor
		/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
		/delay 2s (!${Window[givewnd]})
		/call closeWindows
		/if (${FindItemCount[Sharpened]}) /itemnotify "${FindItem[Sharpened]}" leftmouseup
		/if (${FindItemCount[Polished]}) /itemnotify "${FindItem[Polished]}" leftmouseup
		/delay 1s
		/if (${Cursor.ID}) /autoinventory

	/call abusePerson Prathun
	/call closeWindows

	/call abusePerson Arias
		/hail
		/call closeWindows
		/delay 1s
		/if (${Cursor.ID}) /autoinventory
		/call removeTasks
		/say I am ready to leave
	/delay 180s ${Zone.ShortName.Equal[PoKnowledge]}==TRUE
/return

Sub PoKnowledge
	/bc Starting ${Zone.ShortName}
	/target npc Soulbinder Jera
		/moveto loc -191 -74
		/delay 20s ${MoveTo.Stopped}
	/say bind your soul
	
	|Get fellowship token
	/moveto loc 71 -85
		/delay 20s ${MoveTo.Stopped}
		/moveto loc 291 -112
		/delay 20s ${MoveTo.Stopped}
		/moveto loc 318 71
		/delay 20s ${MoveTo.Stopped}
		/doortarget POKDOOR503
		/moveto loc ${Switch.DefaultY} ${Switch.DefaultX}
		/delay 20s ${MoveTo.Stopped}
		/if (${Switch.Open}==FALSE) /call openDoor
		/moveto loc 381 72
		/delay 20s ${MoveTo.Stopped}
		/target npc Randall
		/moveto loc 439 70
		/delay 20s ${MoveTo.Stopped}
		/say how
		/delay 1s
		/moveto stop
		/if (${Cursor.ID}) /autoinventory
		/doortarget POKDOOR503
		/moveto loc ${Switch.DefaultY} ${Switch.DefaultX}
		/delay 20s ${MoveTo.Stopped}
		/if (${Switch.Open}==FALSE) /call openDoor
		/moveto loc 335 75
		/delay 10s ${MoveTo.Stopped}
		/call Bagget
/return

|Get Freebag from Bazaar Quest
Sub Bagget
		/moveto loc 185 -70
		/delay 20s ${MoveTo.Stopped}
		/moveto loc 135 -85
		/delay 20s ${MoveTo.Stopped}
		/call abusePerson Secalna
		/delay 1s
		/invoke ${Window[TaskSelectWnd].Child[TSEL_TaskList].Select[${Window[TaskSelectWnd].Child[TSEL_TaskList].List[The Bazaar]}]}
		/delay 1s
		/invoke ${Window[TaskSelectWnd].Child[TSEL_AcceptButton].LeftMouseUp}
		/delay 1s
		/invoke ${Window[TaskWnd].DoClose}
		/moveto loc 35 125
		/delay 20s ${MoveTo.Stopped}
		/moveto loc -45 156
		/delay 20s ${MoveTo.Stopped}
		/moveto loc -190 170
		/delay 20s ${MoveTo.Stopped}
		/moveto loc -190 210
		/delay 20s ${MoveTo.Stopped}
		/moveto loc -75 375
		/delay 20s ${MoveTo.Stopped}
		/moveto loc 245 505
		/delay 20s ${MoveTo.Stopped}
		/moveto loc 490 750
		/delay 20s ${MoveTo.Stopped}
		/moveto loc 480 1200
		/delay 20s ${MoveTo.Stopped}
		/moveto loc 280 1400
		/delay 20s ${MoveTo.Stopped}
		/call abusePerson Nebbo
		/delay 1s
		/say bazaar
		/delay 1s
		/moveto loc 290 1395
		/delay 20s ${MoveTo.Stopped}
		/moveto loc 325 1445
		/delay 20s ${MoveTo.Stopped}
		/doortarget FACADE
		/face door
		/click left door
	/delay 180s ${Zone.ShortName.Equal[Bazaar]}==TRUE
	/delay 5s
		/moveto loc 5 -50
		/delay 20s ${MoveTo.Stopped}
		/call abusePerson Nermin
		/delay 1s
		/say business
		/delay 1s
		/moveto loc 55 55
		/delay 20s ${MoveTo.Stopped}
		/moveto loc 155 155
		/delay 20s ${MoveTo.Stopped}
		/moveto loc 155 205
		/delay 20s ${MoveTo.Stopped}
		/moveto loc 95 275
		/delay 20s ${MoveTo.Stopped}
		/moveto loc 50 315
		/delay 20s ${MoveTo.Stopped}
/delay 5s
		/moveto loc 1235 940
		/delay 20s ${MoveTo.Stopped}
		/moveto loc 1375 930
		/delay 20s ${MoveTo.Stopped}
		/moveto loc 1400 990
		/delay 20s ${MoveTo.Stopped}
		/moveto loc 1380 1080
		/delay 20s ${MoveTo.Stopped}
		/call abusePerson Elan
		/delay 1s
		/say items
		/delay 1s
		/moveto loc 1400 990
		/delay 20s ${MoveTo.Stopped}
		/moveto loc 1375 930
		/delay 20s ${MoveTo.Stopped}
		/moveto loc 1235 940
		/delay 20s ${MoveTo.Stopped}
		/moveto loc 1150 915
		/delay 20s ${MoveTo.Stopped}
/delay 5s
		/moveto loc 155 205
		/delay 20s ${MoveTo.Stopped}
		/moveto loc 155 155
		/delay 20s ${MoveTo.Stopped}
		/moveto loc 55 55
		/delay 20s ${MoveTo.Stopped}
		/moveto loc 60 -60
		/delay 20s ${MoveTo.Stopped}
		/moveto loc 155 -155
		/delay 20s ${MoveTo.Stopped}
		/moveto loc 205 -155
		/delay 20s ${MoveTo.Stopped}
		/moveto loc 315 -45
		/delay 20s ${MoveTo.Stopped}
/delay 5s
|need movement from landingspot to helena
|		/call abusePerson Helena
|		/delay 1s
|		/say trader
|		/delay 1s
|need movement out of the bazaar talk to sage for port outside.
|	/delay 180s ${Zone.ShortName.Equal[PoKnowledge]}==TRUE
/delay 5s
|		/moveto loc 280 1400
|		/delay 20s ${MoveTo.Stopped}
|		/call abusePerson Nebbo
|		/delay 1s
|		/say find
|		/delay 1s
|		/call getReward
/delay 2s
/return	

Sub getReward
	/invoke ${Window[RewardSelectionWnd].FirstChild.FirstChild.Next.Child[RewardSelectionChooseButton].LeftMouseUp}
	/delay 1s
/return

Sub removeTasks
	/if (!${Window[taskwnd]}) /keypress CMD_TOGGLETASKWIN
	/delay 5s (${Window[taskwnd]})
	/nomodkey /notify taskwnd TASK_AbandonButton leftmouseup
	/nomodkey /notify confirmationdialogbox CD_Yes_Button leftmouseup
	/delay 1s
	/nomodkey /notify taskwnd TASK_AbandonButton leftmouseup
	/nomodkey /notify confirmationdialogbox CD_Yes_Button leftmouseup
	/if (${Window[taskwnd]}) /keypress CMD_TOGGLETASKWIN
/return

Sub abusePerson(Person) 
	/echo Dealing with ${Person}
	/target npc ${Spawn[npc ${Person}].DisplayName}
	/call closeWindows
	/squelch /face ${Person}
	/moveto id ${Spawn[npc ${Person}].ID}
	/call closeWindows
	/delay 10s (${Spawn[${Person}].Distance}<14)
	/hail
	/delay 5
/return

Sub closeWindows 
	/if (!${Window[LargeDialogWindow]}) /delay 5
	:closeWindowsLoop
		/if (!${Window[LargeDialogWindow]}) /return
		/if (${Window[LargeDialogWindow]}) /invoke ${Window[largedialogwindow].Child[LDW_OkButton].LeftMouseUp}
		/delay 1s
	/goto :closeWindowsLoop
/return

Sub openDoor
	/if (${Switch.Open}==FALSE) {
		:openSwitchLoop
			/face door
			/if (${Window[LargeDialogWindow]}) /invoke ${Window[largedialogwindow].Child[LDW_OkButton].LeftMouseUp}
			/click left door
			/delay 2s
			/if (${Switch.Open}==FALSE) /goto :openSwitchLoop
	}
	/delay 1s
/return
/end

if anyone wanna test and see if they can finish it up. just need the movment from the tp landing spot near helena to helena, and then back down to the sage that can tp you outside, that way you dont have to run the last leg.
and then finish it up with talking to neebo again, i put in that part, so should just be uncommented. but i lost focus, and i needed food.
 
Kaen01 _ use it for all of my new toons now, it's a bit janky (ok, janky as hell) inside the bazaar but I can deal with the extra two minutes of manually doing the last few hails to get the bag at the end.
 
I took up the challenge of finishing out the WR bag quest. Also tuned up the Plane of Knowledge and Bazaar pathing. Tested with a brand new Ogre totally hands off with no hang ups. Give it a try, I think you will like it.



Code:
|**----------
 newtoon.mac
-------------

 Goal = Get a new toon setup

 1701c (LamahHerder)
 + Faster, cleaner, better (ty eqmule)
 + Bind's @ Soulbinder in PoK
 + Get's Fellowship Insignia
 
 1701b (LamahHerder)
 + Select reward working
 + Gets Tank Merc dependant on Subscription

 1701a (LamahHerder)
 ! Select Reward does not always work:
    /notify RewardSelectionBottomPane RewardSelectionChooseButton leftmouseup
 + Removed InvSlot stuff
 + Removes all tasks when run complete
 + Ports to PoK
 + Fixed Spell/Song/Tome memorization, also made sure Berserker mem's extra tome.
 + Cleanup...

 1609a (LamahHerder)
 + First version
 + Complete all of tutoriala
 + Complete tutorialb task with Arias to get charm
 
-------------
 newtoon.mac
----------**|

Sub Main
     /if (${Zone.ShortName.Equal[tutoriala]}) /call tutoriala
     /if (${Zone.ShortName.Equal[tutorialb]}) /call tutorialb
     /if (${Zone.ShortName.Equal[PoKnowledge]}) /call PoKnowledge
     /echo !!!!! YAY YOZ WON DA EBERQUEST !!!!!
/end

Sub tutoriala
    /target Arias
        /bc Starting ${Zone.ShortName}
        /if (${Window[alertwnd]}) /nomodkey /notify alertwnd ALW_Close_Button leftmouseup
        /delay 2s ${Target.ID}==${Spawn[Arias].ID}
        /hail
        /if (${Window[LargeDialogWindow]}) /invoke ${Window[largedialogwindow].Child[LDW_OkButton].LeftMouseUp}
        /if (${FindItemCount[Tome]}) /nomodkey /itemnotify "${FindItem[Tome]}" rightmouseup
        /say escape
        /delay 5s ${Window[TaskSelectWnd].Open}==TRUE
        /if (${Window[TaskSelectWnd]}) /notify TaskSelectWnd TSEL_AcceptButton leftmouseup
        /doortarget OBJ_JDSWITCHA
        /if (${Window[LargeDialogWindow]}) /invoke ${Window[largedialogwindow].Child[LDW_OkButton].LeftMouseUp}
        /call openDoor
        /moveto loc 0.44 20.75
    /delay 10s ${MoveTo.Stopped}

    /bc Killing Jailor in ${Zone.ShortName}
         /moveto loc ${Spawn[npc Jailor].Loc}
         /target npc Jailor
         /delay 10s ${MoveTo.Stopped}
         /attack
        /delay 1s
    /delay 120s (!${Me.Combat})

    /bc Looting Jailer in ${Zone.ShortName}
        /delay 2s (${Window[advancedlootwnd]})
        /if (${Window[advancedlootwnd]}) /notify advancedlootwnd ADLW_PLL_LootAllBtn leftmouseup
    /delay 2s (!${Window[advancedlootwnd]})

    /target Arias
        /nomodkey /itemnotify "The Gloomingdeep Jailor's Key" leftmouseup
        /delay 2s (${Cursor.ID})
5        /if (${Target.Distance} > 20) /moveto id ${Target.ID}
        /delay 2s ${MoveTo.Stopped}
        /if (${Target.Distance} < 21) /nomodkey /click left target
        /delay 2s (${Window[givewnd]})
        /if (${Window[givewnd]}) /notify givewnd GVW_Give_Button leftmouseup
        /delay 2s (!${Window[givewnd]})
        /hail
        /bc Finished ${Zone.ShortName}
        /call closeWindows
    /delay 180s ${Zone.ShortName.Equal[tutorialb]}==TRUE
/return

Sub tutorialb
    /bc Starting ${Zone.ShortName}
    /call abusePerson Arias
    
    | Get item = Gloomingdeep Kobold Arms
    /call abusePerson Vahlara
        /delay 2s
        /autoinventory
        /say others
    /call closeWindows
    
    | Get junky-jboots clicky = Worn Totem
    /call abusePerson "Basher Alga"
        /if (${Window[TaskSelectWnd]}) /notify TaskSelectWnd TSEL_AcceptButton leftmouseup
        /hail
        /call closeWindows
        /call getReward
        /if (${FindItemCount[Worn Totem]}) /useitem "Worn Totem"
    /delay 3s (!${Cast.Ready})

    | Get Mercenary = Tank
    /target npc Elegist
        /moveto id ${Spawn[npc Elegist].ID}
        /delay 8s ${Target.Distance}<10
        /click right target
        /delay 1s
        
            /if (${Me.Subscription.Equal[GOLD]}) {
                /invoke ${Window[mmtw_merchantwnd].Child[MMTW_TypeComboBox].Select[2]}
                /delay 1s
                /invoke ${Window[mmtw_merchantwnd].Child[MMTW_SubtypeListBox].Select[1]}
            }

            /if (${Me.Subscription.Equal[SILVER]}) /invoke ${Window[mmtw_merchantwnd].Child[MMTW_SubtypeListBox].Select[9]}
            /if (${Me.Subscription.Equal[FREE]}) /invoke ${Window[mmtw_merchantwnd].Child[MMTW_SubtypeListBox].Select[3]}
            
        /invoke ${Window[mmtw_merchantwnd].Child[MMTW_HireButton].LeftMouseUp}
        /delay 1s
    /invoke ${Window[mmgw_managewnd].Child[MMGW_SuspendButton].LeftMouseUp}

    /call abusePerson Lyndroh
        /click right target
        /delay 2s (${Window[bigbankwnd]})
        /nomodkey /itemnotify bank1 leftmouseup
        /delay 1s
        /if (${Cursor.ID}) /autoinventory
    /invoke ${Window[bigbankwnd].Child[BIGB_DoneButton].LeftMouseUp}

    | Get item = noob song/tome/spell
    /call abusePerson Rytan
        /say blessed
        /call closeWindows
        /delay 1s
        /if (${Cursor.ID}) /autoinventory
        /call closeWindows
        /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 9s (!${Cursor.ID})
        /if (${Window[spellbookwnd]}) /keypress SPELLBOOK
    /call closeWindows

    | Get item = weapon upgrade
    /call abusePerson Absor
        /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
        /delay 2s (!${Window[givewnd]})
        /call closeWindows
        /if (${FindItemCount[Sharpened]}) /itemnotify "${FindItem[Sharpened]}" leftmouseup
        /if (${FindItemCount[Polished]}) /itemnotify "${FindItem[Polished]}" leftmouseup
        /delay 1s
        /if (${Cursor.ID}) /autoinventory

    /call abusePerson Prathun
    /call closeWindows

    /call abusePerson Arias
        /hail
        /call closeWindows
        /delay 1s
        /if (${Cursor.ID}) /autoinventory
        /call removeTasks
        /say I am ready to leave
    /delay 180s ${Zone.ShortName.Equal[PoKnowledge]}==TRUE
/return

Sub PoKnowledge
    /bc Starting ${Zone.ShortName}
    /target npc Soulbinder Jera
        /moveto loc -191 -74
        /delay 20s ${MoveTo.Stopped}
    /say bind your soul
    
    |Get fellowship token
    /moveto loc -183.76 -108.09
        /delay 20s ${MoveTo.Stopped}
        /moveto loc 309.32 -111.16
        /delay 20s ${MoveTo.Stopped}
        /moveto loc 340.25 73.38
        /delay 20s ${MoveTo.Stopped}
        /doortarget POKDOOR503
        /moveto loc ${Switch.DefaultY} ${Switch.DefaultX}
        /delay 20s ${MoveTo.Stopped}
        /if (${Switch.Open}==FALSE) /call openDoor
        /moveto loc 381 72
        /delay 20s ${MoveTo.Stopped}
        /target npc Randall
        /moveto loc 439 70
        /delay 20s ${MoveTo.Stopped}
        /say how
        /delay 1s
        /moveto stop
        /if (${Cursor.ID}) /autoinventory
        /doortarget POKDOOR503
        /moveto loc ${Switch.DefaultY} ${Switch.DefaultX}
        /delay 20s ${MoveTo.Stopped}
        /if (${Switch.Open}==FALSE) /call openDoor
        /moveto loc 335 75
        /delay 10s ${MoveTo.Stopped}
        /call Bagget
/return

|Get Freebag from Bazaar Quest
Sub Bagget
        /moveto loc 185 -94
        /delay 20s ${MoveTo.Stopped}
        /moveto loc 135 -85
        /delay 20s ${MoveTo.Stopped}
        /call abusePerson Secalna
        /delay 1s
        /invoke ${Window[TaskSelectWnd].Child[TSEL_TaskList].Select[${Window[TaskSelectWnd].Child[TSEL_TaskList].List[The Bazaar]}]}
        /delay 1s
        /invoke ${Window[TaskSelectWnd].Child[TSEL_AcceptButton].LeftMouseUp}
        /delay 1s
        /invoke ${Window[TaskWnd].DoClose}
        /moveto loc 185 -94
        /delay 20s ${MoveTo.Stopped}
        /moveto loc 190 233
        /delay 20s ${MoveTo.Stopped}
        /moveto loc 491 796
        /delay 20s ${MoveTo.Stopped}
        /moveto loc 480 1200
        /delay 20s ${MoveTo.Stopped}
        /moveto loc 280 1400
        /delay 20s ${MoveTo.Stopped}
        /call abusePerson Nebbo
        /delay 1s
        /say bazaar
        /delay 1s
        /moveto loc 290 1395
        /delay 20s ${MoveTo.Stopped}
        /moveto loc 325 1445
        /delay 20s ${MoveTo.Stopped}
        /doortarget FACADE
        /face door
        /click left door
        /delay 180s ${Zone.ShortName.Equal[Bazaar]}==TRUE
        /delay 5s
        /moveto loc 5 -50
        /delay 20s ${MoveTo.Stopped}
        /call abusePerson Nermin
        /delay 1s
        /say business
        /delay 1s
        /moveto loc 55 55
        /delay 20s ${MoveTo.Stopped}
        /moveto loc 155 155
        /delay 20s ${MoveTo.Stopped}
        /moveto loc 155 205
        /delay 20s ${MoveTo.Stopped}
        /moveto loc 95 275
        /delay 20s ${MoveTo.Stopped}
        /moveto loc 50 315
        /delay 20s ${MoveTo.Stopped}
        /delay 5s
        /moveto loc 1227 940
        /delay 20s ${MoveTo.Stopped}
        /moveto loc 1358 942
        /delay 20s ${MoveTo.Stopped}
        /moveto loc 1400 990
        /delay 20s ${MoveTo.Stopped}
        /moveto loc 1392 1074
        /delay 20s ${MoveTo.Stopped}
        /call abusePerson Elan
        /delay 1s
        /say items
        /delay 1s
        /moveto loc 1400 990
        /delay 20s ${MoveTo.Stopped}
        /moveto loc 1358 942
        /delay 20s ${MoveTo.Stopped}
        /moveto loc 1227 940
        /delay 20s ${MoveTo.Stopped}
        /moveto loc 1150 915
        /delay 20s ${MoveTo.Stopped}
        /delay 5s
        /moveto loc 155 205
        /delay 20s ${MoveTo.Stopped}
        /moveto loc 155 155
        /delay 20s ${MoveTo.Stopped}
        /moveto loc 55 55
        /delay 20s ${MoveTo.Stopped}
        /moveto loc 60 -60
        /delay 20s ${MoveTo.Stopped}
        /moveto loc 155 -155
        /delay 20s ${MoveTo.Stopped}
        /moveto loc 205 -155
        /delay 20s ${MoveTo.Stopped}
        /moveto loc 315 -45
        /delay 20s ${MoveTo.Stopped}
        /delay 5s
|movement from landingspot to Helena
        /moveto loc 1229 -871
        /delay 20s ${MoveTo.Stopped}
        /moveto loc 1360 -867
        /delay 20s ${MoveTo.Stopped}
        /moveto loc 1396 -834
        /delay 20s ${MoveTo.Stopped}
        /moveto loc 1390 -716
        /delay 20s ${MoveTo.Stopped}
        /call abusePerson Helena
        /delay 1s
        /say trader
        /delay 3s
        /call closeWindows
        /delay 1s
|movement from landingspot to Sage Vindillar
        /moveto loc 1396 -834
        /delay 20s ${MoveTo.Stopped}
        /moveto loc 1355 -870
        /delay 20s ${MoveTo.Stopped}
        /moveto loc 1232 -871
        /delay 20s ${MoveTo.Stopped}
        /moveto loc 1149 -896
        /delay 20s ${MoveTo.Stopped}
        /delay 5s
        /moveto loc 199.22 -152.58
        /delay 20s ${MoveTo.Stopped}
        /moveto loc 151.12 -152.30
        /delay 20s ${MoveTo.Stopped}
        /moveto loc 62.52 -63.69
        /delay 20s ${MoveTo.Stopped}
        /moveto loc 9.99 -58.12
        /delay 20s ${MoveTo.Stopped}
|need movement out of the bazaar talk to sage for port outside.
        /call abusePerson "Sage Vindillar"
        /delay 1s
        /say teleportation magic
        /delay 1s
        /say test subject
        /delay 180s ${Zone.ShortName.Equal[PoKnowledge]}==TRUE
        /delay 5s
        /moveto loc 280 1400
        /delay 20s ${MoveTo.Stopped}
        /call abusePerson Nebbo
        /delay 1s
        /say find
        /delay 1s
        /call getReward
        /delay 2s
    /return   

Sub getReward
    /invoke ${Window[RewardSelectionWnd].FirstChild.FirstChild.Next.Child[RewardSelectionChooseButton].LeftMouseUp}
    /delay 1s
/return

Sub removeTasks
    /if (!${Window[taskwnd]}) /keypress CMD_TOGGLETASKWIN
    /delay 5s (${Window[taskwnd]})
    /nomodkey /notify taskwnd TASK_AbandonButton leftmouseup
    /nomodkey /notify confirmationdialogbox CD_Yes_Button leftmouseup
    /delay 1s
    /nomodkey /notify taskwnd TASK_AbandonButton leftmouseup
    /nomodkey /notify confirmationdialogbox CD_Yes_Button leftmouseup
    /if (${Window[taskwnd]}) /keypress CMD_TOGGLETASKWIN
/return

Sub abusePerson(Person)
    /echo Dealing with ${Person}
    /target npc ${Spawn[npc ${Person}].DisplayName}
    /call closeWindows
    /squelch /face ${Person}
    /moveto id ${Spawn[npc ${Person}].ID}
    /call closeWindows
    /delay 10s (${Spawn[${Person}].Distance}<14)
    /hail
    /delay 5
/return

Sub closeWindows
    /if (!${Window[LargeDialogWindow]}) /delay 5
    :closeWindowsLoop
        /if (!${Window[LargeDialogWindow]}) /return
        /if (${Window[LargeDialogWindow]}) /invoke ${Window[largedialogwindow].Child[LDW_OkButton].LeftMouseUp}
        /delay 1s
    /goto :closeWindowsLoop
/return

Sub openDoor
    /if (${Switch.Open}==FALSE) {
        :openSwitchLoop
            /face door
            /if (${Window[LargeDialogWindow]}) /invoke ${Window[largedialogwindow].Child[LDW_OkButton].LeftMouseUp}
            /click left door
            /delay 2s
            /if (${Switch.Open}==FALSE) /goto :openSwitchLoop
    }
    /delay 1s
/return
/end
 
LamahHerder updated newtoon.mac - setup to get ready to level with a new update entry:

1907b

1907b (LamahHerder)


Code:
|**--------------
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...

Read the rest of this update entry...
 
I seem to get stuck on lanterns in the halls of the bazzar. Any ideas how to address that?
 
LamahHerder updated newtoon.mac - setup to get ready to level with a new update entry:

Why am I updating this?

1908a Changes ( Why am I updating this? )
=============
Work it harder
Make it better
Do it faster
Makes us stronger
More than ever
Hour after
Our work is
Never over

------------------------------------------------------------------------------------------------------------------------
Config Options:
------------------------------------------------------------------------------------------------------------------------
  • GETTOTEM
    • Worn Totem (Ghetto Jboots)...

Read the rest of this update entry...
 
I played around with this for a bit today. Some feedback:
In your first while loop, you have ${GETAUGEE} When it should be ${GETAUGGE}. This is the same in the debug line just after that.

In your cleanWindows sub you have this line:
Code:
/delay 10 ${Window[LargeDialogWindow].Open}==TRUE
But you don't need the == True:
Code:
/delay 10 ${Window[LargeDialogWindow].Open}

However, are you intentionally delaying that sub until that window is Open or did you mean that you wanted to move on once that window was closed?

You have a space after this line:
/call navToID ${Spawn[npc Arias].ID}

Your navToID function crashes at this line:
/squelch /nav id ${iNewID} dist=15

If your group fills up before you reach the merc check, you'll never clear the merc check because you can't get a merc while you're in a full group. This becomes an infinite loop.

I got stuck in a loop a couple of times. Once while on a new character after getting a merc (but without doing anything else). Once going back and forth between PoK and the guild lobby. It's probably because you don't have a check to see where you are bound in either of those scenarios, so it never knows that you got the bind.
 
Ahh, I see the loop issue that I hit the first time -- if the task window closes then you don't get status updates on tasks. You may want to account for that in your code.
 
That macro changed a lot since i use it, i'll have to try this new version asap :)
 
FYI, I just went ahead and tried it and it worked wonderfully. Just be sure to comment out the backpack, since it is not available on those servers.
 
Release newtoon.mac - setup to get ready to level

Users who are viewing this thread

Back
Top
Cart