Page 1 of 5

Vish DT Detector and Remover

Posted: Wed Nov 02, 2005 8:33 pm
by ultimateq
This macro was created by DM (DigitalMocking). Cause he is so cool. I gave him the initial idea with another vish mac that doesnt work well (if at all), but he made this whole thing from scratch. I am simply refining it

Since I am a lazy bard. I added the 'attackegg' in there. Rather then detecting class, and attacking the eggs based on class. You just decide whether or not you want to.

I added a second version for people who do not have MQ2MoveUtils. I don't know if it works. I suck at macroing, and did my best... If it does work, then it probably wont work great. I heavily reccomend getting MQ2MoveUtils.

Code: Select all

|vish.mac
|11.3.05
|Created by DigitalMocking, Inspired by ultimateq
|Vish DT Detector and Remover.
|This macro uses the MQ2MoveUtils plugin to seek out the mournful spirits.

Sub Main
|---------Edit this. If you want to attack eggs. Leave this at '1'. If you do not want to attack eggs, change it to '0'
  /declare attackegg int outer 1
|------------------------------
  /declare ${MainHand} string outer "Warspear of Vexation"
  /declare ${Blunt1} string outer "Despair"
  /declare ${Blunt2} string outer "Dark Metal Hammer"
  :Main_Loop
  /if (${Me.Buff[Creeping Doom].ID} && ${Spawn[npc "a mournful spirit"].ID}) /call Clear_Doom
  /if (!${Me.Buff[Creeping Doom].ID} && ${Spawn[npc "a tainted egg"].ID}  && (${attackegg.Equal[1]}) /call Crack_Eggs
  /goto Main_Loop
/return

Sub Clear_Doom
  /gsay DT! DT! Going to clear ASAP!
  :Clear_Doom
  /target id ${NearestSpawn[npc "a mournful spirit"].ID}
  /if (${Me.Sitting}) /stand
  /face
  /stick 10
  :Burden
  /if (!${Me.Buff[Creeping Doom]}) /return
  /if (${Target.Distance} < 20 && ${Target.ID}) {
    /say Shoulder My Burden
    /delay 3
  } else /if (!${Target.ID} && ${Spawn[npc "a mournful spirit"].ID}) {
    /goto :Clear_Doom
  } else {
    /delay 3
    /goto :Burden
  }
/return

Sub Crack_Eggs
  /say Egg!
  /target id ${Spawn[npc "a tainted egg"].ID}
  /face
  /stick 10
  /exchange ${Blunt1} mainhand
  /exchange ${Blunt2} offhand
  :Kill_Egg
  /if (${Target.Distance} < ${Target.MaxRangeTo} && !${Me.Combat}) /attack on
  /delay 3
  /if (${Target.ID} && ${Target.CleanName.Equal[a tainted egg]}) /goto :Kill_Egg
  /unequip offhand
  /exchange ${MainHand} mainhand
/return
Non MQ2MoveUtil Users can try this one.

Code: Select all

|vish.mac -- Non MQ2MoveUtils Version
|11.3.05
|Created by DigitalMocking, Inspired by ultimateq
|Vish DT Detector and Remover.
|This macro uses the MQ2MoveUtils plugin to seek out the mournful spirits.

Sub Main
|--------- Edit this. If you want to attack eggs. Leave this at '1'. If you do not want to attack eggs, change it to '0'
  /declare attackegg int outer 1
|------------------------------|
  /declare ${MainHand} string outer "Warspear of Vexation"
  /declare ${Blunt1} string outer "Despair"
  /declare ${Blunt2} string outer "Dark Metal Hammer"
  :Main_Loop
  /if (${Me.Buff[Creeping Doom].ID} && ${Spawn[npc "a mournful spirit"].ID}) /call Clear_Doom
  /if (!${Me.Buff[Creeping Doom].ID} && ${Spawn[npc "a tainted egg"].ID}  && ${attackegg.Equal[1]}) /call Crack_Eggs
  /goto Main_Loop
/return

Sub Clear_Doom
  /gsay DT! DT! Going to clear ASAP!
  :Clear_Doom
  /target id ${NearestSpawn[npc "a mournful spirit"].ID}
  /if (${Me.Sitting}) /stand
  /face predict
  /keypress up hold
  :Burden
  /if (!${Me.Buff[Creeping Doom]}) /return
  /if (${Target.Distance} < 55 && ${Target.ID}) {
    /say Shoulder My Burden
    /delay 3
  } else /if (!${Target.ID} && ${Spawn[npc "a mournful spirit"].ID}) {
    /goto :Clear_Doom
  } else {
    /delay 3
    /goto :Burden
  }
/return

Sub Crack_Eggs
  /say Egg!
  /target id ${Spawn[npc "a tainted egg"].ID}
  :Moveto_Egg
  /face
  /if ${Target.Distance} > 10 /keypress up hold
  /if ${Target.Distance} <= 10 /keypress up {
  /delay 2
  } else {
  /goto :Moveto_Egg
  }
  /exchange ${Blunt1} mainhand
  /exchange ${Blunt2} offhand
  :Kill_Egg
  /if (${Target.Distance} < ${Target.MaxRangeTo} && !${Me.Combat}) /attack on
  /delay 3
  /if (${Target.ID} && ${Target.CleanName.Equal[a tainted egg]}) /goto :Kill_Egg
  /unequip offhand
  /exchange ${MainHand} mainhand
/return

Posted: Thu Nov 03, 2005 12:24 am
by DigitalMocking
obviously this doesn't do anything about not having the spirit in line of sight because its behind the mountain, but it wouldn't be hard to fix for that really, just add a LoS check, and run to a defined midpoint before running after the spirit again.

Code: Select all

Sub Main 
  /declare ${MainHand} string outer "Warspear of Vexation" 
  /declare ${Blunt1} string outer "Despair" 
  /declare ${Blunt2} string outer "Dark Metal Hammer" 
  :Main_Loop 
  /if (${Me.Buff[Creeping Doom].ID} && ${Spawn[npc "a mournful spirit"].ID}) /call Clear_Doom 
  /if (!${Me.Buff[Creeping Doom].ID} && ${Spawn[npc "a tainted egg"].ID}  && !${Me.Class.PureCaster}) /call Crack_Eggs 
  /goto Main_Loop 
/return 

Sub Clear_Doom 
  /gsay DT! DT! Going to clear ASAP! 
  :Clear_Doom 
  /target id ${NearestSpawn[npc "a mournful spirit"].ID} 
  /if (${Me.Sitting}) /stand 
  /face 
  /stick 10 
  :Burden 
  /if (!${Me.Buff[Creeping Doom]}) /return 
  /if (${Target.Distance} < 20 && ${Target.ID}) { 
    /say Shoulder My Burden 
    /delay 3 
  } else /if (!${Target.ID} && ${Spawn[npc "a mournful spirit"].ID}) { 
    /goto :Clear_Doom 
  } else { 
    /delay 3 
    /goto :Burden 
  } 
/return 

Sub Crack_Eggs 
  /say Egg! 
  /target id ${Spawn[npc "a tainted egg"].ID} 
  /face 
  /stick 10 
  /exchange ${Blunt1} mainhand 
  /exchange ${Blunt2} offhand 
  :Kill_Egg 
  /if (${Target.Distance} < ${Target.MaxRangeTo} && !${Me.Combat}) /attack on 
  /delay 3 
  /if (${Target.ID} && ${Target.CleanName.Equal[a tainted egg]}) /goto :Kill_Egg 
  /unequip offhand 
  /exchange ${MainHand} mainhand 
/return 

Posted: Thu Nov 03, 2005 7:12 am
by ultimateq
Wow guy. Thats pretty awsome.

One thing I saw I'm not quite sure about was the '/stick' command. I noticed it works with MQ2MoveUtils. Probably VIP? :).


The egg thing may be a bit much, (for me anyway). but some dps classes may find it useful.

I thought an event might of worked. But the way you detect the dt seems much more practical.

In anycase, you are the man. I'll see what I can do (if anything) about refining it.

*edit*

wow guy. You already took into account the nondps classes. I certainly am impressed. I think I'll add some other classes in there.

Posted: Thu Nov 03, 2005 7:16 am
by A_Druid_00
DM's code can always use refining :lol:

Posted: Thu Nov 03, 2005 3:51 pm
by ultimateq
I learned alot about flow control in tweaking this macro. and a few tricks as well.

Thanks DM, you rock!

Posted: Thu Nov 03, 2005 4:46 pm
by Glacier
A_Druid_00 wrote:DM's code can always use refining :lol:
yea, but it always seems to work!

DM for pres!

Re: Vish DT Detector and Remover

Posted: Sun Jun 22, 2025 8:18 pm
by xyilla

Re: Vish DT Detector and Remover

Posted: Sun Jun 22, 2025 8:56 pm
by xyilla

Re: Vish DT Detector and Remover

Posted: Sun Jun 22, 2025 8:57 pm
by xyilla

Re: Vish DT Detector and Remover

Posted: Sun Jun 22, 2025 8:58 pm
by xyilla

Re: Vish DT Detector and Remover

Posted: Sun Jun 22, 2025 8:59 pm
by xyilla

Re: Vish DT Detector and Remover

Posted: Sun Jun 22, 2025 9:00 pm
by xyilla

Re: Vish DT Detector and Remover

Posted: Sun Jun 22, 2025 9:02 pm
by xyilla

Re: Vish DT Detector and Remover

Posted: Sun Jun 22, 2025 9:03 pm
by xyilla

Re: Vish DT Detector and Remover

Posted: Sun Jun 22, 2025 9:04 pm
by xyilla