• 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

Bard chant & loot macro (from Siddin)

Redbot

💻❤️
Moderator
Joined
Oct 15, 2004
RedCents
104,058¢
Pronouns
He/Him
Siddin submitted this for access,

Ok, first of all, the only things i'm going to delete in this macro are the coords that i start to recircle after i loot, anybody who uses this will have to put those coords in as well.

Rich (BB code):
| Written by Siddin
|You will need to get mq2twist and mq2moveutils
|from the macroquest2 forums.

#event EXP "You gain experience!!"
#event EXP "You gain party experience!!"
#event NeedTarget "You must select a target for this spell!"
#event NeedTarget2 "Your target is out of range, get closer!"
#event seetarget "You cannot see your target."
#event targetid "#*#has worn off."
#event logoff "LOADING, PLEASE WAIT..."

Sub main
/declare pause int outer 1
/declare healsong int outer 1
/declare SeloSong int outer 8 
/declare DirgeSong int outer 7
/declare targetammount int outer 0
/echo Selo's: ${Me.Gem[${SeloSong}].Name}
:needtarget
/call event_needtarget
/call selosong
:MainLoop 
/doevents
/if (!${Target.ID}) {
/keypress forward hold
/delay 3s
/goto :needtarget
}
/nomodkey /keypress forward hold
/call healsong
/call selosong
/call GMCheck
/call dirgesong

         /delay 1S
/nomodkey /keypress forward hold
/goto :MainLoop 
:loot
/call event_exp
/goto :pause
/return 

Sub GMCheck

   /if (${Spawn[gm].ID}) {
/Log GM entered the zone!
/log For safty reasons ending the macro
      /echo GM entered the zone!
      /echo For safty reasons ending the macro
/circle off
/keypress forward
/twist 6
/delay 3s
/twist 1
      /q
   }

/return


Sub Event_NeedTarget 
/squelch /if (!${Target.ID}) /squelch /target  npc radius 140
/keypress forward hold
/if (${Target.ID}) /twist 2 3 4 5
/return

Sub Event_NeedTarget2
/squelch /target   npc radius 140
/keypress forward hold
/return

Sub Event_seetarget
/varcalc targetammount ${targetammount}+1
/if (${targetammount}>=10) {
/squelch /target  npc radius 140 
/twist reset
/varset targetammount 0
/return
}
/return

Sub Event_targetid
/varset targetammount 0
/return

sub selosong
      /if (${SeloSong}) /if (${Me.Buff[${Me.Gem[${SeloSong}].Name}].Duration}<=4) { 
         /echo Selos about to die 
/twist  8
         /delay 1S
/nomodkey /keypress forward hold
         /delay 1S
/nomodkey /keypress forward hold
         /delay 1S
/nomodkey /keypress forward hold
         /delay 1S
/nomodkey /keypress forward hold
/twist 2 3 4 5
/varset healsong 0
/call healsong
        /doevents 
         /return 
      } 

/return

sub dirgesong
/if (!${Target.ID}) /return
/if (${Me.CurrentMana}>=880) {
/echo dirge
 /twist  ${DirgeSong}
         /delay 1S
/nomodkey /keypress forward hold
         /delay 1S
/nomodkey /keypress forward hold
         /delay 1S
/nomodkey /keypress forward hold
         /delay 1S
/nomodkey /keypress forward hold
 /twist 2 3 4 5
/varset healsong 0
/call healsong

/doevents
/return
}
/return


Sub healsong
/if (${healsong}==0) /if (${Me.PctHPs}<=95) {
/twist 1 2 3 4 5
/varset healsong 1
/return
}
/if (${healsong}==1) /if (${Me.PctHPs}>=96) {
/twist 2 3 4 5
/varset healsong 0
/return
}
/return
Sub Event_quit
/circle off
/keypress forward
/keypress left
/keypress right
/twist off
:doeventloop
/doevents
/goto :doeventloop
/return
Sub Event_logoff
/delay 60s
/keypress forward
/keypress left
/keypress right
/camp desktop
/endmac
/return

