Twitch.mac -- Automated Twitch for necros.

Post your completed (working) macros here. Only for macros using MQ2Data syntax!

Moderator: MacroQuest Developers

JP5
a lesser mummy
a lesser mummy
Posts: 70
Joined: Tue Jul 06, 2004 10:32 pm

Twitch.mac -- Automated Twitch for necros.

Post by JP5 » Wed Nov 24, 2004 1:15 am

This macro continually casts Sedulous Subversion and Covetous Subversion on your desired target.

It will memorize the two spells in the slots you specify.

To toggle Twitch on/off, press Ctrl+\ . You can change this bind if you wish in the macro.

If you lose your target, it turns twitching to OFF until you turn it back on.

This macro is meant to run for the duration of a raid. Whenever you want to twitch someone, you target them and press Ctrl+\. When you want to stop, press Ctrl+\ again. The macro will keep running. Just target someone new and hit Ctrl+\ when you want to resume.

If there are any bugs or questions let me know with PM or reply to post..

Code: Select all

|twitch.mac
| Twitch one person with both of your twitch spells.
| Use "Ctrl \" combo to start twitching or stop twitching.

#event OOM "#*#Insufficient Mana#*#"

|--------------------------------------
|--- SUB: Main
|--------------------------------------
Sub Main


/declare Twitch1Slot int outer
/declare Twitch2Slot int outer
/declare Ready1 bool outer FALSE
/declare Ready2 bool outer FALSE
/declare Ready1Timer timer outer
/declare Ready2Timer timer outer

/declare TwitchToggle int outer 0

/declare TwitchToggleChange int outer 0

|--- Custombind routine
/squelch /custombind delete TwichToggle
/squelch /custombind add TwitchToggle
/squelch /custombind set TwitchToggle /varset TwitchToggleChange 1
/bind TwitchToggle Ctrl+\

|-------------------------------------------------
|--- which slots do you use for Sedulous/Covetous?
/varset Twitch1Slot 7
/varset Twitch2Slot 8
|-------------------------------------------------

/if (${Me.Gem[Sedulous Subversion]}) {
   /varset Ready1 TRUE
   } else /varset Ready1 FALSE

/if (${Me.Gem[Covetous Subversion]}) {
   /varset Ready2 TRUE
   } else /varset Ready2 FALSE

:retry1
/delay 1
/if (${Ready1}==FALSE) {
   /memspell ${Twitch1Slot} "Sedulous Subversion"
   /varset Ready1Timer 80
   }
:loop1
/delay 1
/if (!${String[${Me.Gem["Sedulous Subversion"]}].NotEqual[NULL]}) /if (${Ready1Timer}<1) /goto :retry1
/if (${String[${Me.Gem["Sedulous Subversion"]}].NotEqual[NULL]}) /goto :next
/goto :loop1

:next

:retry2
/delay 1
/if (${Ready2}==FALSE) {
   /memspell ${Twitch2Slot} "Covetous Subversion"
   /varset Ready2Timer 80
   }
:loop2
/delay 1
/if (!${String[${Me.Gem["Covetous Subversion"]}].NotEqual[NULL]}) /if (${Ready2Timer}<1) /goto :retry2
/if (${String[${Me.Gem["Covetous Subversion"]}].NotEqual[NULL]}) /goto :ready
/goto :loop2

:ready

/call TwitchTarget

/return


|--------------------------------------
|--- SUB: TwitchTarget
|--------------------------------------
Sub TwitchTarget

/echo To toggle twitching, press Ctrl+\
|--- Main Twitching Loop.
:twitchloop

/doevents
/delay 1

/if (${TwitchToggleChange}==1) {
   /varset TwitchToggle ${If[${TwitchToggle}==1,0,1]}
   /varset TwitchToggleChange 0
   }
/if (${Target.Type.Equal[PC]}) {
/if (${TwitchToggle}==1) {
   /if (${Me.SpellReady[Sedulous Subversion]}) /if (${String[${Me.Casting}].Equal[NULL]}) /cast "Sedulous Subversion"
   }
}

/doevents
/delay 1

/if (${TwitchToggleChange}==1) {
   /varset TwitchToggle ${If[${TwitchToggle}==1,0,1]}
   /varset TwitchToggleChange 0
   }
/if (${Target.Type.Equal[PC]}) {
/if (${TwitchToggle}==1) {
   /if (${Me.SpellReady[Covetous Subversion]}) /if (${String[${Me.Casting}].Equal[NULL]}) /cast "Covetous Subversion"
   }
}

