druid.mac

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

Moderator: MacroQuest Developers

User avatar
Nuad
a ghoul
a ghoul
Posts: 93
Joined: Thu Jun 27, 2002 11:43 am
Location: Berlin, Germany

druid.mac

Post by Nuad » Sat Jun 29, 2002 6:13 pm

This is the actual version of druid.mac... i'm still working on improvements and new features so see this as a beta version. ;)

Code: Select all

| Druid.mac - Druid Powerlevel Script, optimized for LVL 55+ 

Druids
| Written by: Nuad
|
| THIS IS AN ONGOING, UNFINISHED WORK... 04-10-2002 
| 
| Start with /macro druid <Controller Name> <Type> e.g. /macro 

druid Buranda 1
|
| Spells for PLing (Type 1)........: Heal, DS, Skin, Chloro, STR, 

SoW, Snare, Root
| Spells for Hunting (Type 2)......: Heal, DS, Skin, Winged, STR, 

SoW, Breath, Evac
| or if indoors (Type 3)...........: Heal, DS, Skin, Winged, STR, 

Immolate, Breath, Evac
| or if a Nuke is required (Type 4): Heal, DS, Skin, Winged, STR, 

Nuke, Debuff, Evac
| 
#include SpellSub.mac
| #include Spellbook.mac
#chat tell 
#event ArmOff "Your Drones of Doom spell has worn off." 
#event EpicOff "Your Wrath of Nature spell has worn off." 
#event BreathOff "Your Breath of Ro spell has worn off." 
#event WingedOff "Your Winged Death spell has worn off." 
#event ImmoOff "Your Immolate spell has worn off." 
#event RegenOff "You have stopped regenerating."

Sub Main
    /varset v30 $p0
    /varset v29 0
    /varset v34 $p1
|    /call MemSpells $v34
    /tell $v30 Ready
    :loop  
      /doevents
    /goto :loop 
/return 

Sub Event_Chat 
   /stand
   /varset v33 $p1
| Check if Tell is from the Controller, if not inform Controller
   /if "$v33"!="$v30" {
      /mqlog Tell from $p1 : $p2
      /tell $p1 Sorry i'm really busy at the moment and not 

aviable for tells
      /delay 2
      /tell $v30 Tell from $p1 to $char(name) , i told him that 

i'm busy
      /sit
      /return
   }
   /target $v33
   /if $p2~~"00heal" /call HealSub 
   /if $p2~~"00DS" /call  DsSub 
   /if $p2~~"00Skin" /call SkinSub 
   /if $p2~~"00Regen" /call RegenSub 
   /if $p2~~"00str" /call StrengthSub 
   /if $p2~~"00sow" /call SoWSub 
   /if $p2~~"00snare" /call SnareSub
   /if $p2~~"00root" /call RootSub
   /if $p2~~"00come" /call GoTarget
   /if $p2~~"00self" /call SelfBuff
   /if $p2~~"00home" /call GoHome
   /if $p2~~"00evac" /call Evac
   /if $p2~~"00sheal" /call SelfHeal
   /if $p2~~"00status" /tell $v33 Mana: $char(mana,pct), HP: 

$char(hp,pct)
   /if $p2~~"00rotg" /call Chest
   /if $p2~~"00drones" /call Arm
   /if $p2~~"00epic" /call Epic
   /if $p2~~"00winged" /call Winged
   /if $p2~~"00breath" /call Breath
   /if $p2~~"00immo" /call Immo
   /if $p2~~"00nuke" /call Nuke
   /if $p2~~"00debuff" /call Debuff
   /if $p2~~"00help" /call Help
 |  /if $p2~~"00type1" /call MemSpells 1
 |  /if $p2~~"00type2" /call MemSpells 2
 |  /if $p2~~"00type3" /call MemSpells 3
 |  /if $p2~~"00type4" /call MemSpells 4
   /sit
   /doevents
/return 

Sub HealSub 
    /tell $v33 INC Heal for %T 
    /call SpellSub 1 5
    /tell $v33 Healing done, Mana: $char(mana,pct), HP: $char(

hp,pct)
/return    

Sub DsSub 
    /tell $v33 INC Damage Shield for %T 
    /call SpellSub 2 5.25
    /tell $v33 DS Buff done, Mana: $char(mana,pct), HP: $char(

hp,pct)
/return 