Sub Event_EXP 
/twist 8
/squelch /target npc radius 160
/if (${Target.ID}) {
/twist 2 3 4 5
/return
} else {
/twist 8
/goto ;looting
}
:looting
/target npc radius 75
/if (${Target.ID}) {
/twist 2 3 4 5
/goto :endxp
}
/target npc corpse radius 200
/if (!${Target.ID}) /goto :endxp
/if (${Target.ID} {
/circle off
/call LootMob
/goto :looting
}
:endxp
/circle on (xcoords) (ycoords)
/return

Sub LootMob 
   /declare LootChance  int inner  0
   /declare LootSlot    int inner  0 
   /declare LootCheck   int inner  0 
   /declare LootTotal   int inner  0 
    
   /face fast 
    
   /keypress forward 
   /keypress back 
    
/stick 5
:Distance
/if (${Target.Distance}<=10) { 
/stick off
/loot
} else {
/goto :Distance 
}
/stick off
/loot
   /delay 1s 
   /if (!${Corpse.Items}) { 
      /echo NO LOOT! Cheap Bastard! 
/shift /notify InventoryWindow IW_Money1 leftmouseup
/destroy
/shift /notify InventoryWindow IW_Money2 leftmouseup
/destroy
/shift /notify InventoryWindow IW_Money3 leftmouseup
/destroy
/notify LootWnd DoneButton leftmouseup 
/cleanup
      /return 
   } 

   /varset LootTotal ${Corpse.Items} 
   /for LootSlot 1 to ${LootTotal} 
      /itemnotify loot${LootSlot} leftmouseup 
      /delay 5
         /autoinventory 
         /delay 5 
        /next LootSlot 
/shift /notify InventoryWindow IW_Money1 leftmouseup
/destroy
/shift /notify InventoryWindow IW_Money2 leftmouseup
/destroy
/shift /notify InventoryWindow IW_Money3 leftmouseup
/destroy
/notify LootWnd DoneButton leftmouseup 
/cleanup
/return
 
I will be updating this macro every now and then as I keep making my own additions and modifications.
 
WTG siddin this is awsome i made one but he kept dying when he's lootin lol kinda poetic justice
does your have this problem also?

so i set my cleric alt i'm plin to do the lootin

but i have to be there for that i'll try with the lootin macro and see how it goes

also you know a way to get 2 mac's to run at once i want him to loot then go back to castin to work on skills
 
Last edited:
Ive had the same problem in Dulak (too many mobs). Corpses just rot. Then again, I am kiting in the armory.
 
change this part in the sub event_exp


/target npc radius 75

to


/target npc radius 160

or whatever the radius is where you kite the mobs from.
 
Koneman said:
WTG siddin this is awsome i made one but he kept dying when he's lootin lol kinda poetic justice
does your have this problem also?

so i set my cleric alt i'm plin to do the lootin

but i have to be there for that i'll try with the lootin macro and see how it goes

also you know a way to get 2 mac's to run at once i want him to loot then go back to castin to work on skills
just have each macro call the other, but then you'll need to put events in yours and group tells in the macro that the other group member is using
 
Its changed a little most of the changes are in the sub event_exp
Rich (BB code):
|it also loots btw. won't target anything thats not in line of sight,
|you'll need to go through and change all the /twist commands
|to what you want to use.


#event EXP "#*#experience!!"
#event seetarget "You cannot see your target."
#event targetid "Your Tuyen's Chant of Poison has worn off."
#event targetid "Your Tuyen's Chant of Disease has worn off."
#event targetid "Your Tuyen's Chant of Flame has worn off."
#event targetid "Your Tuyen's Chant of Frost has worn off."
#event logoff "LOADING, PLEASE WAIT..."
#event quit "#*#leave hoh quit#*#"

Sub main
/declare CircleRadius int outer (circle radius here)
/declare Xloc float outer ${Me.X}
/declare Yloc float outer ${Me.Y}
/declare myzone int outer ${Zone.ID}
/declare pause int outer 1
/declare avoid1 int outer 0
/declare avoid2 int outer 0
/declare killtarget int outer 0
/declare movedone int outer 0
/declare healsong int outer 1
/declare SeloSong int outer 8 
/declare BellowSong int outer 6
/declare Bellowtimer int outer 300
/declare targetammount int outer
/declare PrevSong int outer 0
/declare maintimer int outer 0
/echo Selo's: ${Me.Gem[${SeloSong}].Name}
:needtarget
/call event_needtarget
/call selosong
:MainLoop 
/if (${Target.ID}==${Me.ID}) /squelch /target clear
/if (${Zone.ID}!=${myzone}) {
/circle off
/nomodkey /keypress forward
/nomodkey /keypress left
/nomodkey /keypress right
/camp desktop
/mqlog camping out
/keypress instant_camp
/endmac
}
/doevents
/if (!${Target.ID}) {
/keypress forward hold
/delay 3s
/goto :needtarget
}
/nomodkey /keypress forward hold
/call healsong
/call selosong
/call Bellow
/call GMCheck

         /delay 1S
/nomodkey /keypress forward hold
/doevents
/goto :MainLoop 
/return 

Sub GMCheck

   /if (${Spawn[gm].ID}) {
/Log GM entered the zone!
/log For safty reasons ending the macro
      /mqlog GM entered the zone!
      /mqlog For safty reasons ending the macro
/keypress forward hold
      /q
   }

/return


Sub Event_NeedTarget 
/squelch /if (!${Target.ID}) {
/squelch /target npc
/if (!${Target.LineOfSight}) /squelch /target clear
}
/keypress forward hold
/if (${Target.ID}) /twist 2 3 4 5 7
/return

Sub Event_NeedTarget2
/squelch /target npc
/if (!${Target.LineOfSight}) /squelch /target clear
/keypress forward hold
/return

Sub Event_seetarget
/varcalc targetammount ${targetammount}+1
/if (${targetammount}>=10) {
/squelch /target npc
/if (!${Target.LineOfSight}) /squelch /target clear
/twist reset
/varset targetammount 0
/return
}
/return

Sub Event_targetid
/varset targetammount 0
/return

sub selosong
      /if (${SeloSong}) /if (${Me.Buff[${Me.Gem[${SeloSong}].Name}].Duration}<=2) { 
         /echo Selos about to die 
/twist  8
         /delay 1S
/nomodkey /keypress forward hold
         /delay 1S
/nomodkey /keypress forward hold
         /delay 1S
/nomodkey /keypress forward hold
         /delay 1S
/nomodkey /keypress forward hold
/twist 2 3 4 5 7
/varset healsong 0
/call healsong
         /varset PrevSong 0 
         /doevents 
         /return 
      } 

/return

Sub healsong
/if (${healsong}==0) /if (${Me.PctHPs}<=95) {
/twist 1 2 3 4 5
/varset healsong 1
/return
}
/if (${healsong}==1) /if (${Me.PctHPs}>=96) {
/twist 2 3 4 5 7
/varset healsong 0
/return
}
/return

Sub Event_quit
/circle off
/warp succor
/camp desktop
/endmac
/return

Sub Event_logoff
/delay 60s
/keypress forward
/keypress left
/keypress right
/camp desktop
/endmac
/return

Sub Event_EXP 
/target npc
/if (!${Target.LineOfSight}) /squelch /target clear
/if (${Target.ID}) {
/twist 2 3 4 5 7
/return
} else {
/twist 8
/goto :looting
}
:looting
/look
/target npc
/if (!${Target.LineOfSight}) /squelch /target clear
/if (${Target.ID}) {
/circle on ${CircleRadius} ${Xloc} ${Yloc}
/twist 2 3 4 5 7
/return
}
/target npc corpse radius 200
/if (!${Target.ID}) {
/circle on ${CircleRadius} ${Xloc} ${Yloc}
/return
}
/if (${Target.ID}) {
/circle off
/call LootMob
/goto :looting
}
/return
Sub LootMob 
   /declare LootChance  int inner  0
   /declare LootSlot    int inner  0 
   /declare LootCheck   int inner  0 
   /declare LootTotal   int inner  0 
   /face fast nolook 
/squelch /stick 5
:Distance
/if (${Target.Distance}<=10) { 
/squelch /stick off
/loot
} else {
/goto :Distance 
}
/squelch /stick off
/loot
   /delay 1s 
   /if (!${Corpse.Items}) { 
/shift /notify InventoryWindow IW_Money1 leftmouseup
/destroy
/shift /notify InventoryWindow IW_Money2 leftmouseup
/destroy
/shift /notify InventoryWindow IW_Money3 leftmouseup
/destroy
/notify LootWnd DoneButton leftmouseup
/look
      /return 
   } 

   /varset LootTotal ${Corpse.Items} 
   /for LootSlot 1 to ${LootTotal} 
      /itemnotify loot${LootSlot} rightmouseup 
	/delay 5
   /next LootSlot 
/shift /notify InventoryWindow IW_Money1 leftmouseup
/destroy
/shift /notify InventoryWindow IW_Money2 leftmouseup
/destroy
/shift /notify InventoryWindow IW_Money3 leftmouseup
/destroy
/notify LootWnd DoneButton leftmouseup
/look
/cleanup
/return 

Sub Bellow 
/delay 5
  /if (${Me.AltAbilityReady[Boastful Bellow]} && ${Target.Type.Equal[NPC]}) { 
    /aa act Boastful Bellow 
  } 
/return
 
Last edited:
instead of needing to edit the macro to use it for personal application, would it be possible to recieve static variables of an unstated amount to input the twist numbers, I know that you can have it in C,C++ but I am unsure about MQ2's interpretation of the codeI would make my own macros but I would need a list of MQ2 variables and structures to use for them. if you have or know where I could recieve a list I would be grateful, it is probably at MQ2's Website, but I have looked and was failed in my attempt to find it
 
mq2 doesn't use C++ for macros, it actually uses a language that was mostly created by the developers that macroquest can then translate into c++

you can find almost everything in their manual.
 
sorry it has taken so long to update this, but I forgot I posted to this hehe. basically what I was asking is if I could have the macro run with varied input like today I want it to run as </mac bardhunt songlist[1,3,5,3] circlerad[5] circleloc[340,560]> but tomorrow I don't want to mess with loc so I want </mac bardhunt songlist[1,4,8,3,8] circlerad[43]> is it possible to do that in some form. the arrays are just a preferred method but anything would be great. I know they do it for the plugins, i.e. </warp loc 34 54 12> </warp target> two different types of execution. but could it be set up for macros too??
 
Now if some one beter at this then I wold write the loot part of this into the forgotin halls Bard macro that wold be the end all for me :)
 
