Charm a pet w/ Rune and re-tash support

A forum for you to dump all the macros you create, allowing users to use, modify, and comment on your work.

Moderator: MacroQuest Developers

bob_the_builder
a hill giant
a hill giant
Posts: 275
Joined: Tue Jul 22, 2003 1:22 pm

Charm a pet w/ Rune and re-tash support

Post by bob_the_builder » Tue Feb 24, 2004 9:08 pm

Code: Select all

| Target a wanna be pet, /mac charmit, will sleep, tash, charm 
| Will mez and retash then charm if tash wears off 
| Will cast EldritchRune if you have the AA 
| If the ability is not met will cast ArcaneRune 
| 
| Macro ends when you zone or it dies .. no more pet 
| 
| charmit.mac 
| 4/23/04 PM 
| Originally by Bob_the_builder 
| Converted to new system by Wassup 
| 

#include spellcast.inc 
#event TashOff "Howl of Tashan has worn off"
#event Zoned "You have entered" 

Sub Main 
   /if (!${Target.ID}) /call EndCharm 
   /if (${Target.Type.Equal[PC]}) /call EndCharm 
   /if (${Target.Type.Equal[Corpse]}) /call EndCharm 

   :setupDeclare 
      /declare MyPet global 
      /declare RuneTimer timer 
      /declare TashCounter global 

   :setupVarset 
      /varset MyPet ${Target.ID}
      /varset RuneTimer 0 
      /varset TashCounter 0 

   :MainLoop 
      /if (!${Me.Pet.ID}) { 
         /if (!${Int[@MyPet]}) /call EndCharm 
         /if ((!${Me.Mount.ID})&&(${Me.State.NotEqual[STAND]})) /stand 
         /g Charm wore *off*, trying to gain control now !!! 
         /call Charm 
      } 
      /doevents TashOff 
      /if (!${Me.Buff[Arcane Rune].ID}) { 
         /if (!${Me.Buff[Eldritch Rune].ID}) { 
            /call RuneUp 
         } 
      } 
   /goto :MainLoop 
/endmacro 

Sub Charm 
   /target id @MyPet 
   /if (!${Int[@MyPet]}) /call EndCharm 
   /face nolook 
   /echo >> Charming Pet << 
   /g Making << %t >> my pet, keep me alive !!! 

   :MezAndTash 
      /if (!${Int[@TashCounter]}) { 
         /target id @MyPet 
         /g I need to mez %t then tash before making my pet. 
         /echo Sleep 
         /call cast "sleep" 
         /echo Tash 
         /call cast "Howl of Tashan" 
         /varset TashCounter 1 
   } 

   :AEMez 
      /target id @MyPet 
      /if (!${Int[@MyPet]}) /call EndCharm 
      /if (${Target.Distance}<=30) { 
         /echo AE Mez 
         /call cast "Word of Morell" 
   } 

   :CastCharm 
      /echo Charming 
      /cast "Command of Druzzil" 
| I didn't use the spellcast.inc incase this gets interupted means you probably need to re ae mez 
      :WaitCast 
      /if (${Me.Casting.ID}) { 
         /delay 1 
         /goto :WaitCast 
      } 
      /if (!${Me.Pet.ID}) /goto :AEmez 

/return 

Sub RuneUp 
   /if (!${Int[@RuneTimer]) { 
      /alt activate 173 
      /varset RuneTimer 606s 
   } Else { 
      /call cast "Arcane Rune" 
   } 
/return 

Sub EndCharm 
   /echo No pet defined in target 
   /echo Ending Charm Session 
   /endmacro 
/return 

Sub event_TashOff 
   /varset TashCounter 0 
/return

Sub event_Zoned
   /echo Zoning ...
   /call EndCharm
/return 
Updated this macro with a tash counter for retashing and mezzing. Any suggestions or problems let me know. Seems to work really well for the "duel boxed enchanter".

Bob
Last edited by bob_the_builder on Tue Apr 27, 2004 8:38 am, edited 7 times in total.

Chant3r
orc pawn
orc pawn
Posts: 10
Joined: Sun Apr 18, 2004 3:27 pm

Post by Chant3r » Sun Apr 18, 2004 3:43 pm

When I try and run this I get

[MQ2] No pet defined in target
[MQ2] Ending Charm Session

I don't speak the language so looking at the charmit.mac just makes me feel stupid :) Looks like it will be a kick arse Mac can;t wait to see what I am doin wrong so I can use it .

Is there a way this can be modded to solo in like HOH basement or somewhere else
Chant3r

If I were you I would hate me too

ChrisCim
a lesser mummy
a lesser mummy
Posts: 77
Joined: Sun Feb 29, 2004 2:45 am

Post by ChrisCim » Mon Apr 19, 2004 5:03 am

[MQ2] No pet defined in target
Probably means you need to actually have a charmed pet first :)

wassup
Official Guardian and Writer of TFM
Official Guardian and Writer of TFM
Posts: 1487
Joined: Sat Oct 26, 2002 5:15 pm

Post by wassup » Mon Apr 19, 2004 5:42 am

I was getting some practice with the new system and was wondering if someone could test this on a safe charmed pet to see if it works:

