basic afk xp macro that works on zippzipp's emu

This is my MQ2Advloot.ini for farming elemental tradeskills:

Code:
[Settings]
AllowWarp=True
AllowStealth=True
AllowAutoDestroy=False
EchoDestroy=True
EchoKeep=True
EchoLootMSG=True
EchoLoreMSG=True
ItemsDelay=100
CorpseOpenDelay=100
MinValue=0
DefaultAction=Ignore
NoDrop=True
[Items]
Brick of Ethereal Energy=Keep
Ethereal Parchment=Destroy
Razorfiend Tongue=Destroy
Razorfiend Talon=Destroy
Brick of Valorium=Keep
Cartographers Ink Bottle=Destroy
Massive Pile of Rocks=Destroy
Razorfiend's Heart=Destroy
Strand of Ether=Keep
Valor Crystals=Destroy
Razorfiend Tail=Destroy
Large Shard of Stone=Destroy
Poison Frog Legs=Destroy
Pearlescent Pebble Formation=Destroy
Head of a Diaku Soldier=Destroy
Smashed War Grubs=Destroy
Symbol of the Diaku=Destroy
Blue Diamond=Keep
Fungus Clump=Destroy
Diamond=Keep
Spectral Parchment=Destroy
Diaku Forged Sword=Destroy
Symbol of Zek=Destroy
Diaku Forged Scimitar=Destroy
Symbol of Ducee Imperon=Destroy
Rage Filled Gem=Destroy
Diaku Forged War Hammer=Destroy
Diaku Forged Maul=Destroy
Small Sparkling Gem=Destroy
Raw Diamond=Destroy
Diaku Forged Axe=Destroy
War Stone=Destroy
Resplendent War Maul=Destroy
Ear Symbol of the Veteran=Destroy
Golem Forged Bracer=Destroy
Ornate Leather Pant Pattern=Destroy
Heavy Tooled Weapon Belt=Destroy
Battle Worn Trinket=Destroy
Battle Fists=Destroy
Veteran's Battle Charm=Destroy
Visor of Endless Sight=Destroy
Warmaster's Recurved Longbow=Destroy
Ornate Greaves Mold=Destroy
Glyphed Rune Word=Destroy
Mithril Champion Arrows=Destroy
Diaku Blood=Destroy
Gladiator's Jereed=Destroy
Living Coal=Destroy
Highly Polished Gem=Destroy
Brick of Bloodmetal=Destroy
Girdle of the Tactician=Destroy
Obsidian Scimitar of War=Destroy
Hammer of the Bloodleacher=Destroy
Wand of the War Wizard=Destroy
Water Mephit Skin=Destroy
Deepwater Ink=Destroy
Ornate Abalone Recurve Bow=Destroy
Regrua Claws=Destroy
Crab Meat=Destroy
 
I wrote a short macro to accompany the AFK EXP macro when using it to level an alt.

It's used to reach a certain level, and then turn AAXP to 100%.

Run this macro on the toon being PL'd

Code:
Sub Main

/if (${Me.Level} < 60 ) {
/call Wait 
	} else {
/call Level
	}


Sub Wait
/echo waiting..
/delay 600
/call Main

Sub Level
/echo Yay hit level 60 at ${Time}
/alt on 100 
/delay 3
/endmacro
 
This is what I used for Halls of Honor. Will get you about 80 aa's an hour.

You'll need to edit your bot names into macro.

My bots are named

Coke
Sprite
Salad
Burger
Icecream

there is two parts in macro where it summons them and invites them by name.

It's also set to only kill level 60, 61 and 62 mobs which you can change.

Code:
Sub Main
/declare Currentzone	string outer	${Zone.ID}

:more
/if (${Currentzone}!=${Zone.ID}) {
	/camp
	/echo not in right zone, ending.
	/end
	}
/if (!${Me.Combat} && ${Group.Members}<5) {
	/say #bot spawn Coke
	/delay 5
	/say #bot spawn Sprite
	/delay 5
	/say #bot spawn Salad
	/delay 5
	/say #bot spawn Burger
	/delay 5
	/say #bot spawn IceCream
	/delay 5
	/invite Cola
	/delay 5
	/invite Sprite
	/delay 5
	/invite Salad
	/delay 5
	/invite Burger
	/delay 5
	/invite IceCream
	/delay 5
	}