Chances are, this won't work.

Rich (BB code):
#turbo
#event end "Shutdown12345"
#event dzadd "personyouwanttoadd tells you, 'CODEWORD'"
#event EXP "You Gain Experience!!"
#event EXP "You Gain Party Experience!!"#event invite "#*#invites you to join#*#"  
#event Zoned "#*#You have entered Guild Lobby#*#"
#event dzquit "#*#You have entered Nedaria's Landing#*#" 
#event PoK "You have entered The Plane of Knowledge."

|Change this to the                ^^^^^^^^^^^^^^
|zone you are bound in

Sub Main

|We are waiting for the hotkey to start the macro
	:waitforit
	/doevents
	/doevents
	/goto :waitforit
/return

| We have the extra long delay to account for zoneing Time.
| You may set the delay to what you want.
| You also need to change the twist to your line up.
| We then Clear our target so we don't cast on anything.

Sub indz
	:begin  
	/delay 30s
	/twist off
	/face heading 270
	/delay 2s
	/warp loc -573.50 162.80 2.15
	/circle on 21
	/keypress forward hold
	/twist 1 2 1 3
	/target clear
	/target clear
	

|This loop calls the events to be redone along with a GM check.
|It checks to insure that the mobs it targets are not over
| level 67(a left over from the vxed mac i think)
|It then check the range of the target if it over 220 it clears it
|The 3rd If command targets an NPC if you do not have a target
|The final Line Watches your health and succor you when you hit 30%
| you could change the command to gate if you like.
| ex /if (${Me.PctHPs}<=30) /gate
   
		:loopstart 
		/doevents  
		/call GMcheck  
		/if (${Target.Level}>67) /tar npc next 
		/if (${Target.Distance}>220) /keypress esc  
		/if (${Target.ID}==FALSE) /tar NPC radius 220 rat
		/if (${Me.PctHPs}<=30) /call succor
		/doevents
	/delay 10  
	/goto :loopstart  