Sub SkinSub 
    /tell $v33 INC Skin for %T 
    /call SpellSub 3 8
    /tell $v33 Skin Buff done, Mana: $char(mana,pct), HP: $char(

hp,pct)
/return 
    
Sub RegenSub 
    /tell $v33 INC Regeneration for %T 
    /call SpellSub 4 8.5
    /tell $v33 Regeneration Buff done, Mana: $char(mana,pct), HP: 

$char(hp,pct)
/return 

Sub StrengthSub 
    /tell $v33 INC STR for %T 
    /call SpellSub 5 7.5
    /tell $v33 STR Buff done, Mana: $char(mana,pct), HP: $char(

hp,pct)
/return 
    
Sub SoWSub 
    /tell $v33 INC SoW for %T 
    /call SpellSub 6 8
    /tell $v33 SoW Buff done, Mana: $char(mana,pct), HP: $char(

hp,pct)
/return 
    
Sub SnareSub
    /assist $v33
    /delay 6
    /tell $v33 Ensnaring %T
    /call SpellSub 7 5.75   
    /tell $v33 %T is ensnared, Mana: $char(mana,pct), HP: $char(

hp,pct)
    /target $v33
/return

Sub RootSub
    /assist $v33
    /delay 6
    /tell $v33 Rooting %T
    /call SpellSub 8 5.5   
    /tell $v33 %T is rooted, Mana: $char(mana,pct), HP: $char(

hp,pct)
    /target $v33
/return

Sub SelfBuff
    /press F1
    /tell $v33 Casting SoW now on myself
    /Call SpellSub 6 8
    /press F1
    /tell $v33 Casting SLN now on myself
    /call SpellSub 3 8
    /target $v33
    /tell $v33 Selfbuffs done, Mana: $char(mana,pct), HP: $char(

hp,pct)
    /target $v33
/return

Sub GoHome
   /stand
   /sit
   /tell $v33 Camping...
   /camp desktop
   /unload
/return

Sub Evac
   /target $v33
   /invite $v33
   /tell $v33 You have 8 Seconds now to press Follow
   /call SpellSub 8 1
   /tell $v33 EVAC INC
/return

Sub GoTarget
   /stand
   /target $v33
   /face
   /varset v90 $target(id)
   /varset t0 5m
   /tell $v33 I'm coming
   :CloserAF
      /doevents
      /if "$target(id)"!="$v90" /goto :EndAF
      /if n $target(distance)>14 /call AutoRun 1
      /if n $target(distance)<15 /goto :EndAf
      /face
      /doevents
      /if n $t0==0 /press esc
   /goto :CloserAF

   :EndAF
   /call AutoRun 0
   /tell $v33 stopped
   /doevents
/return

Sub AutoRun
   /if $p0==$v80 /return
   /varset v80 $p0
   /if $p0==1 /sendkey down up
   /if $p0==0 /sendkey up up
/return


Sub SelfHeal
   /press F1
   /tell $v33 INC Heal for %T 
   /call SpellSub 1 5
   /tell $v33 Healing done, Mana: $char(mana,pct) HP: $char(

hp,pct)
   /target $v33
/return

Sub Chest
   /tell $v33 INC RotG, no other actions possible in the next 10 

Seconds! 
   /press i
   /click right equip chest
   /delay 95
   /press i
   /tell $v33 RotG done, Mana: $char(mana,pct) HP: $char(hp,pct)
/return

Sub Arm
   /assist $v33
   /delay 6
   /varset v31 $target(name)
   /tell $v33 INC Drones of Doom on %T, no other actions possible 

in the next 10 Seconds! 
   /press i
   /click right equip arms
   /delay 85
   /press i
   /tell $v33 Drones of Doom on %T done, Mana: $char(mana,pct) 

HP: $char(hp,pct)
   /target $v33
/return

Sub Epic
   /assist $v33
   /delay 6
   /tell $v33 INC Epic DoT on %T, no other actions possible in 

the next 10 Seconds! 
   /press i
   /click right equip primary
   /delay 95
   /press i
   /tell $v33 Epic DoT on %T done, Mana: $char(mana,pct) HP: 

$char(hp,pct)
   /target $v33
/return