Yes, from what I see you need to have a charmed pet first then start the macro.

Code: Select all

| Grab a pet and keeps it charmed
| target a pet, /mac charmit
| charmit.mac
| 4/7/04 PM
| Originally by Bob_the_builder
| Converted to new system by Wassup
|
| Will mez and retash then charm if tash wears off
| Will cast EldritchRune if you have the AA
| If the ability is not met will cast ArcaneRune
|
| Macro ends when you zone or it dies .. no more pet
|

#include spellcast.inc
#event TashOff "Howl of Tashan has worn off"

Sub Main
   /zapvars
   /newif (!${Target.ID}) /call EndCharm
   /newif ${Target.Type.Equal[PC]} /call EndCharm

   :setupDeclare
      /declare MyPet global
      /declare RuneTimer timer
      /declare TashCounter global

   :setupVarset
      /varset MyPet ${Me.Pet.ID}
      /varset RuneTimer 0
      /varset TashCounter 0

   /call Charm
/endmacro

Sub Charm
   /target id @MyPet
   /newif (!${Int[@MyPet]}) /call EndCharm
   /face nolook
   /echo >> Charming Pet <<
   /g Making << %t >> my pet, keep me alive !!!

   :AEMez
      /target id @MyPet
      /newif (!${Int[@MyPet]}) /call EndCharm
      /newif ${Target.Distance}<=30 {
         /echo AE Mez
         /call cast "Word of Morell"
      }

   :MezAndTash
      /newif !${Int[@TashCounter]} {
         /target id @MyPet
         /g I need to mez %t then tash before making my pet.
         /echo Sleep
         /call cast "sleep"
         /echo Tash
         /call cast "Howl of Tashan"
         /varset TashCounter 1
      }

   :CastCharm
      /echo Charming
      /cast "Command of Druzzil"
| I didn't use the spellcast.inc incase this gets interupted means you probably need to re ae mez
      /newif (!${Me.Pet.ID}) /goto :AEmez

   :MainLoop
      /newif (!${Me.Pet.ID}) {
         /newif (!${Int[@MyPet]}) /call EndCharm
         /newif ((!${Me.Mount.ID})&&(${Me.State.NotEqual[STAND]})) /stand
         /g Charm wore *off*, trying to gain control now !!!
         /call Charm
      }
      /doevents TashOff
      /newif (!${Me.Buff[Arcane Rune].ID}) {
         /newif (!${Me.Buff[Eldritch Rune].ID}) {
            /call RuneUp
         }
      }
   /goto :MainLoop
/return

Sub RuneUp
   /newif (!${Int[@RuneTimer]) {
      /alt activate 173
      /varset RuneTimer 606s
   } Else {
      /call cast "Arcane Rune"
   }
/return

Sub TashOff
   /varset TashCounter 0
/return

Sub EndCharm
   /echo No pet defined in target
   /echo Ending Charm Session
   /endmacro
/return
Let me know if it works or if any problems please describe what is happening.

bob_the_builder
a hill giant
a hill giant
Posts: 275
Joined: Tue Jul 22, 2003 1:22 pm

Post by bob_the_builder » Mon Apr 19, 2004 9:35 am

Seems to work fine Wassup. Except you have to make the pet first which screws up the Sleep / Tash that happens first. The way I had it originally was that you target the mob you want to be the pet, then /mac charmit. It will Sleep, Tash, Charm and keep tashed and charmed.
Will look at it in further detail tonight but its running right now after charming the pet initially and seems to run well.

Thanks in advance

Bob

dman
a hill giant
a hill giant
Posts: 181
Joined: Fri Dec 05, 2003 12:54 pm

Post by dman » Mon Apr 19, 2004 10:27 am

You may want to move this loop out of Sub_Charm and into Sub_Main as eventually calling Sub_Charm from within Sub_Charm will kill your systems performance. Moving the whole loop directly to Sub_Main I can see no difference in the macro other than not using lots of memory the more charm breaks you have. :)

Code: Select all

   :MainLoop 
      /newif (!${Me.Pet.ID}) { 
         /newif (!${Int[@MyPet]}) /call EndCharm 
         /newif ((!${Me.Mount.ID})&&(${Me.State.NotEqual[STAND]})) /stand 
         /g Charm wore *off*, trying to gain control now !!! 
         /call Charm 
      } 
      /doevents TashOff 
      /newif (!${Me.Buff[Arcane Rune].ID}) { 
         /newif (!${Me.Buff[Eldritch Rune].ID}) { 
            /call RuneUp 
         } 
      } 
   /goto :MainLoop 

bob_the_builder
a hill giant
a hill giant
Posts: 275
Joined: Tue Jul 22, 2003 1:22 pm

Post by bob_the_builder » Mon Apr 19, 2004 12:55 pm

Ok reposted top post with changes. Need to target the wanna be pet first, then /mac charmit. It will sleep, tash, charm, set the tash counter and watch for "tash has worn off" then repeat, otherwise will just ae mez and re charm.

This macro assumes you have Eldrich rune AA and Mez Mastery for the AE mez to work sufficiently.

Bob