/if (${Group.Member[1].PctMana}<30) /delay 10s
/if (!${Target.ID} && ${Me.PctHPs} > 50) /call GetTarget
/if (${Target.ID}) /call PullMob
/if (${Me.Combat}) /call KillMob
/goto :more


Sub GetTarget
/if (${Me.Combat}) {
	/target npc
	/delay 3
	/return
	}
/target npc 62
/delay 2
/if (${Target.ID}) /return
/target npc 62
/delay 2
/if (${Target.ID}) /return
/target npc 61
/delay 2
/if (${Target.ID}) /return
/target npc 60
/delay 2
/if (${Target.ID}) /return
/target npc 60
/delay 2
/if (${Target.ID}) /return
/target npc 60
/delay 2
/if (${Target.ID}) /return
/target npc 60
/delay 2
/if (${Target.ID}) /return
/target npc 60
/delay 2
/if (${Target.ID}) /return
/target npc 60
/delay 2
/if (${Target.ID}) /return
/target npc 60
/delay 2
/if (${Target.ID}) /return
/return



Sub PullMob
:again
/if (${Target.Distance}<50) {
	/call KillMob
	/return
	}
/if (${Target.Distance}>50) {
	/warp t
	/delay 1s
	/say #bot group summon ${Me.Name}
	/goto :again
	}
/if (${Me.Combat}) /return
/if (!${Target.ID}) /return
/return

Sub KillMob
/if (${Target.Type.Equal[corpse]}) /keypress esc
/if (${Target.Distance}<50) {
	/killthis
	/attack on
	/fartaunt
	:wait
	/delay 2s
	/if (${Currentzone}!=${Zone.ID}) {
	/camp
	/echo not in right zone, ending.
	/end
	}
	/if (${SpawnCount[pc radius 50]}<2) /say #bot group summon ${Me.Name}
	/if (${Target.ID} && !${Me.Combat}) {
	/killthis
	/attack on
	/fartaunt
	}
	/if (${Target.ID}) /goto :wait
	/return
}
/return

Sub Loot
/target npc corpse
/delay 3s
/if (${Target.Type.Equal[corpse]}) {
	/advloot
	/delay 3s
	/target clear
	}
/return
 
This is my next version that i use in tactics. Note it uses a waypoint named 'tacticscamp'. It will attack a mob and then warp everyone back to that waypoint. Tactics can be troublesome. mobs often fall under the world and can lead to untimely deaths/wipes. Pets help. So does DS.

Code:
|
| rob's warp exp hunter killer
|
| v0.3

#event Exp "You gain experience!!"
#event Exp "You gain party experience!!"
#event Exp "You gain raid experience!!"
#event RELOAD "#*#did not recieve expected ping from#*#"
#event RELOAD "#*#Could not connect.#*#"
#event RELOAD "#*#You are not connected. Please use#*#" 




sub Main
	| please don't change this
	/alert 0 clear
	/alert 1 clear
	
	| Customize who you target with this.  below is a reasonably small list of things to kill in tactics
	/alert add 0 npc "elite"
	/alert add 0 npc "flayer"
	/alert add 0 npc "darkblade"
	/alert add 0 npc "blademaster"
	/alert add 0 npc "hendin shadow master"
	/alert add 0 npc "Decorin"
	/alert add 1 npc Berik
	/alert add 1 npc Grunhork
	|/alert 1 add npc "lumbering"
	|/alert 1 add npc "Ancient Guardian"

	| do not fiddle with these
	/declare TargetID int outer
	/declare IN_COMBAT float outer 0
	/declare xtargcount int outer 0
	/declare Exper 			float outer  0
	/declare AAExp 			float outer
	/varset AAExp ${Math.Calc[${Me.PctAAExp}-${AAExp}]}
	/varset Exper ${Math.Calc[${Me.PctExp}-${Exper}]} 
	
	/if (!${EQBC.Connected}) {
		/echo You are not connected to EQBC.
		/echo What you've just said is one of the most insanely idiotic things I have ever heard. At no point in your rambling, incoherent response were you even close to anything that could be considered a rational thought. Everyone in this room is now dumber for having listened to it. I award you no points, and may God have mercy on your soul
		/endmac
	}

	:mainloop
	| this is so you don't end up like fry in PoK taunting a cleric guildmaster
	/if (${Zone.ID}==202) /endmac
	/doevents
	/if (${Me.XTarget} && !${TargetID} || ${SpawnCount[npc targetable 50]}) /call killADD

	| if you don't have a target, and you have lots of mana, and no one wants you dead...find something to kill
	/if (!${TargetID} && ${Me.PctHPs} > 50 && !${Me.XTarget}) /call getTarget
	/delay 1s

	|/if (${Me.XTarget} && !${TargetID} && !${IN_COMBAT}) /call killADD

	| if you know who you want to kill, pull them.
	/if (${TargetID} && !${Me.XTarget}) /call pullmob

	
	/if (${TargetID} && ${Me.XTarget} && ) /call killmob
	/delay 1s
	/if (${TargetID} && ${Me.XTarget}) /call killmob
	/delay 1s
	/if (${Me.PctHPs} < 80 && !${IN_COMBAT} && !${Me.XTarget}) /sit
	/if (${Target.Type.Equal[Corpse]}) /varset TargetID 0
	/if (!${Target.ID}) /varset TargetID 0
	/goto :mainloop