/return  

|I never had this one called while i was in zone.
| but it warps you to that loc turn circle off
| and twists selos and heal song then when you reach
| 80% health you go back to killing 

Sub succor

	/warp loc 245 -33 0
	/circle off
	/twist 1 5
	/delay 60
	:loopheal
	/if (${Me.PctHPs}>80) {
	/face heading 270
	/warp loc -573.50 162.80 2.15
	/circle on 21
	/keypress forward hold
	/twist 1 2 1 3
/return
}
/delay 60
/goto :loopheal
/return

| This is the GM check it is called about every 10 seconds.
| It beeps at you then /quits the game.

Sub GMcheck  
 	/if (${Spawn[gm].ID}) {  
 		/echo Gm detected  
 		/beep 
 		/beep 
 		/beep  
 		/q 
 		/endmac 
 		/unload 
 		/q  
 	}  
/return  
  
  
|need to change the name of this to the person you want
|added to the adventure

Sub event_dzadd 
	/dzadd PERSONYOUWANTTOADD 
/return 

| This sub follows a group invite.

Sub event_invite 
	/invite
/return  

|This next bit removes you from the expdition if you still have it after 
|  you zone out
|Targets Eldros Danmor warps to him gets the adventure window then it 
| warps back to Nideno and says forgotten halls allowing you to zone in.
|You then warp closer to the rock look at point behind the rock and 
| press use or u, also you click with the mouse so you mouse needs to be
| in the center of the screen. 