bob_the_builder
a hill giant
a hill giant
Posts: 275
Joined: Tue Jul 22, 2003 1:22 pm

Post by bob_the_builder » Thu Apr 22, 2004 8:50 pm

Finished with latest changes from 4/21.

Top post

Bob

Chant3r
orc pawn
orc pawn
Posts: 10
Joined: Sun Apr 18, 2004 3:27 pm

Post by Chant3r » Sat Apr 24, 2004 5:10 pm

last time I used this I got an error cand the macro ended .. I don't recall the error message but will test it out and get back to you . But basicaly the macro ends I lose rune . I have ER and keep Arcane rune up
Chant3r

If I were you I would hate me too

Chant3r
orc pawn
orc pawn
Posts: 10
Joined: Sun Apr 18, 2004 3:27 pm

Post by Chant3r » Sun Apr 25, 2004 11:06 am

First let me say that I have never programed anything in my life except my VCR and even then I need my wifes help lol. So when I started playing with this macro I was like Helen Keller at a fesival for audio/visual effects.

Only problem with this Macro for me was the fact I play on a PVP Server and even though most ppl have decent resist it would really suck to have charm break at the same time the gimp cleric in your group was about to land a CH on the tank who is at 1% just to pop off Word or Morrel and dust him. Also it would cause pet agro.

(Even as I wrote this I looked and made another connection in this code that is an alien language to me)


Any way I did not write any of this it was all Bob_the_builder I just kept playing wit it to get it to stop the AE mez and continue to mez tash charm. Only thing I would suggest is instead of casting arcane rune right after Eldritch rune is used have it wait for the runes has faded command to cast Arcane rune. And would like to see the macro end if I zone. I don;t know how to get it to do that but if I figure it out before I see a post I will post it.


Code: Select all

#include spellcast.inc 
#event TashOff "Howl of Tashan has worn off" 

Sub Main 
   /zapvars 
   /if (!${Target.ID}) /call EndCharm 
   /if (${Target.Type.Equal[PC]}) /call EndCharm 
   /if (${Target.Type.Equal[Corpse]}) /call EndCharm 

   :setupDeclare 
   /declare MyPet global 
   /declare RuneTimer timer
   /declare TashCounter global 

   :setupVarset 
   /varset MyPet ${Target.ID} 
   /varset RuneTimer 0 
   /varset TashCounter 0 

   :MainLoop 
   /if (!${Me.Pet.ID}) { 
      /if (!${Int[@MyPet]}) /call EndCharm 
      /if ((!${Me.Mount.ID})&&(${Me.State.NotEqual[STAND]})) /stand 
      /g Charm wore *off*, trying to gain control now !!! 
      /call Charm 
   } 
   /doevents TashOff 
   /if (!${Me.Buff[Arcane Rune].ID}) { 
      /if (!${Me.Buff[Eldritch Rune].ID}) { 
         /call RuneUp 
      } 
   } 
   /goto :MainLoop 
/endmacro 

Sub Charm 
   /target id @MyPet 
   /if (!${Int[@MyPet]}) /call EndCharm 
   /face nolook 
   /echo >> Charming Pet << 
   /g Making << %t >> my pet, keep me alive !!! 

   :MezAndTash 
   /if (!${Int[@TashCounter]}) { 
      /target id @MyPet 
      /g I need to mez %t then tash before making my pet. 
      /echo Bliss 
      /call cast "Bliss" 
      /echo Tash 
      /call cast "Howl of Tashan" 
      /varset TashCounter 1 
   } 

   :castcharm 
   /target id @MyPet 
   /if (!${Int[@MyPet]}) /call EndCharm 
   /if (${Target.Distance}<=200) { 
      /echo Charming 
      /call cast "Command of Druzzil" 
   } 

      :WaitCast 
   /if (${Me.Casting.ID}) { 
      /delay 1 
      /goto :WaitCast 
   } 
   /if (!${Me.Pet.ID}) /goto :castcharm 

/return 

Sub RuneUp 
   /if (!${Int[@RuneTimer]}) { 
      /alt activate 173 
      /varset RuneTimer 606s 
   } Else { 
      /call cast "Arcane Rune" 
   } 
/return 

Sub TashOff 
   /varset TashCounter 0 
/return 

Sub EndCharm 
   /echo No pet defined in target 
   /echo Ending Charm Session 
   /endmacro 
/return 
Chant3r

If I were you I would hate me too

bob_the_builder
a hill giant
a hill giant
Posts: 275
Joined: Tue Jul 22, 2003 1:22 pm

Post by bob_the_builder » Sun Apr 25, 2004 11:22 am

Added the /endmacro if you zone stuff.

Bob

zedisdeadbaby
a ghoul
a ghoul
Posts: 83
Joined: Sun Nov 03, 2002 4:24 pm

Post by zedisdeadbaby » Mon Apr 26, 2004 2:34 pm

Wow, that is far superior to mine:

Code: Select all

#turbo
#event charmBreak "Your charm spell has worn off" 

sub Main()
  
:start
    /doevents
    /delay 2
/goto :start

/return 


sub Event_charmBreak 
   /stand
   /beep
/return