Charmed pet health and invis macro request

Have a macro idea but not sure where to start? Ask here.

Moderator: MacroQuest Developers

DeathOfRats
orc pawn
orc pawn
Posts: 15
Joined: Wed Sep 24, 2003 8:49 am

Charmed pet health and invis macro request

Post by DeathOfRats » Wed Oct 06, 2004 1:00 pm

Basically, I need a macro that checks when I have just charmed a pet, and breaks charm by using a clicky item when the pet or my target reaches 4% hitpoints. The macro needs to be continually active.

I'm sure it's possible for some bright spark, but I am just a 2W spark atm.

Cheers!

JimJohnson
a grimling bloodguard
a grimling bloodguard
Posts: 1299
Joined: Sat Oct 11, 2003 6:00 am

Post by JimJohnson » Wed Oct 06, 2004 1:39 pm

want it to charm if targets hps => 4 and no current pet. then break charm once pets life is =< 4?

assum this for a bard swarm macro

DeathOfRats
orc pawn
orc pawn
Posts: 15
Joined: Wed Sep 24, 2003 8:49 am

Post by DeathOfRats » Wed Oct 06, 2004 5:22 pm

It's actually just an aid when I am soloing. I'm an Enchanter, charm soloing in HoH. XP goes much faster when you nuke your old pet, and it just so happens that Insanity does roughly 4% hitpoints worth of damage :)

I do the same run pretty much all the time. No doubt the routine could be scripted so that you could afk xp, but it would be tough and dangerous if used in locations with unrootable mobs.

One other routine that would be worth having in would be something that uses the Arcane Rune ability if health < 30%, I'm sure that is just a small thing to write though.

DeathOfRats
orc pawn
orc pawn
Posts: 15
Joined: Wed Sep 24, 2003 8:49 am

Post by DeathOfRats » Wed Oct 06, 2004 5:40 pm

Tash Target 1
Run to location x, y
Cast Command of Druzzil
Target target #2
Pet Attack
Run to location x, y
Cast tash
Cast Greater Fetter
Use blue ceramic band until spell holds. [constant routine to re-root if root breaks]
Watch health of both targets, if pet's health > target #2 by more than 5%, /pet back off and /pet sit until pet's health = health of target or > target by 2%
If pet's health or Target's health < 4%, use right click invis item
Target old pet,
Cast Greater Fetter,
Nuke lowest hp target until dead, rerooting as required.
Nuke other target, rerooting as required.

Move to location x,y

Tash Target 1
Run to location x, y
Cast Command of Druzzil
Target target #2
Pet Attack
Run to location x, y
Cast tash
Cast Greater Fetter
Use blue ceramic band until spell holds. [constant routine to re-root if root breaks]
Watch health of both targets, if pet's health > target #2 by more than 5%, /pet back off and /pet sit until pet's health = health of target or > target by 2%
If pet's health or Target's health < 4%, use right click invis item
Target old pet,
Cast Greater Fetter,
Nuke lowest hp target until dead, rerooting as required.
Nuke other target, rerooting as required.

Move to location x,y

Tash Target 1
Run to location x, y
Cast Command of Druzzil
Target target #2
Pet Attack
Run to location x, y
Cast tash
Cast Greater Fetter
Use blue ceramic band until spell holds.
Cast Haste on Pet
If Target's health < 4%, use right click invis item
Target old pet,
Cast Greater Fetter,
Nuke lowest hp target until dead, rerooting as required.
Cast Command of Druzzil on old pet,
Target target #3
/pet attack
Cast tash,
When target #3 reaches y co-ordinate ###, cast greater fetter.
Use blue ceramic band until spell holds. [constant routine to re-root if root breaks]
Watch health of both targets, if pet's health > target #2 by more than 5%, /pet back off and /pet sit until pet's health = health of target or > target by 2%
If pet's health <20% and target #3 health >50%, cast Slow on Target #3
If pet's health or Target's health < 4%, use right click invis item
Target old pet,
Cast Greater Fetter,
Nuke lowest hp target until dead, rerooting as required.
Nuke other target, rerooting as required.

Move to location x,y