Sub Winged
    /assist $v33
    /delay 6
    /tell $v33 Winged Death goes to %T
    /call SpellSub 4 7   
    /tell $v33 Winged Death on %T done, Mana: $char(mana,pct), 

HP: $char(hp,pct)
    /target $v33
/return

Sub Breath
    /assist $v33
    /delay 6
    /tell $v33 Breath of Ro goes to %T
    /call SpellSub 7 5.5   
    /tell $v33 Breath of Ro on %T done, Mana: $char(mana,pct), 

HP: $char(hp,pct)
    /target $v33
/return

Sub Immo
    /assist $v33
    /delay 6
    /tell $v33 Immolate goes to %T
    /call SpellSub 7 5.75   
    /tell $v33 Immolate on %T done, Mana: $char(mana,pct), HP: 

$char(hp,pct)
    /target $v33
/return

Sub Nuke
    /assist $v33
    /delay 6
    /tell $v33 Nuking %T
    /call SpellSub 6 5.5   
    /tell $v33 Nuke on %T done, Mana: $char(mana,pct), HP: $char

(hp,pct)
    /target $v33
/return

Sub Debuff
    /assist $v33
    /delay 6
    /tell $v33 Debuffing %T
    /call SpellSub 7 5.5   
    /tell $v33 %T successfully debuffed, Mana: $char(mana,pct), 

HP: $char(hp,pct)
    /target $v33
/return

Sub Event_ArmOff
   /tell $v33 Drones of Doom from $char(name) has worn off.
/return

Sub Event_EpicOff
   /tell $v33 Epic DoT from $char(name) has worn off.
/return

Sub Event_BreathOff
   /tell $v33 Breath of Ro from $char(name) has worn off.
/return

Sub Event_WingedOff
   /tell $v33 Winged Death from $char(name) has worn off.
/return

Sub Event_ImmoOff
   /tell $v33 Immolate from $char(name) has worn off.
/return

Sub Event_RegenOff
   /tell $v33 HP Regeneration Buff needs to be recasted.
/return

Sub MemSpells
/return

Sub Help
| unfinished yet
    /tell $v33 heal, ds, skin, regen, str, sow, snare, root, 

come, self, home, evac, sheal, status, rotg
    /tell $v33 drones, epic, winged, breath, immo, nuke, debuff, 

help, type1, type2, type3, type4
/return
Last edited by Nuad on Fri Oct 04, 2002 7:08 am, edited 1 time in total.

Amadeus
The Maestro
The Maestro
Posts: 2036
Joined: Sat Jun 29, 2002 3:51 pm

hmmmmm

Post by Amadeus » Mon Jul 01, 2002 6:00 pm

Code: Select all

Sub GoHome 
   /sit 
   /camp desktop 
   /unload 
/return
Shouldn't the '/unload' come before '/camp desktop'? Perhaps unload is redundant anyway since the player is camping out ......

I like the idea though :P ....should make an enchanter one too ;)

Xaanin
a lesser mummy
a lesser mummy
Posts: 66
Joined: Fri Jun 28, 2002 6:41 am

Post by Xaanin » Mon Jul 01, 2002 7:32 pm

I think having /unload before /camp desktop would screw it up by stopping the macro at /unload, and thus it wouldn't camp out.

User avatar
L124RD
Site Admin
Site Admin
Posts: 1343
Joined: Fri Jun 14, 2002 12:15 am
Location: Cyberspace
Contact:

Post by L124RD » Mon Jul 01, 2002 7:50 pm

Salutations,
I don't think there should be a /unload since macroquest now sits in the tray, some users (me at least) put it in the start-up folder on the start up menu and just leave it running while my system is running...

GD
a snow griffon
a snow griffon
Posts: 353
Joined: Sat Jun 29, 2002 11:57 pm

Post by GD » Mon Jul 01, 2002 11:38 pm

I don't know if others have this problem, but unless I do a /unload before closing EQ out, EQ gets stuck in memory and can't be forced to quit, then I have to restart the computer to get the memory back.

This is with WinME and using EQWin.

User avatar
Nuad
a ghoul
a ghoul
Posts: 93
Joined: Thu Jun 27, 2002 11:43 am
Location: Berlin, Germany

Post by Nuad » Tue Jul 02, 2002 3:42 am

For me it works pretty good... anyway you can delete this line if you don't wan't it... :D