/goto :twitchloop
|--- End Main Twitching Loop.
/return


|--------------------------------------
|--- EVENT: OOM
|--------------------------------------
Sub Event_OOM
/echo Twitching stopped due to OOM. Press Ctrl \ at any time to resume.
/varset TwitchToggle 0
/return 
Last edited by JP5 on Wed Nov 24, 2004 2:43 pm, edited 1 time in total.

User avatar
blueninja
a grimling bloodguard
a grimling bloodguard
Posts: 541
Joined: Thu Aug 28, 2003 7:03 am
Location: Göteborg, Sweden

Post by blueninja » Wed Nov 24, 2004 6:56 am

Suggestion, add a custombind to start twitching the last person who sent you a tell.. I know that's what I'd add if I played a raiding necro. Looks nice though..

Oh and

Code: Select all

/if (${String[${Me.Gem["Sedulous Subversion"]}].NotEqual[NULL]}) { 
could be written

Code: Select all

/if (${Me.Gem["Sedulous Subversion"]}) { 

Shenlon
a ghoul
a ghoul
Posts: 103
Joined: Fri Jul 30, 2004 8:02 am

Post by Shenlon » Wed Nov 24, 2004 8:09 am

Interesting concept, might play with this some more as I could definitely use it.

JP5
a lesser mummy
a lesser mummy
Posts: 70
Joined: Tue Jul 06, 2004 10:32 pm

Post by JP5 » Wed Nov 24, 2004 2:40 pm

I use this macro for double-twitching on demand, because I hate casting the two spells over and over again. Feel free to modify it so that it has a toggle for auto-twitching on a tell... but there are a few problems with this, some that can be fixed and some that can't.
When you receive a tell you can do a check to make sure that the sender is a Cleric or Druid easily enough, but it's more difficult to know how many times to twitch the person. Also their method of notification is different each time. Usually there's a healer channel, but still some people send tells.

I'll change the ${String} to ${Me.Gem}. Thanks.

User avatar
blueninja
a grimling bloodguard
a grimling bloodguard
Posts: 541
Joined: Thu Aug 28, 2003 7:03 am
Location: Göteborg, Sweden

Post by blueninja » Wed Nov 24, 2004 3:27 pm

JP5 wrote:Feel free to modify it so that it has a toggle for auto-twitching on a tell... but there are a few problems with this, some that can be fixed and some that can't.
That's not what I meant.. I meant that when you push some button it will start twitching whoever sent you a tell last.. So when you get "Joe tells you, "omgz need mana", you dont have to /target joe then press your button, you can just press your button and it will start right away. But anyway it was just a suggestion, I put that feature into my own twitch macro and I find it useful. Not that it matters that much to me though, my necro is just an alt so I don't use it very often.. :)

JP5
a lesser mummy
a lesser mummy
Posts: 70
Joined: Tue Jul 06, 2004 10:32 pm

Post by JP5 » Wed Nov 24, 2004 8:51 pm

Ah that makes more sense, thanks for clarifying.

JP5
a lesser mummy
a lesser mummy
Posts: 70
Joined: Tue Jul 06, 2004 10:32 pm

Post by JP5 » Wed Jan 19, 2005 3:30 pm

n/a

WhiteWolf
a ghoul
a ghoul
Posts: 89
Joined: Wed Apr 14, 2004 5:41 am

Post by WhiteWolf » Sat Mar 04, 2006 3:19 am

i fixed this macro to work after string was removed during a raid in PoA tonight. works just as it did before.

enjoy.

Code: Select all

|twitch.mac
| Twitch one person with both of your twitch spells.
| Use "Ctrl \" combo to start twitching or stop twitching.

#event OOM "#*#Insufficient Mana#*#"

|--------------------------------------
|--- SUB: Main
|--------------------------------------
Sub Main


/declare Twitch1Slot int outer
/declare Twitch2Slot int outer
/declare Ready1 bool outer FALSE
/declare Ready2 bool outer FALSE
/declare Ready1Timer timer outer
/declare Ready2Timer timer outer

/declare TwitchToggle int outer 0

/declare TwitchToggleChange int outer 0

|--- Custombind routine
/squelch /custombind delete TwichToggle
/squelch /custombind add TwitchToggle
/squelch /custombind set TwitchToggle /varset TwitchToggleChange 1
/bind TwitchToggle Ctrl+\

|-------------------------------------------------
|--- which slots do you use for Sedulous/Covetous?
/varset Twitch1Slot 7
/varset Twitch2Slot 8
|-------------------------------------------------

/if (${Me.Gem[Sedulous Subversion]}) {
   /varset Ready1 TRUE
   } else /varset Ready1 FALSE

/if (${Me.Gem[Covetous Subversion]}) {
   /varset Ready2 TRUE
   } else /varset Ready2 FALSE

:retry1
/delay 1
/if (${Ready1}==FALSE) {
   /memspell ${Twitch1Slot} "Sedulous Subversion"
   /varset Ready1Timer 80
   }
:loop1
/delay 1
/if (!${Me.Gem["Sedulous Subversion"]}) /if (${Ready1Timer}<1) /goto :retry1
/if (${Me.Gem["Sedulous Subversion"]}) /goto :next
/goto :loop1

:next

:retry2
/delay 1
/if (${Ready2}==FALSE) {
   /memspell ${Twitch2Slot} "Covetous Subversion"
   /varset Ready2Timer 80
   }
:loop2
/delay 1
/if (!${Me.Gem["Covetous Subversion"]}) /if (${Ready2Timer}<1) /goto :retry2
/if (${Me.Gem["Covetous Subversion"]}) /goto :ready
/goto :loop2

:ready

/call TwitchTarget

/return


|--------------------------------------
|--- SUB: TwitchTarget
|--------------------------------------
Sub TwitchTarget

/echo To toggle twitching, press Ctrl+\
|--- Main Twitching Loop.
:twitchloop

/doevents
/delay 1

/if (${TwitchToggleChange}==1) {
   /varset TwitchToggle ${If[${TwitchToggle}==1,0,1]}
   /varset TwitchToggleChange 0
   }
/if (${Target.Type.Equal[PC]}) {
/if (${TwitchToggle}==1) {
   /if (${Me.SpellReady[Sedulous Subversion]}) /if (!${Me.Casting.ID}) /cast "Sedulous Subversion"
   }
}

/doevents
/delay 1

/if (${TwitchToggleChange}==1) {
   /varset TwitchToggle ${If[${TwitchToggle}==1,0,1]}
   /varset TwitchToggleChange 0
   }
/if (${Target.Type.Equal[PC]}) {
/if (${TwitchToggle}==1) {
   /if (${Me.SpellReady[Covetous Subversion]}) /if (!${Me.Casting.ID}) /cast "Covetous Subversion"
   }
}

/goto :twitchloop
|--- End Main Twitching Loop.
/return


|--------------------------------------
|--- EVENT: OOM
|--------------------------------------
Sub Event_OOM
/echo Twitching stopped due to OOM. Press Ctrl \ at any time to resume.
/varset TwitchToggle 0
/return

xyilla
naggy
naggy
Posts: 33673
Joined: Sun Feb 23, 2025 5:36 am

Re: Twitch.mac -- Automated Twitch for necros.

Post by xyilla » Mon Mar 03, 2025 7:01 am


xyilla
naggy
naggy
Posts: 33673
Joined: Sun Feb 23, 2025 5:36 am

Re: Twitch.mac -- Automated Twitch for necros.

Post by xyilla » Mon Mar 03, 2025 7:02 am


xyilla
naggy
naggy
Posts: 33673
Joined: Sun Feb 23, 2025 5:36 am

Re: Twitch.mac -- Automated Twitch for necros.

Post by xyilla » Mon Mar 03, 2025 7:03 am


xyilla
naggy
naggy
Posts: 33673
Joined: Sun Feb 23, 2025 5:36 am

Re: Twitch.mac -- Automated Twitch for necros.

Post by xyilla » Mon Mar 03, 2025 7:04 am


xyilla
naggy
naggy
Posts: 33673
Joined: Sun Feb 23, 2025 5:36 am

Re: Twitch.mac -- Automated Twitch for necros.

Post by xyilla » Mon Mar 03, 2025 7:05 am


xyilla
naggy
naggy
Posts: 33673
Joined: Sun Feb 23, 2025 5:36 am

Re: Twitch.mac -- Automated Twitch for necros.

Post by xyilla » Mon Mar 03, 2025 7:07 am


xyilla
naggy
naggy
Posts: 33673
Joined: Sun Feb 23, 2025 5:36 am

Re: Twitch.mac -- Automated Twitch for necros.

Post by xyilla » Mon Mar 03, 2025 7:08 am