Tash Target 1
Run to location x, y
Cast Command of Druzzil
Target target #2
Pet Attack
Run to location x, y
Cast tash
Cast Greater Fetter
Use blue ceramic band until spell holds. [constant routine to re-root if root breaks]
Watch health of both targets, if pet's health > target #2 by more than 5%, /pet back off and /pet sit until pet's health = health of target or > target by 2%
If pet's health or Target's health < 4%, use right click invis item
Target old pet,
Cast Greater Fetter,
Nuke lowest hp target until dead, rerooting as required.
Nuke other target, rerooting as required.

Move to location x,y

Tash Target 1
Run to location x, y
Cast Command of Druzzil
Target target #2
Pet Attack
Run to location x, y
Cast tash
Cast Greater Fetter
Use blue ceramic band until spell holds.
Cast Haste on Pet
If Target's health < 4%, use right click invis item
Target old pet,
Cast Greater Fetter,
Nuke lowest hp target until dead, rerooting as required.
Cast Command of Druzzil on old pet,
Target target #3
/pet attack
Cast tash,
When target #3 reaches y co-ordinate ###, cast greater fetter.
Use blue ceramic band until spell holds. [constant routine to re-root if root breaks]
Watch health of both targets, if pet's health > target #2 by more than 5%, /pet back off and /pet sit until pet's health = health of target or > target by 2%
If pet's health <20% and target #3 health >50%, cast Slow on Target #3
If pet's health or Target's health < 4%, use right click invis item
Target old pet,
Cast Greater Fetter,
Nuke lowest hp target until dead, rerooting as required.
Nuke other target, rerooting as required.




Also, within the script would be a check routine in case a sentry or one of two named mobs popped. If this happened there would be a separate routine for killing sentries, and most likely camp out if the named pops as it's a pain in the ass to kill. The aforementioned auto rune routine, checks for buffs, use of sow potions, GM checking, looting of corpses, and downtime if hp was reduced too low to safely continue would also all be included, plus a routine to do something if charm broke too early.

Anyway, like I said...the script would be easy enough to write if you knew what you were doing but it isn't what I want...I like playing EQ even in xp grinds like that...I just get fed up with the distractions of modern life on my techniques!

Oid
a snow griffon
a snow griffon
Posts: 416
Joined: Thu Oct 17, 2002 3:26 am
Contact:

Post by Oid » Wed Oct 06, 2004 10:55 pm

Ahh you aint asking for much at all ;)
Smokey the Lax says only you can prevent reproduction.

DeathOfRats
orc pawn
orc pawn
Posts: 15
Joined: Wed Sep 24, 2003 8:49 am

Post by DeathOfRats » Thu Oct 07, 2004 1:11 am

LOL, I don't want that....just the charm break routine when hitpoints conditions are met.

JimJohnson
a grimling bloodguard
a grimling bloodguard
Posts: 1299
Joined: Sat Oct 11, 2003 6:00 am

Post by JimJohnson » Thu Oct 07, 2004 1:17 am

so what i said in first post

want it to charm if targets hps => 4 and no current pet. then break charm once pets life is =< 4

hiipii
a ghoul
a ghoul
Posts: 93
Joined: Sat Jun 19, 2004 5:01 pm

Post by hiipii » Thu Oct 07, 2004 1:23 am

Code: Select all

#event resist "#*#has resisted your Greater Fetter spell#*#"
#include spellcast.inc
sub main
:loop
/if (${Me.Pet.PctHPs}<5) {
/target ${Me.Pet}
/call cast "Item Name" item
/call cast "Greater Fetter"
/doevents
/popup "Kill That SL00t!"
/e nuke the crap out of it omg!
}
/goto :loop
/return

sub Event_resist
/popup root resisted recasting
/call cast "Greater Fetter"
/return
change Item Name to name of clicky invis
not quite sure if this will work out of the box but the concept is solid i think. good luck post any errors and someone if not me will be able to fix it.

DeathOfRats
orc pawn
orc pawn
Posts: 15
Joined: Wed Sep 24, 2003 8:49 am

Post by DeathOfRats » Thu Oct 07, 2004 2:05 am

Thanks Hiipii, and yes Jim, I guess recharming would be a great thing too....I could then concentrate more on the hp balancing act.

DeathOfRats
orc pawn
orc pawn
Posts: 15
Joined: Wed Sep 24, 2003 8:49 am

Post by DeathOfRats » Thu Oct 07, 2004 2:11 am