/return

sub pullmob
	/target id ${TargetID}
	/if (${Target.Distance} > 700) {
		/varset TargetID 0
		/return
	}
	
	/bcaa //target id ${Target.ID}
	/bcaa //fart

/return

sub killmob
	/if (${IN_COMBAT}) /return
	/if (!${TargetID}) /return

	
	:waitfortarget
	/target id ${TargetID}
	/if (!${TargetID}) {
		/varset IN_COMBAT 0
		/varset TargetID 0
		/return
	}
	/if (${Target.Type.Equal[Corpse]}) {
		/varset IN_COMBAT 0
		/varset TargetID 0
		/return
	}
	/echo waiting for target
	/fart
	/if (${Target.Distance} < 50 && ${Target.LineOfSight}) {
		/varset IN_COMBAT 1
		/bcaa //stand
		/bcaa //target id ${Target.ID}
		/bcaa //warp t
		/bcaa //killthis
		/bcaa //say #bot group attack
		/return
	}
	
	/if (${Target.Distance} < 50 && !${Target.LineOfSight} && ${Target.PctHPs} > 80) {
		/bcaa //stand
		/bcaa //target id ${Target.ID}
		/bcaa //warp t
		/bcaa //killthis
		/bcaa //say #bot group attack
		/return
	}
	/delay 1s
	/if (!${TargetID} || !${Target.ID} || !${XTarget}) /return
	/goto :waitfortarget
}

sub killADD

	/for xtargcount 1 to 5
		/if (${Me.XTarget[${xtargcount}].ID}) {
			/target id ${Me.XTarget[${xtargcount}].ID}
			/varset TargetID ${Me.XTarget[${xtargcount}].ID}
			/echo got an add, killing it (id: ${Me.XTarget[${xtargcount}].ID})
	|		/varset IN_COMBAT 1
			/stand
			/call killmob
			/return
		}
	/next xtargcount
	/call getTarget
/return

sub getTarget
	/echo in gettarget
	/target npc alert 0 noalert 1
	/if (${Target.Type.Equal[Corpse]}) /return
	/varset TargetID ${Target.ID}
/return



sub Event_RELOAD
	/echo BCS SERVER DIED, ATTEMPT TO RESTART
	/delay 5s
	/squelch /bccmd quit
	/delay 5s
	/squelch /bccmd connect
/return 

Sub Event_Exp

	/varset AAExp ${Math.Calc[${Me.PctAAExp}-${AAExp}]} 
	/varset Exper ${Math.Calc[${Me.PctExp}-${Exper}]} 
	/echo EXP: ${Exper} (${Me.PctExp}%) - AAXP: ${AAExp} (${Me.PctAAExp}%) 
	/popup ${Exper} (${Me.PctExp}%) - AAXP: ${AAExp} (${Me.PctAAExp}%) 
	/varset Exper ${Me.PctExp} 
	/varset AAExp ${Me.PctAAExp}
	/varset TargetID 0
	/varset IN_COMBAT 0

	/if (!${Me.XTarget}) {
		:loot
		/squelch /target ${NearestSpawn[corpse radius 100]}
		/advloot lootall 100

		/delay 1
		/if (${AdvLoot.Active}) /goto :loot
	}
	/bcaa //warp wp tacticscamp

	/bcaa //sit

