drag.mac Macro to drag up to 7 corpses at a time.

Macro depository for macros written before the user variable changes that broke all of them.

Moderator: MacroQuest Developers

User avatar
grimjack
Macro Author
Macro Author
Posts: 525
Joined: Thu Nov 07, 2002 6:51 am
Contact:

drag.mac Macro to drag up to 7 corpses at a time.

Post by grimjack » Tue Sep 23, 2003 10:25 am

Code: Select all

|drag.mac
|Can take up to 7 names to drag.
|Usage /macro drag.mac name name name... ect ect
|Version 1.0


#define ArrayCount v1
#define LoopNum v3
Sub Main
   /if n $strlen("$p0")<=0 {
      /echo Usage /macro drag.mac corpse1 corpse2 corpse3 ect.
      /echo Can do up to 7
      /end
   }
   /varset a(1,0) "$p0"
   /varset ArrayCount 1
   /if n $strlen("$p1")>0 {
      /varset a(1,1) "$p1"
      /varset ArrayCount 2
   }
   /if n $strlen("$p2")>0 {
      /varset a(1,2) "$p2"
      /varset ArrayCount 3
   }
   /if n $strlen("$p3")>0 {
      /varset a(1,3) "$p3"
      /varset ArrayCount 4
   }
   /if n $strlen("$p4")>0 {
      /varset a(1,4) "$p4"
      /varset ArrayCount 5
   }
   /if n $strlen("$p5")>0 {
      /varset a(1,5) "$p5"
      /varset ArrayCount 6
   }
   /if n $strlen("$p6")>0 {
      /varset a(1,6) "$p6"
      /varset ArrayCount 7
   }
   /varset LoopNum 0
   :DragLoop
   /target corpse $a(1,$LoopNum)
   /delay 3
   /corpse
   /delay 3
   /varadd LoopNum 1
   /if n $LoopNum>=$ArrayCount /varset LoopNum 0
   /goto :DragLoop     
/return
Thanks
GrimJack
When they come to me, they're in trouble, or they want some. I bust people out of prison, hunt down vampires, fight alien gods -- All the fun jobs people are too squeamish or too polite to do themselves.

Call me a mercenary. Call me an assassin. Call me a villain. I am all that and more.

My name's John Gaunt, but out on the streets of Cynosure, I am called...
GrimJack

Mutter
a ghoul
a ghoul
Posts: 105
Joined: Sat Nov 16, 2002 1:09 pm

WOW

Post by Mutter » Tue Sep 23, 2003 1:33 pm

Nice! I had one for single drags, this one is sweet!

Bio_War
a lesser mummy
a lesser mummy
Posts: 36
Joined: Sun Sep 29, 2002 1:03 pm

Hi Vis Macro

Post by Bio_War » Wed Sep 24, 2003 6:36 pm

Think this would be a VERY high vis macro, might want to watch who you use it around.

Jason

RogerWilco
a ghoul
a ghoul
Posts: 86
Joined: Thu Aug 28, 2003 4:05 am

Post by RogerWilco » Wed Sep 24, 2003 10:16 pm

I know a monk that can pull 5 corpses without using MQ :roll:

MacroFiend
a grimling bloodguard
a grimling bloodguard
Posts: 662
Joined: Mon Jul 28, 2003 2:47 am

Post by MacroFiend » Wed Sep 24, 2003 11:28 pm

You could do it w/o MQ by setting simple socials

/target corpse1
/corpse
/target corpse2
/corpse
/target corpse3
/corpse

And that's just one social. If you did 2 more and hotkeyed them, you'd just run by pressing 1 2 3 1 2 3 ad nausium.

Granted, there is a point where EQ can't keep up ... but it should handle 5 or 6 without any trouble.

Mutter
a ghoul
a ghoul
Posts: 105
Joined: Sat Nov 16, 2002 1:09 pm

/target

Post by Mutter » Fri Sep 26, 2003 9:36 am

Hmmm is /target a native eq command?? Never used it without MQ.

Btw all great qork on MQ. Glad I donated after all!!

MQSEQ
Hypocrite fag
Posts: 181
Joined: Fri Sep 19, 2003 5:18 pm

Post by MQSEQ » Fri Sep 26, 2003 9:56 am

Flame preventer:

Yes /target is a EQ command. If your a healer that's how you select them when there are alot of mobs and players around.

Mutter
a ghoul
a ghoul
Posts: 105
Joined: Sat Nov 16, 2002 1:09 pm

LOL

Post by Mutter » Fri Sep 26, 2003 11:26 am

no sh*t
rofl
thanks hoss
how I've been playing eq from week one, and I missed that. What a dork.

Valerian
a grimling bloodguard
a grimling bloodguard
Posts: 709
Joined: Sun Jul 28, 2002 3:29 am

Post by Valerian » Fri Sep 26, 2003 4:35 pm

well, it's native, but MQ enhances it greatly.