Sub event_dzquit
	/dzremove YOURNAME
	/twist off
	/delay 2s
	/target Eldros Danmor
	/warp target
	/delay 2s
	/say interested in visiting
	/delay 3s
	/target Nideno Eliagy
	/warp target
	/delay 2s
	/say Forgotten halls
	/delay 2s
	/warp loc 1544 -665 94
	/face loc 1540, -675
	/look 0
	/doortarget
	/delay 10s
	/click left
	/delay 2s
	/keypress u
	/delay 1s 
	/click left 
	/keypress u 
	/delay 10s
	/target clear
	/call indz
/return

|In the event of a water landing....
| This camps you out.

Sub Event_PoK 
	/echo sorry i don't know how or why but you died.
        /circle off
        /twist off
        /delay 45s
	/sit on
	/camp desktop 
        /q
	/endmacro 
/return

Sub event_end
	/echo Thanks for using my work
        /circle off
        /twist off
	/target a harindi guide
	/warp target
	/delay 1s
	/say ready to leave
	/end
/return
	
Sub event_EXP

/twist off
/circle off
/tar corpse next
/warp target

:LootWnd
    /loot

    /if (!${Window[LootWnd].Open}) /goto :LootWnd
   :lootloop
   /if (${Me.State.Equal["STAND"]}) /goto :doneloot
   /if (${Corpse.Items}==0) {
         /goto :doneloot
   }

   /if (${LootSlot}>=32) /goto :doneloot

   :Loot
   /itemnotify Loot${LootSlot} leftmouseup
   /delay 1s

      /if (${Window[ConfirmationDialogBox].Open}) {
         /notify ConfirmationDialogBox Yes_Button leftmouseup
         /delay 1s
         /autoinv
}
   /goto :lootloop
   :doneloot
   /notify LootWnd DoneButton leftmouseup
   /goto :begin