/return
 
Fry when i was running your last make in halls of honor a. I noticed it would occasionally get me killed because it targets in order of the list of mobs you put. However you run into an issue where say killing a protector of marr will be next to a liutenant etc. And now you have liutenants and guardians chasing you until all the protectors are dead.

Usually ending in death.

Is there a way to alter a macro to target mobs within x distance. Killing or warping to the closest one and attacking? rechecking after every kill the range of the viable targets?

Thanks!
 
Fry when i was running your last make in halls of honor a. I noticed it would occasionally get me killed because it targets in order of the list of mobs you put. However you run into an issue where say killing a protector of marr will be next to a liutenant etc. And now you have liutenants and guardians chasing you until all the protectors are dead.

Usually ending in death.

Is there a way to alter a macro to target mobs within x distance. Killing or warping to the closest one and attacking? rechecking after every kill the range of the viable targets?

Thanks!

This is the problem I ran into. I used to have it killing higher than level 62 which would kill the lieutenants but it caused problems with them falling under world killing us. I tried to make it /target npc if an npc was within 15 radius of you, but this made it target unkillable mobs which made it break even worse.

I'd love to use extended target to check if you have agro, but my bots pets always ended up on that. I'm guess you could check if you were in combat, and /target npc if that happens.

If I played with macro more I'm sure I could find a fix, but I really only had to keep eye on it for a couple of hours and I had all the aa's I would ever need.
 
Yea it was a small gripe at best, Ill just have to leave it running while im out and about the house. And I should be good to go soon. There's a lot of useless AA's i don't need haha.
 
it may work, but you can't reach it until GoD....which you're likely 65 if you're unlocking the expansion by killing quarm.
 
yep, but it is fairly accelerated. extra XP and with warp/fartaunt you can by pass a lot of the pre-pop keys. The first one you can't is the Ring of Vulak. There are no locked zones until you get to PoP and are forced to do progression.

The encounters are tuned down so 1-2 groups can do most things. RZ may be an exception. I couldn't do time with 2 fully decked out groups. Not enough DPS on my end. Some fights need DPS some fights need healing.
 
Will MMOLoader automatically see that I'm starting up the underfoot client? Do I need to download an older underfoot compile or no?


I haven't run the emu in quite some time, and even then I don't believe I used MMOLoader?

:cool:
 
As far as the afk exp macro I had great success switching to tactics and just leaving a few targets in the mac. "Elite" "Diaku" "Guard" "glad" Ran for 2 hours warping around with no deaths.
 
I just threw this together to kill all the adds you get in the first few phases of time. Enjoy.

Code:
|
| rob's xrape.mac -- kills everything in xtargets...against their will.  ends when you are out of things to kill.
|
| v0.1

#event Exp "You gain experience!!"
#event Exp "You gain party experience!!"
#event Exp "You gain raid experience!!"

sub Main

	/echo raping the rape out of some rapers
	
	| this is a comment
	/declare xtargcount int outer 0
	/declare TargetID int outer
	/declare IN_COMBAT int outer 0
	| i use eqbc for my two bots.  if you don't, remove the next four lines.
	/if (!${EQBC.Connected}) {
		/echo You are not connected to EQBC.
		/echo What you've just said is one of the most insanely idiotic things I have ever heard. At no point in your rambling, incoherent response were you even close to anything that could be considered a rational thought. Everyone in this room is now dumber for having listened to it. I award you no points, and may God have mercy on your soul
		/endmac
	}
	
	:mainloop
	
	/for xtargcount 1 to 5
		/if (${Me.XTarget[${xtargcount}].ID}) {
			/if (!${IN_COMBAT}) {
				/target id ${Me.XTarget[${xtargcount}].ID}
				/echo starting some rape of ${Target.CleanName}
				/killthis
				/bca //target id ${Me.XTarget[${xtargcount}].ID}
				/bcaa //say #bot group attack
				/varset IN_COMBAT 1
			}
		}
	/next xtargcount
	
	/if (${Me.XTarget} == 0) {
		/echo all raped out
		/endmac
	}
	/doevents
	
	/goto :mainloop

/return

Sub Event_Exp
	/varset IN_COMBAT 0
/return
 
Are there any zones in PoP that have a lower chance of mobs warping under the world?