With regard to this:

/if (${Me.Pet.PctHPs}<5) {
/target ${Me.Pet}


I am a first time user for stuff like this, but how does it know what {Me.Pet} is? Does it 'just know'? or do I have to assign it somehow?

Also, the condition needs to be expanded so that it is something like:

/if (${Me.Pet.PctHPs}<5) or (${Target.PctHPs}<5)

but I don't know if those are correct variables at all.

Lum
a lesser mummy
a lesser mummy
Posts: 68
Joined: Thu Sep 16, 2004 10:12 am

Post by Lum » Thu Oct 07, 2004 3:33 am

as for Me.Pet, Pet owners are stored in memory, as how would it know when you group with em which pet is theirs? :P

I made this code, but since i dont haev a chanter of that level Im not sure how well it works.

its definately too crappy to afk, and feel free to tell me what i totally fooked up :P

Code: Select all

#event rootresist "#*#has resisted your Greater Fetter spell#*#" 
#event nukeresist "#*#has resisted your Insanity spell#*#"
#event charmresist "#*#has resisted your Command of Druzzil spell#*#"
sub main 
:newpet
/if (${Me.Pet.ID}) {
  /goto :loop
}
:newpet2
/if (${Target.ID}) {
  /if (${Target.ID!=${Me.ID}&&${Target.PctHPs}<5) {
    /popup "Nuking target, Inadequate pet!"
    /e Killing an invalid pet, ${Target.Name}
    /cast "Greater Fetter"
    /delay 4.1s 
    /doevents rootresist
    /cast "Insanity"
    /delay 8.4s
    /doevents nukeresist
    /if (${Target.ID}) {
    /goto :newpet2
    }
  }
  /if (${Target.ID}!=${Me.ID}&&${Target.PctHPs}>5) {
    /popup "Valid pet targetted, Attempting to Charm"
    /e Attempt to charm ${Target.Name}
    /cast "Command of Druzzil"
    /delay 7.4s
    /doevents charmresist
    /goto :newpet
  }
}
/goto :newpet
:loop 
/if (${Me.Pet.PctHPs}<5) { 
  /target ${Me.Pet} 
  /cast item "Item Name"
  |Need to change this Delay value to the casting time of your clicky invis.
  |Or you need to change /cast item "Item Name" to /cast "Improved Invisibility"
  |If using improv invis, change delay to /delay 6.3s
  /delay 1s
  /goto :newpet2
} 
/goto :newpet 
/return 

sub Event_rootresist 
/popup Root resisted, Recasting. 
/cast "Greater Fetter"
/delay 4.1s 
/return

sub Event_nukeresist
/popup Nuke resisted, Nuking again.
/cast "Insanity"
/delay 8.4s
/return

sub Event_charmresist
/popup Charm resist! Casting again.
/cast "Command of Druzzil"
/delay 7.4s
/return
I started with the code hiipii posted and added on obviously :P note that i added the notes wher eyou need to change the delay for however you are invising to break charm.
Last edited by Lum on Fri Oct 08, 2004 9:31 pm, edited 5 times in total.

DeathOfRats
orc pawn
orc pawn
Posts: 15
Joined: Wed Sep 24, 2003 8:49 am

Post by DeathOfRats » Thu Oct 07, 2004 4:14 am

Thanks! I shall inform of the success of this in a few days, once I have re-installed my PC (HDD failure, eek)

DeathOfRats
orc pawn
orc pawn
Posts: 15
Joined: Wed Sep 24, 2003 8:49 am

Post by DeathOfRats » Fri Oct 08, 2004 2:47 pm

tried lums but it runs the nuke routine all the time when i don't have a pet...

Lum
a lesser mummy
a lesser mummy
Posts: 68
Joined: Thu Sep 16, 2004 10:12 am

Post by Lum » Fri Oct 08, 2004 3:36 pm

i see what i forgot, to check for target at all before checking if he has less than 5% hp.

are you invising yourself before it all starts by the macro?

edited the post above's code also.

DeathOfRats
orc pawn
orc pawn
Posts: 15
Joined: Wed Sep 24, 2003 8:49 am

Post by DeathOfRats » Fri Oct 08, 2004 5:04 pm

not that I am aware of! I shall go test this latest out.