/return
 
You know what I was just thinking of the same thing myself but I had been using a lootbot with hamburgerhelpers code previously and decided I would combine the two. I dont really like to warp 2x every 5min (thats over 4000 warps/week if running 24/7) so i like the move commands more.

Rich (BB code):
|Original Code by Pugs
|Modified by Lance173 to include looting subs made by Hamburgerhelper

| Thanks to Cade for the help ,Jumjum5, 	
|Infernal, Soultaker Siddin Red and the rest of the brilliant minds
|here at red Guides.

|AFKHALLS.mac
|This was Hacked up by Pugs ~,~ 
|This could be made much better but this works.
|To use this macro Make a hotkey that says
|
|/echo You have entered Nedaria's Landing
|
|Then start the macro and press your hotkey in Nedaria's.
|You must have warp for this to work correctly
|Soultakers is what i use if you use other you
|will have to change the command to your warp's syntax.
| also /echo end will shut down the macro and zone you out of the halls.

#turbo
#Event MobDied "#*#You have slain#*#"
#event end "Shutdown12345"
#event dzadd "PERSONYOUWANTTOADD tells you, 'CODEWORD'"
#event invite "#*#invites you to join#*#"  
#event Zoned "#*#You have entered Guild Lobby#*#"
#event dzquit "#*#You have entered Nedaria's Landing#*#" 
#event PoK "You have entered The Plane of Knowledge."
|Change this to the                ^^^^^^^^^^^^^^
|zone you are bound in

Sub Main

 /declare LootAllItems int outer 1 
 /declare LootSlot int outer 0 
 /declare MyXLOCA int outer 0 
 /declare MyYLOCA int outer 0 
 /declare AnchorX int outer 162 
 /declare AnchorY int outer -573

|We are waiting for the hotkey to start the macro
	:waitforit
	/doevents
	/doevents
	/goto :waitforit
/return

| We have the extra long delay to account for zoneing Time.
| You may set the delay to what you want.
| You also need to change the twist to your line up.
| We then Clear our target so we don't cast on anything.

Sub indz
	:begin  
	/delay 2s
	/twist off
	/face heading 270
	/delay 2s
	/warp loc -573.50 162.80 2.15
	/circle on 21
	/keypress forward hold
	/twist 1 2 3 4 5
        /twist adjust 5
	/target clear
	/target clear
	

|This loop calls the events to be redone along with a GM check.
|It checks to insure that the mobs it targets are not over
| level 67(a left over from the vxed mac i think)
|It then check the range of the target if it over 220 it clears it
|The 3rd If command targets an NPC if you do not have a target
|The final Line Watches your health and succor you when you hit 30%
| you could change the command to gate if you like.
| ex /if (${Me.PctHPs}<=30) /gate
   
		:loopstart 
		/call GMcheck  
		/if (${Target.Level}>67) /tar npc next 
		/if (${Target.Distance}>220) /keypress esc
                /doevents
                /delay 2s
		/if (${Target.ID}==FALSE) /tar NPC radius 220 rat
		/if (${Me.PctHPs}<=30) /call succor
		/if (${Me.PctHPs}<=65) /call regen
		/doevents
	/delay 10  
	/goto :loopstart  
/return  

|I dont like to drop too low on hp so i just change to twist in regen
|with my dots

Sub regen

/twist 1 2 3 4 6
:regenloop
/doevents
/if (${Me.PctHPs}<=30) /call succor
/if (${Me.PctHPs}>=90) {
   /twist 1 2 3 4 5
   /return
}
/goto :regenloop
/return

|I never had this one called while i was in zone.
| but it warps you to that loc turn circle off
| and twists selos and heal song then when you reach
| 80% health you go back to killing 