User avatar
L124RD
Site Admin
Site Admin
Posts: 1343
Joined: Fri Jun 14, 2002 12:15 am
Location: Cyberspace
Contact:

Post by L124RD » Tue Jul 02, 2002 12:06 pm

Salutations,
Getting EQ out of memory? EQ is always running... unless i'm playing dungeon seige or something...

gingertips
a hill giant
a hill giant
Posts: 230
Joined: Wed Jun 26, 2002 3:47 am
Location: Tseu-Qorcam

Post by gingertips » Tue Jul 09, 2002 10:33 am

one question

$p1 - this is the variable for person who sent u tell, right?

So how long does this stay resident - is it the last person to have sent u a /tell?

User avatar
Nuad
a ghoul
a ghoul
Posts: 93
Joined: Thu Jun 27, 2002 11:43 am
Location: Berlin, Germany

Post by Nuad » Tue Jul 09, 2002 6:23 pm

Yes it is the last person who sends a tell.. .which also means everybody who sends the word 'heal' to your bot will get a heal. :)

gingertips
a hill giant
a hill giant
Posts: 230
Joined: Wed Jun 26, 2002 3:47 am
Location: Tseu-Qorcam

Post by gingertips » Tue Jul 09, 2002 6:53 pm

This is a TOP TOP TOP Macro m8!!!!! LOL!!!!

used it tonight for 1st time - worked a treat! Thx

8) :lol:

Plazmic
The One
The One
Posts: 800
Joined: Fri Jun 14, 2002 12:31 am
Contact:

Post by Plazmic » Wed Jul 10, 2002 3:14 am

Inside Event_Chat $p1 is the person that sent you a tell... It's a parameter, so it's life is only during that subroutine. if you need it in an other sub, pass it in...

Code: Select all

| Event_Chat's parameters are as follows:
| $p0: chat type (tell/say/etc)
| $p1: Sender
| $p2: message
Sub Event_Chat
  /if "$p0"=="tell" /if "$p2"~~"heal" /call CastHeal $p1
/return

| In CastHeal $p0 is now the name of the person since it is the first parameter for this function
Sub CastHeal
  /target $p0
  /if $target(distance,nopredict)>200 {
      /tell $p0 You are too far away for me to heal you!
   } else {
      /tell $p0 Heal incoming...
      /cast 1
      | Replace with SpellSub for better accuracy...
   }
/return
FYI $lasttell gives you the name of the last person to give you a tell
- Plazmic

Amadeus
The Maestro
The Maestro
Posts: 2036
Joined: Sat Jun 29, 2002 3:51 pm

Post by Amadeus » Wed Jul 10, 2002 3:43 am

So, using Plazmic's solution above (which I like), we would need to add:

Code: Select all

#chat chat
at the top rather than:

Code: Select all

#chat tell
Or, does it matter?

Plazmic
The One
The One
Posts: 800
Joined: Fri Jun 14, 2002 12:31 am
Contact:

Post by Plazmic » Wed Jul 10, 2002 4:25 am

No.. it's still using #chat tell
#chat chat is only for /chat channels (/join auction; /1 WTB a life)
- Plazmic

Amadeus
The Maestro
The Maestro
Posts: 2036
Joined: Sat Jun 29, 2002 3:51 pm

Post by Amadeus » Wed Jul 10, 2002 5:02 am

Oh yea.... now I see :)

gingertips
a hill giant
a hill giant
Posts: 230
Joined: Wed Jun 26, 2002 3:47 am
Location: Tseu-Qorcam

Post by gingertips » Wed Jul 10, 2002 5:39 am

2 other things Im thinking of changing this script for...

Gonna set up one of spell slots for lessor succor, another for an AE spell like avalanche & have these memmed all the time in case of emergency for my char im powerlevelling.

So that means i have to lose 2 spells from the list & I'd like to use SOW, Skin like & Strength of all in the same spell slot. So macro will need to react to a tell & will automatically remove the spell memmed, open spell book and memm the spell required and then cast it.

My 2nd change would be for a Druid taxi service. I send a tell saying pls meet me at WComms Druid ring. Druid will memm the ring of commons spell, then cast. Once there, will autogroup up with my character, memm the circle spell i ask & then cast it. once arrived, will automatically gate back to safe point druid was bound to...

Anyone doing anything similar to this already?