Vaft
a lesser mummy
a lesser mummy
Posts: 69
Joined: Fri Mar 07, 2003 6:39 am

Post by Vaft » Wed Oct 01, 2003 11:58 pm

This one I made is a little more primative than yours, but it does the same thing. Also, I noticed that having "corpse" at the END of the /target statement works better than having it at the beginning (no idea why, but it would often target the actual person, instead of the person's corpse with it at the beginning).

I've actually done CR's with 30+ corpses using this macro, but I think I'm going to rewrite it to loop through all the corpses in the zone and attempt to /corpse them, provided that they are within a certain distance -- this removes the 8 corpse limit AND you don't have to type out every single corpse manually -- Will post this version when I can, if someone doesn't beat me to it. For now, here's my old one:

Code: Select all

#turbo 800
sub Main

:Start
/delay 2

/if "$p0"!="" {
/target $p0 corpse
/corpse
/delay 1
}

/if "$p1"!="" {
/target $p1 corpse
/corpse
/delay 1
}

/if "$p2"!="" {
/target $p2 corpse
/corpse
/delay 1
}

/if "$p3"!="" {
/target $p3 corpse
/corpse
/delay 1
}

/if "$p4"!="" {
/target $p4 corpse
/corpse
/delay 1
}

/if "$p5"!="" {
/target $p5 corpse
/corpse
/delay 1
}

/if "$p6"!="" {
/target $p6 corpse
/corpse
/delay 1
}

/if "$p7"!="" {
/target $p7 corpse
/corpse
/delay 1
}

/if "$p8"!="" {
/target $p8 corpse
/corpse
/delay 1
}
/goto :Start
/return

User avatar
grimjack
Macro Author
Macro Author
Posts: 525
Joined: Thu Nov 07, 2002 6:51 am
Contact:

hehe

Post by grimjack » Thu Oct 02, 2003 1:01 am

Pulling 30 corpses at the same time would get a little obvious hehe:P

Thanks
GrimJack
When they come to me, they're in trouble, or they want some. I bust people out of prison, hunt down vampires, fight alien gods -- All the fun jobs people are too squeamish or too polite to do themselves.

Call me a mercenary. Call me an assassin. Call me a villain. I am all that and more.

My name's John Gaunt, but out on the streets of Cynosure, I am called...
GrimJack

Vaft
a lesser mummy
a lesser mummy
Posts: 69
Joined: Fri Mar 07, 2003 6:39 am

Post by Vaft » Thu Oct 02, 2003 1:17 am

I've run past groups of people while I was doing it; corpses flying all over the place. I've shown my guild, etc.. /shrug.. I just tell them I'm an uber hotkeyer =p

Anyway, I finished the code, but I think it will run too slow to work... Here it is if anyone can find a way to speed it up:

Code: Select all

#turbo 1
Sub Main
:Start
/varset l0 $id(0)

:Loop
  /if $spawn($l0,type)=="Corpse" {
    /target $spawn($l0,name)
    /corpse
  }
  /varset l0 $spawn($l0,next)
  /doevents
  /if $l0>0 /goto :Loop

/varset l0 $id(0)
/goto :Start
/return

kagonis
a hill giant
a hill giant
Posts: 228
Joined: Sat May 24, 2003 8:48 pm

Post by kagonis » Thu Oct 02, 2003 9:12 am

This is a great tool, one that I have thought of writing, but due to never having to drag I never did it ;)

However, a few things to note.

1) Macrofiend, you hotkey example uses 6 lines, you can max have 5 lines ;)
2) I know with regular /target Player's corpse | /corpse it sometimes wasn't fast enough to get all corpses along.
3) The MQ enhanced /target has unlimited range, /corpse does not. add a "radius" option to the /target part of the macro, and make it specifically only target "PC", kinda like this: /target pc radius 20 "Player's corpse".

Anyway, an untested, and cleaned up version here:

Code: Select all

Sub Main
	/if n $strlen("$p0")<=0 /call Syntax
	/varset l0 0
	:CountArgs
		/varset a(1,$l0) "$p$int($calc($l0+1))"
		/varadd TotalComp 1
		/if n $int($l0)>7 /call Syntax
	/if "$p$int($calc($l0+1))"!~"$" /if "$p$int($calc($l0+1))"!="" /goto :CountArgs

	:Loop
		/for l1 0 to $l0
			/target corpse pc radius 20 "$a(1,$l1)"
			/delay 3
			/corpse
			/delay 3
		/next l1
	/goto :Loop
/return

Sub Syntax
	/echo Syntax: /macro drag <Player1> [Player2]..
	/echo Max 7 corpses can be added.
	/endmacro
/return

Furiousness
a lesser mummy
a lesser mummy
Posts: 62
Joined: Tue Aug 26, 2003 3:48 pm

Post by Furiousness » Fri Oct 03, 2003 4:45 pm

Is /corpse client or server side? Could be an interesting update to have unlimited radius hehe