Sub succor

	/warp loc 245 -33 0
	/circle off
        /aa act Fading Memories
	/twist 1 6
	/delay 60
	:loopheal
        /doevents
        /call GMcheck
	/if (${Me.PctHPs}>95) {
	/face heading 270
	/warp loc -573.50 162.80 2.15
	/circle on 21
	/keypress forward hold
	/twist 1 2 3 4 5
        /twist adjust 5
/return
}
/delay 60
/goto :loopheal
/return

| This is the GM check it is called about every 10 seconds.
| It beeps at you then /quits the game.

Sub GMcheck  
 	/if (${Spawn[gm].ID}) {  
 		/echo Gm detected  
 		/beep 
 		/beep 
 		/beep  
 		/q 
 		/endmac 
 		/unload 
 		/q  
 	}  
/return  
  
  
|need to change the name of this to the person you want
|added to the adventure

Sub event_dzadd 
	/dzadd PERSONYOUWANTTOADD 
/tell PERSONYOUWANTTOADD CODEWORD2
/invite PERSONYOUWANTTOADD
/return 

| This sub follows a group invite.

Sub event_invite 
	/invite
/return  

|This next bit removes you from the expdition if you still have it after 
|  you zone out
|Targets Eldros Danmor warps to him gets the adventure window then it 
| warps back to Nideno and says forgotten halls allowing you to zone in.
|You then warp closer to the rock look at point behind the rock and 
| press use or u, also you click with the mouse so you mouse needs to be
| in the center of the screen. 

Sub event_dzquit
        /doevents
        /call gmcheck
        /disband
	/dzremove PERSONYOUWANTTOADD
        /dzremove YOURNAME
	/twist off
	/delay 2s
	/target Eldros Danmor
	/warp target
	/delay 2s
	/say interested in visiting
	/delay 3s
	/target Nideno Eliagy
	/warp target
	/delay 2s
	/say Forgotten halls
	/delay 2s
        /doevents
	/warp loc 1544 -665 94
	/face loc 1540, -675
	/look 0
	/doortarget
	/delay 10s
	/keypress u
	/keypress u 
	/delay 1s
	/target clear
	/call indz
/return

|In the event of a water landing....
| This camps you out.

Sub Event_PoK 
	/echo sorry i don't know how or why but you died.
        /circle off
        /twist off
        /delay 45s
	/sit on
	/camp desktop 
        /q
	/endmacro 
/return

Sub event_end
	/echo Thanks for using my work
        /circle off
        /twist off
	/target a harindi guide
	/warp target
	/delay 1s
	/say ready to leave
	/end
/return

 Sub Event_MobDied 
 /doevents
 /call GMcheck
 /circle off
 /keypress forward
 /delay 1s
 /squelch /declare LootSlot    int inner  0 
 /declare LootCheck   int inner  0 
 /declare LootTotal   int inner  0 
 /target npc corpse radius 200 
 :MovementLoop 
 /face fast nolook 
 /if (${Int[${Target.Distance}]}>13) { 
 /keypress forward hold 
 } 
 /if (${Int[${Target.Distance}]}<13&&${Int[${Target.Distance}]}>11) { 
 /keypress forward 
 } 
 /if (${Int[${Target.Distance}]}<9) { 
 /keypress back 
 } 
 /if (${Int[${Target.Distance}]}>13) { 
 /goto :MovementLoop 
 } 
 /keypress forward 
 /keypress back 
 /delay 5 
 /loot 
 /delay 5 
 /if (!${Corpse.Items}) { 
 /echo NO LOOT!
 /notify LootWnd DoneButton leftmouseup 
 /call checkanchor  
 /face heading 270
 /circle on 21
 /keypress forward hold
 /return 
 } 
 /varset LootTotal ${Corpse.Items} 
 /for LootSlot 1 to ${LootTotal} 
 /itemnotify loot${LootSlot} leftmouseup 
 /delay 5 
 /if (${LootAllItems}) { 
 /echo Keeping a ${Cursor.Name}... WOOT! 
 /autoinventory 
 /autoinventory 
 /delay 5 
 } else { 
 /for LootCheck 1 to ${ItemsToLoot.Size} 
 /if (${Cursor.Name.Find[${ItemsToLoot[${LootCheck}]}]}) { 
 /echo Keeping a ${Cursor.Name}... WOOT! 
 /autoinventory 
 /autoinventory 
 /delay 5 
 } 
 /next LootCheck 
 } 
 /if (${Cursor.ID}) { 
 /echo Destroying a ${Cursor.Name}... 
 /destroy 
 /destroy 
 /delay 5 
 } 
 /next LootSlot 
 /delay 5 
 /notify LootWnd DoneButton leftmouseup 
 /delay 2 
 /call checkanchor 
 /face heading 270
 /circle on 21
 /keypress forward hold
/return

Sub CheckAnchor    
 /if (${Math.Distance[${AnchorY},${AnchorX}]}>12) /call MoveToAnchor    
/return 

Sub MoveToAnchor 
 /declare iCount int local 
 /varset iCount 0 
 /echo Moving to Anchor at Loc: ${AnchorY}, ${AnchorX}. 
:AnchorMoveLoop  
 /delay 1 
 /doevents 
 /face nolook loc ${AnchorY},${AnchorX} 
 /if (${Math.Distance[${AnchorY},${AnchorX}]}>12) { 
 /keypress forward hold 
 } else { 
 /keypress forward 
/return 
 } 
 /if (${iCount}>2) { 
 /face nolook loc ${AnchorY},${AnchorX} 
 /varset iCount 0 
 } 
 /varcalc iCount ${iCount}+1 
 /goto :AnchorMoveLoop 
/return
 
Last edited:
ok looks cool but having a hard time copying it into a .mac keeps pasting it all on the same line..... ill have to try the bot computer any ways thanks i cant waght to try it.




Open sorce GOD i love it.
 
Last edited:
Ok all kidding aside lance173's code is perficet tested it workin grate. i did not realize how much coin i was mising out on. i love the using the heal song below 65% grate incite gona let it run overnight and see what it can do.

thanks so much

Now about that Kitchin sink
 
Last edited:
Ok found a problum not quite shur how to fix it. its not calling the sub that put you outcide the zone to regen up. aka its letting you die. but it seems to be in there and for some reson its randimley getting hung up an one of the corners and then bards getting pundid. tryed setting the ancor point to a more centerd position same position i use for my origanl FH bard mac with no problums so i can only asume that its not fully returning to the ancor point befor starting to circle agin. the loot code works well i also had to add forward keypres to the POK sub otherwise your still running in circles after you zone in from death and it will not log you out im using loc -573.50 162.80 with a circle on 20 in my hacked up FH mac with no problums thoughs and suggestions? :confused:
 
Ok found a problum not quite shur how to fix it. its not calling the sub that put you outcide the zone to regen up. aka its letting you die.

i found the same problem yesterday, i realized i didnt have a warp to heal condition in my regen loop so if you wer in regen loop and got below 30% you would just keep getting hit and not warp out. updated the code on original post.
 
Last edited:
sorry i'm a newb to these macro's but if somone could explain how to run the mq2moveutils and mq2twist with a loot macro that i dont have to warp all over with i would appreciate it. like do i have to make a whole new macro, or can i just add it to mq2moveutils or target.mac.
 
if you want to just loot .. use ham's lootwhore mac

if you don't want the DPS just looting.. lemme know i will post the code again for a modified version that just loots.. nada else

there is also a modified version.. that is sending in a pet..and casting 3 spells.. if you want extra DPS...

all depends what you want to do


loot only

loot + DPS

DPS only

just add loot functions to an existing macro


8-)
 
Bard chant & loot macro (from Siddin)

Users who are viewing this thread

Back
Top
Cart