Afk druid updated June 10th 2005

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

Moderator: MacroQuest Developers

User avatar
unknownerrors
a ghoul
a ghoul
Posts: 133
Joined: Tue Oct 12, 2004 7:00 am
Location: Las vegas USA

Afk druid updated June 10th 2005

Post by unknownerrors » Wed Apr 06, 2005 10:01 am

june 10th 2005

fix an issue with DoTs not firing, seems i had some declare's screwed up, but thats fixed. tinkering around with the port requests. current GATE US, and Nexus work as commands. but oddly after zoning the marco will start spaming the MQ2 window. sadly the shammie macro this is based on is also doing this. will be on the look out for a fix.

may 21st 2005

fixed a few bugs.. changed the group issue that was causing all the damed spam and lagging my systems.


took out all the ports and reworking how and where in the macro they get tiggered.. the gate us commd will now work. macro is also pertty stable now. used this morning for about an hour in combat.

april 8th 2005:
fixed the gate now issue in a around about way, now instead of having only the gate now command, every druid grp, port spell can be casted on command. thanks to druid_00
after any port command is issued the macro will end and have to be returned on the down side. looking to fix that tho.

i started porting a fine afk shm macro for druid use whike testing i found only one flaw so far =/

the succor (gate now) command returns Bad {} block pairing (in red.)
on lines, 888, no sub listed, 527, (grpbuffs) and 314 (main)

any one have any ideas?

heres what i got.

Code: Select all

 

| Shambot Version 1.0c    by Ranma
| ported for Druid use:    by Unknownerrors
|
| Anit much changed, hacked out a few of the chat commands as druid do have half the buff shammie's do
| the ones listed do work
|
_______________________________________________________________|
|
| I started with the Excellent Base routine by Hubba and have
| added a lot of additional feature and abilities
|
| Usage:
| 1. Target player you like to assist (main tank is good)
| 2. Start the script with: /mac <scriptname> [main assist] [chat channel] [controller]
| 3. Parameters are optional defaults are built in
|
|
| Features: commands work in tell or group
|
| The following commands will target the sender and cast the spells
| requested on the sender: [thorns] [Nines] [Str] [Sow] [Invis] [REGEN]
|
| The following commands: [buff] [buff me] will rebuff a person
|
| The following commands: [Buff them] will rebuff another group
|
| The following commands: [Follow me] [end follow] [stop] are for moving Druid
|
| The [add] or [Snare] command are good in combat when there are adds
| Target the add and it will be Debuffed and Snared
|
| During combat he will only do requests for heals and detrimentals
|
|
| [gate now] will memorize Succor and port the grp to safe point.
|
| Added a chat channel to echo all non command word tells to controller
| added a vtell to controller on incomming tells
|
| Use "help" for more help ( !help is incomplete! )
|_______________________________________________________________|
|
| -!- Basis of this script is Version: v0.5c by Hubba
| Awesome script, I hope you like what I have added
|
|_______________________________________________________________|
| -!- This Script Uses spell_routines.inc by Rusty
| -!- Exptrack snippet from exptracker.mac by Raebis, with tweaks from Phoenix (not tested)
| -!- Wait4Rez snippet from wait4rez.mac by fantum409
|
|_______________________________________________________________|

#chat group
#chat tell

#Event   ToggleVariable   "[MQ2] Toggle #1#"
#Event   ToggleVariable   "[MQ2] Toggle #1# #2#"
#Event   OutDoor          "#*#outdoors#*#"
#Event   OutDoor          "You can not summon a mount here."
#Event   Zoning           "You have entered#*#"
#Event   Hungry           "#*#are hungry#*#"
| #Event   Enrageon         "#*#ENRAGED#*#"
| #Event   Enrageoff        "#*#no longer enraged#*#"
#Event   Thirsty          "#*#are thirsty#*#"
#Event   ImDead           "You have been slain by#*#"
#Event   Invited          "#*#To join the group, click on the 'FOLLOW' option, or 'DISBAND' to

cancel#*#"

#include Spell_Routines.inc

Sub Main

| The spell will be memmed in the listed order.
| Gem1 = Ensnare
| Gem2 = Hand of Ro
| Gem3 = Winter's Frost
| Gem4 = Wildfire
| Gem5 = Swarming Death
| Gem6 = Immolation of Ro
| Gem7 = Nature's Infusion
| Gem8 = Succor
| Gem9 = Savage Roots


   |------------------------------------------------------------
   |chat channel and controller
   |------------------------------------------------------------

   /declare CChannel      outer "somechat"
   /declare ChatController outer "sometoon"
 
   |------------------------------------------------------------
   |spells update as needed. 
   |------------------------------------------------------------

   /declare SpellSnare              outer "Ensnare"
   /declare SpellNines              outer "Protection of the Nine"
   /declare SpellDeBuff             outer "Hand of Ro"
   /declare SpellColdDD             outer "Winter's Frost"
   /declare SpellFireDD             outer "Wildfire"
   /declare SpellMagicDot           outer "Swarming Death"
   /declare SpellHeal               outer "Nature's Infusion"
   /declare SpellRoot               outer "Savage Roots"
   /declare SpellDS                 outer "Legacy of Thorn"
   /declare SpellSOW                outer "Flight of Eagles"
   /declare SpellFireDot            outer "Immolation of Ro"
   /declare SpellGATE               outer "Succor"
   /declare SpellFOOD               outer "Summon Food"
   /declare SpellDRINK              outer "Summon Drink"
   /declare SpellSTR                outer "Nature's Might"
   /declare SpellInvis              outer "Foliage Shield"
   /declare SpellMregen             outer "Mask of the Forest"
   /declare SpellREGEN              outer "Oaken Vigor"
   /declare SpellPet                outer "Nature Walkers Behest"
   /declare SpellNexus              outer "Circle of The Nexus"
   /declare SpellWoS                outer "Circle of The slaughter"
   /declare Spellblood              outer "Circle of The Bloodfeilds"
   |------------------------------------------------------------
   |mount type
   |------------------------------------------------------------

   /declare Mount              outer "Tan Rope Bridle"

   |------------------------------------------------------------
   |grp buffs
   |------------------------------------------------------------
   /declare SpellGrpBuff[4] string outer
   /varset SpellGrpBuff[1] "Protection of Seasons"
   /varset SpellGrpBuff[2] "Legacy of Thorn"
   /varset SpellGrpBuff[3] "blessing of the nine"
    /varset SpellGrpBuff[4] "Mask of the Forest"


   |------------------------------------------------------------
   |single buffs
   |------------------------------------------------------------
   /declare SpellSingleBuff[4] string outer
   /varset SpellSingleBuff[1] "Nature's Might"
   /varset SpellSingleBuff[2] "Protection of the Seasons"
   /varset SpellSingleBuff[3] "Nettle Shield"
   /varset SpellSingleBuff[4] "Protection of the Nine"
   |------------------------------------------------------------
   |combat stuff.
   |------------------------------------------------------------

   /declare AssistAt      int   outer 99
   /declare CombatAt      int   outer 97

   /declare DebuffAt      int   outer 85

   /declare CastMagicDotAt    int   outer 80
   /declare CastFireDotAt    int   outer 80
   /declare DotMana       int   outer 40

   /declare SnareAt        int   outer 80
   /declare RootMana    int   outer 15

   /declare ColdDDAt        int   outer 40
   /declare FireDDAt        int   outer 90
   /declare NukeMana      int   outer 50

   /declare SitAt         int   outer 80
   /declare BuffMana      int   outer 30
   /declare MinMana       int   outer 30
   
   /declare following     int   outer 0
   /declare follname      string outer NULL

   |------------------------------------------------------------
   |tweak heals 
   |------------------------------------------------------------

   /declare CasterHeals   int   outer 60
   /declare MeleeHeals    int   outer 50
   /declare TankHeal      int   outer 55

   |------------------------------------------------------------
   |to do list
   |------------------------------------------------------------

   /declare DoSnare            outer TRUE
   /declare DoDebuff           outer TRUE
   /declare DoMagicDot        outer TRUE
   /declare DoFireDot         outer TRUE
   /declare DoBuffs            outer TRUE
   /declare DoSow              outer TRUE
   /declare DoColdDD           outer FALSE
   /declare DoFireDD           outer FALSE
   /declare DoHeal             outer TRUE

   /squelch /alias malo /echo toggle malo
   /squelch /alias slow /echo toggle slow
   /squelch /alias fastslow /echo toggle fastslow
   /squelch /alias root /echo toggle root
   /squelch /alias dot /echo toggle dot
   /squelch /alias nuke /echo toggle nuke`
   /squelch /alias nukeat /echo toggle nukeat   
   /squelch /alias buffs /echo toggle buffs
   /squelch /alias sow /echo toggle sow
   /squelch /alias assistat /echo toggle assistat
   /squelch /alias dotat /echo toggle dotat
   /squelch /alias rootat /echo toggle rootat
   /squelch /alias combatat /echo toggle combatat
   /squelch /alias healmeleeat /echo toggle healmeleeat
   /squelch /alias healcastersat /echo toggle healcastersat
   /squelch /alias healtankat /echo toggle healtankat
   /squelch /alias assist /echo toggle assist
   /squelch /alias healat /echo toggle healat
   /squelch /alias status /echo toggle show
   /squelch /alias show /echo toggle show   
   /squelch /alias help /echo toggle help
   /squelch /alias verbose /echo toggle verbose   
   
   /declare TargetArray[4] string outer
   /declare MobSnared        outer FALSE
   /declare MobDebuffed         outer FALSE
   /declare MobRooted      outer FALSE
   /declare MobMagicDoted       outer FALSE
   /declare MobFireDoted       outer FALSE
   /declare CombatOn       outer TRUE
   /declare Engaged          outer FALSE
   /declare LowMana         outer FALSE

   /declare M_Assist       string outer
   /declare OutDoors       outer TRUE   

   /declare Exper float outer
   /declare AAExp float outer
       
   /varset Exper ${Me.Exp}
   /varset AAExp ${Me.AAExp}

   
   /call MemSpells
   

   |------------------------------------------------------------
   |Target a player for main assist
   |------------------------------------------------------------
   
      /if (${Defined[Param0]}) {
          /varset M_Assist ${Param0}
          /echo Assist set to ${M_Assist}
      } else {
          /if (!${Target.ID} || ${Target.Type.NotEqual[PC]}) {
              /echo Your Do not have a main assist, make sure its a player character!
              /endmacro
          }
          /varset M_Assist ${Target.CleanName}
          /echo Assist set to ${M_Assist}
      }

      /assist off

      /if (${Defined[Param1]}) /varset CChannel ${Param1}
      /leaveall
      /join ${CChannel}
      /1 I am here!
      /echo Joined channel ${CChannel}

      /if (${Defined[Param2]}) /varset ChatController ${Param2}
      /vtell ${ChatController} 005
      /tell ${ChatController} I am here!
      /echo My master is ${ChatController}


   |------------------------------------------------------------
   |Main loop
   |------------------------------------------------------------


:Main_Loop

   |- Check for Standing if less than sitat then sit
   /if ( ${Me.State.Equal[Stand]} && ${Me.PctMana}<${SitAt}) /sit

   |- Summon Mount if outdoors
   /if (!${Me.Mount.ID} && ${OutDoors}) /call cast ${Mount} item 4s
   

   |- Check for low mana state
   /call Check_Mana

   |- Check for new events in chat etc etc...
   /doevents
   
   |- Do we move?
   :Hold_Main
   /if (${Me.Moving}) /goto :Hold_Main
   
   |- Check for mobs and do combat stuff
    /call GetTarget
   /if (${CombatOn}) /call Combat       

   |- Group Heals
   /call Check_grpHPs

   |- Check for Standing if less than sitat then sit
   /if ( ${Me.State.Equal[Stand]} && ${Me.PctMana}<${SitAt}) /sit

   |- Group Buffs if more than BuffMana mana
   /if (${Me.PctMana}>=${BuffMana} && ${DoBuffs}) /call GrpBuffs
   
   |- Group Heals
   /call Check_grpHPs

   /goto :Main_Loop
/return

   |------------------------------------------------------------
   |Main loop is over.
   |moving on to Subs
   |------------------------------------------------------------
 






   |------------------------------------------------------------
   |meming spells from list.
   |------------------------------------------------------------

Sub MemSpells

   /echo Memming spells. Hang on.
   /if ( !${Me.Gem[${SpellSnare}]} ) {
      /memspell 1 ${SpellSnare}
      /delay 25
   }
   /if ( !${Me.Gem[${SpellDeBuff}]} ) {
      /memspell 2 ${SpellDeBuff}
      /delay 25
  }
   /if ( !${Me.Gem[${SpellColdDD}]} ) {
      /memspell 3 ${SpellColdDD}
      /delay 25
   }
   /if ( !${Me.Gem[${SpellFireDD}]} ) {
      /memspell 4 ${SpellFireDD}
      /delay 25
   }
   /if ( !${Me.Gem[${SpellMagicDot}]} ) {
      /memspell 5 ${SpellMagicDot}
      /delay 25
   }
   /if ( !${Me.Gem[${SpellFireDot}]} ) {
      /memspell 6 ${SpellFireDot}
      /delay 25
   }
   /if ( !${Me.Gem[${SpellHeal}]} ) {
      /memspell 7 ${SpellHeal}
      /delay 25
   }
   /if ( !${Me.Gem[${SpellGate}]} ) {
      /memspell 8 ${SpellGate}
      /delay 30
   }
   /if ( !${Me.Gem[${SpellRoot}]} ) {
      /memspell 9 ${SpellRoot}
      /delay 30
   }

   |/if ( ${Window[SpellBookWnd].Open} ) /windowstate SpellBookWnd close
   /echo Spells are memmed.

/return

   |------------------------------------------------------------
   |combat sub
   |------------------------------------------------------------

Sub Combat
   /if (${CombatOn} && !${MobDebuffed} && ${DoDebuff} && ${Target.ID}==${TargetArray[4]}) /call DeBuff
   /if (${CombatOn} && !${MobSnared} && ${DoSnare} && ${Target.ID}==${TargetArray[4]}) /call Snare
   }

   |- Check for new events in chat etc etc...
   /doevents

   /if (${CombatOn} && ${DoFireDot} && !${MobFireDoted} && ${Me.PctMana}>=${RootMana} && ${Target.PctHPs}<=${CastFireDotAt}) {
      /call cast ${SpellMagicDot} gem6
      /varset MobFireDoted TRUE
   }
  /if (${CombatOn} && ${DoMagicDot} && !${MobMagicDoted} && ${Me.PctMana}>=${RootMana} &&${Target.PctHPs}<=${CastMagicDotAt}) {
       /call cast ${SpellMagicDot} gem5
      /varset MobMagicDoted TRUE
   }
   /if (${CombatOn} && ${DoColdDD} && ${Me.PctMana}>=${NukeMana} && ${Target.PctHPs}<=${ColdDDAt}) {
      /call cast ${SpellColdDD} gem3
   }
   /if (${CombatOn} && ${DoFireDD} && ${Me.PctMana}>=${NukeMana} && ${Target.PctHPs}<=${FireDDAt}) {
      /call cast ${SpellFireDD} gem4
   }
   /if (${CombatOn} && ${DoRoot} && ${Me.PctMana}>=${RootMana} && ${Target.PctHPs}<=${RootAt}) {
      /call cast ${SpellRoot} gem9
      /varset MobRooted TRUE
   }

   |- Check for new events in chat etc etc...
   /doevents

|- EndCombat

   /target ${TargetArray[3]}
   
   /if (!${Target.Name.Equal[${TargetArray[3]}]} || !${Target.ID}) {
      /varset MobSnared FALSE
      /varset MobDebuffed FALSE
      /varset MobMagicDoted FALSE
      /varset MobFireDoted FALSE
      /varset CombatOn FALSE
      /varset Engaged FALSE   
     
      /varset TargetArray[1] NULL
      /varset TargetArray[2] NULL
      /varset TargetArray[3] NULL
      /varset TargetArray[4] NULL

  }
/return

   |------------------------------------------------------------
   |debuff sub
   |------------------------------------------------------------

Sub DeBuff
:DeBuff_Loop
   /if (${Target.PctHPs}<=${CombatAt} && ${Target.ID}==${TargetArray[4]}) {
      /if (${Me.CurrentMana}<${Spell[${SpellDeBuff}].Mana}) {
         /echo *** Shit ! I don't have mana to Debuff %T !!
      } else {
         /call cast ${SpellDeBuff} gem2 6s
         /if (${Macro.Return.Equal["CAST_INTERRUPTED"]}) /goto :DeBuff_Loop
         /varset MobDebuffed TRUE
      }
   }
/return

   |------------------------------------------------------------
   |Snare sub
   |------------------------------------------------------------

Sub Snare
   /if (${Target.PctHPs}<=${CombatAt} && ${Target.ID}==${TargetArray[4]}) {
      /if (${Me.CurrentMana}<${Spell[${SpellSnare}].Mana}) {
         /echo Shit ! I don't have mana to Malo %T
      } else {
      :Snare_Loop
         /call cast ${SpellSnare} gem1 6s
         /if (${Macro.Return.Equal["CAST_INTERRUPTED"]}) /goto :Snare_Loop
         /if (${Macro.Return.Equal["CAST_IMMUNE"]}) {
            /if (${Verbose}) /gsay %T is IMMUNE to my Snare !
         
            /varset MobSnared TRUE
         }
         /if (${Macro.Return.Equal["CAST_RESISTED"]}) {
            /if (!${FastSlow}) {
               /if (${Verbose}) /gsay *** %T RESISTED Snare ! Trying again
                /goto :Snare_Loop
             }
            /varset MobSnared TRUE
          }
         /if (${Macro.Return.Equal["CAST_SUCCESS"]}) {
            /if (${Verbose}) /gsay  %T is Snared
            /varset MobSnared TRUE
          }

      }
   }
/return



   |------------------------------------------------------------
   |getting target
   |------------------------------------------------------------


Sub GetTarget
   /assist ${M_Assist}
   /delay 3
   /if (${Target.Type.Equal[NPC]}) /if (${Target.Distance}<=${AssistAt} && ${Target.ID}!=${TargetArray[4]} && ${Target.PctHPs}<=${CombatAt}) {
      /varset TargetArray[1] ${Target.CleanName}
      /varset TargetArray[2] ${Target.Level}
      /varset TargetArray[3] ${Target.Name}
      /varset TargetArray[4] ${Target.ID}
      /varset CombatOn TRUE


      /varset MobSnared FALSE
      /varset MobDebuffed FALSE
      /varset MobMagicDoted FALSE
      /varset MobFireDoted FALSE   

      /varset AAExp ${Math.Calc[${Me.PctAAExp}-${AAExp}]}
      /varset Exper ${Math.Calc[${Me.PctExp}-${Exper}]}

      /echo EXP: ${Exper}:${Me.PctExp}% - AAXP: ${AAExp}:${Me.PctAAExp}% - ${Math.Calc[${Macro.RunTime}/60]} minutes
      /popup EXP: ${Exper}:${Me.PctExp}% - AAXP: ${AAExp}:${Me.PctAAExp}% - ${Math.Calc[${Macro.RunTime}/60]} minutes
      /varset Exper ${Me.PctExp}
      /varset AAExp ${Me.PctAAExp}
   }
/return 


| ################### Buff the group with buffs from the SpellGrpBuff array


Sub GrpBuffs
   /declare i int local 1
   /for i 1 to ${SpellGrpBuff.Size}
      /doevents
      /if (${Spell[${SpellGrpBuff[${i}]}].Mana} > ${Me.CurrentMana}) /return
      /if ( !${Me.Buff[${SpellGrpBuff[${i}]}].ID} ) {
         /target pc ${M_Assist}
         /delay 3
         /echo *** Hang on ! Rebuffing ${SpellGrpBuff[${i}]}
         /call cast ${SpellGrpBuff[${i}]} gem5 5s
      }
   /next i
/return

|################### Check if any group member needs heal
Sub Check_grpHPs
   /declare i int local 1
   
   /for i 1 to ${Group}

   /if (${Group.Member[${i}].Class.Name.Equal[Cleric]} || ${Group.Member[${i}].Class.Name.Equal[Druid]} || ${Group.Member[${i}].Class.Name.Equal[Wizard]} || ${Group.Member[${i}].Class.Name.Equal[Magician]} || ${Group.Member[${i}].Class.Name.Equal[Necromancer]} || ${Group.Member[${i}].Class.Name.Equal[Enchanter]}) /if (${Group.Member[${i}].PctHPs}<=${CasterHeals}) {
      /target pc ${Group.Member[${i}]}
      /if (${Me.CurrentMana}<${Spell[${SpellHeal}].Mana}) {
         /echo *** Shid ! I don't have mana to heal ${Group.Member[${i}]}
      } else /if (${Target.Distance}<=100) {
         /if (${Verbose}) /gsay *** ${SpellHeal} on %T
         /call cast ${SpellHeal} gem6 4s
      }
   }
   
   /if (${Group.Member[${i}].Class.Name.Equal[Warrior]} || ${Group.Member[${i}].Class.Name.Equal[Monk]} || ${Group.Member[${i}].Class.Name.Equal[Rouge]} || ${Group.Member[${i}].Class.Name.Equal[Ranger]} || ${Group.Member[${i}].Class.Name.Equal[Beast]} || ${Group.Member[${i}].Class.Name.Equal[Shadow Knight]} || ${Group.Member[${i}].Class.Name.Equal[Paladin]}) /if (${Group.Member[${i}].PctHPs}<=${MeleeHeals} && ${Group.Member[${i}].Name.NotEqual[${M_Assist}]}) {
      /target pc ${Group.Member[${i}]}
      /if (${Me.CurrentMana}<${Spell[${SpellHeal}].Mana}) {
         /echo *** Shid ! I don't have mana to heal ${Group.Member[${i}]}
      } else /if (${Target.Distance}<=100) {
         /if (${Verbose}) /gsay *** ${SpellHeal} on %T
         /call cast ${SpellHeal} gem6 4s
      }
   }

   /if (${Group.Member[${i}].Name.Equal[${M_Assist}]} && ${Group.Member[${i}].PctHPs}<=${TankHeal}) {
      /target pc ${Group.Member[${i}]}
      /if (${Me.CurrentMana}<${Spell[${SpellHeal}].Mana}) {
         /echo *** Shid ! I don't have mana to heal ${Group.Member[${i}]}
      } else /if (${Target.Distance}<=100) {
         /if (${Verbose}) /gsay *** ${SpellHeal} on %T
         /call cast ${SpellHeal} gem6 4s
      }
   }

   /next i
/return

| ################### Check Mana level and report it

Sub Check_Mana
   /if (${Math.Calc[${Me.MaxMana}*${MinMana}/100]} >= ${Me.CurrentMana} && !${LowMana}) {
      /varset LowMana TRUE
      /gsay I am LOM...
   } else /if (${Math.Calc[${Me.MaxMana}*${BuffMana}/100]} <= ${Me.CurrentMana} && ${LowMana}) {
      /gsay I am GTG...     
      /varset LowMana FALSE 
   }
/return

   |------------------------------------------------------------
   |are we hungry?
   |------------------------------------------------------------

Sub Event_Hungry
   /if (${Engaged}) /return   
   /echo I am Hungry
   /gsay I am summoning food... please hold pulls
   /declare i int local 1
   /for i 1 to 8
      /autoinventory
      /delay 1
      /call cast ${SpellFOOD} gem5 5s
   /next i
   /autoinventory
   /gsay GTG now
/return

   |------------------------------------------------------------
   |are we thristy?
   |------------------------------------------------------------

Sub Event_Thirsty
   /if (${Engaged}) /return   
   /echo I am Thirsty   
   /gsay I am summoning drink... please hold pulls
   /declare i int local 1
   /for i 1 to 8
      /autoinventory
      /delay 1
      /call cast ${SpellDRINK} gem5 5s
   /next i
   /autoinventory
   /gsay GTG now
/return


   |------------------------------------------------------------
   |ENRAGE ON
   |------------------------------------------------------------


Sub Event_Enrageon
    /if (${PetOn}) {
       /echo Mob is ENRAGED!
       /pet back off
    }
/return

   |------------------------------------------------------------
   |ENRAGE OFF 
   |------------------------------------------------------------

Sub Event_Enrageoff
    /if (${PetOn}) {
       /echo Mob is no longer Enraged!
       /pet attack 
    }
/return

   |------------------------------------------------------------
   |outdoors check
   |------------------------------------------------------------

Sub Event_OutDoor
   /echo This is an indoor zone. Sorry.
   /varset OutDoors FALSE
/return

   |------------------------------------------------------------
   |zoning
   |------------------------------------------------------------

Sub Event_Zoning
   /varset TargetArray[1] ${Target.CleanName}
   /varset TargetArray[2] ${Target.Level}
   /varset TargetArray[3] ${Target.Name}
   /varset TargetArray[4] ${Target.ID}
   /varset CombatOn TRUE
       

      /varset MobSnared FALSE
      /varset MobDebuffed FALSE
      /varset MobMagicDoted FALSE
      /varset MobFireDoted FALSE
/return

   |------------------------------------------------------------
   |Group invites
   |------------------------------------------------------------


Sub Event_Invited
   /invite
/return

   |------------------------------------------------------------
   |On death.
   |------------------------------------------------------------

Sub Event_ImDead
   /echo Bummer !
   :Zone_Loop
      /if ( ${Me.Bound.ID} != ${Zone.ID} ) /goto :Zone_Loop
   /delay 5s
   /consent group
   /delay 5
   /gsay Im ready to get rez.
   /gsay I have consented group.
   /call Wait4Rez
   /delay 20
   /call MemSpells
   /if (${Me.State.Equal[Stand]}) /sit

| We do some short meditate before we start again.

   :Meditate
      /delay 1s
      /if (${Me.CurrentMana} < 300) /goto :Meditate
   /return

   |------------------------------------------------------------
   |Wait4Rezz
   |------------------------------------------------------------

Sub Wait4Rez
   :waitforrez
      /if (!${Window[ConfirmationDialogBox].Open}) {
         /delay 5s ${Window[ConfirmationDialogBox].Open}
         /goto :waitforrez
      }
      /if (${Window[ConfirmationDialogBox].Open}) /notify ConfirmationDialogBox Yes_Button  leftmouseup
      :zonein
         /delay 5
         /squelch /target mycorpse
         /delay 5
         /if (${Target.CleanName.NotEqual[${Me}'s corpse]}) /goto :zonein
         /if (${Target.CleanName.Equal[${Me}'s corpse]}) {
            /delay 3s
            /call Loot_Corpse
         } else /goto :zonein
   /return

   |------------------------------------------------------------
   |Loot corpse
   |------------------------------------------------------------

Sub Loot_Corpse
   /declare LootTotal int local 0
   /declare LootSlot int local
   /squelch /target mycorpse
   /if (${Target.Type.NotEqual[CORPSE]} || !${Target.ID}) {
      /echo ** Can't target my corpse.
      /return
   }   
   /corpse
   /delay 1s
   /loot
   /delay 1s
   /if (${Me.State.NotEqual[BIND]}) {
      /echo ** Massive lag right now... Aborting looting.
      /return
   }
   :LootLag
      /if (${LootTotal}!=${Corpse.Items}) {
         /varset LootTotal ${Corpse.Items}
         /delay 5
         /goto :LootLag
      }
   /for LootSlot 1 to ${LootTotal}
   :LootItem
      /itemnotify loot${LootSlot} rightmouseup
      /delay 3
      /if (${Corpse.Item[${LootSlot}].ID}) {
         /delay 2
         /goto :LootItem
      }
   /next LootSlot
   /delay 5
   /echo ** Done looting my corpse.
   /notify LootWnd DoneButton leftmouseup
   /return

Sub Event_Chat(string ChatType,string ChatSender,string ChatText)

      /if (!${ChatType.Equal[GROUP]} && !${ChatType.Equal[TELL]}) /return
     /if (${ChatText.Equal[heal]} || ${ChatText.Equal[heal me]}) {
         /target pc ${ChatSender}
         /if (${Target.Type.Equal[PC]} && ${Target.Distance}<=100) {
             /tell ${ChatSender} ${SpellHeal} is incomming !!
             /call cast ${SpellHeal}
             }
      /return
      }

      /if (${ChatText.Equal[hot]}) {
         /target pc ${ChatSender}
         /if (${Target.Type.Equal[PC]} && ${Target.Distance}<=100) {
             /tell ${ChatSender} ${SpellHoT} is incomming !!
             /call cast ${SpellHoT}
             }
      /return
      }


   |------------------------------------------------------------
   |Mob requests
   |------------------------------------------------------------
   

      /if (${ChatText.Equal[slow]} || ${ChatText.Equal[add]}) {
         /assist ${ChatSender}
         /if (${Target.Type.Equal[NPC]} && ${Target.Distance}<=100) {
            /call cast ${SpellDebuff} gem3 6s
            /call cast ${SpellSlow} gem2 6s
            /tell ${ChatSender} %T is ${SpellDeBuff} and slowed with ${SpellSlow}
            }
      /return
      }

      /if (${ChatText.Equal[root]}) {
         /assist ${ChatSender}
         /if (${Target.Type.Equal[NPC]} && ${Target.Distance}<=100) {
            /call cast ${SpellRoot} gem9 5s
            /tell ${ChatSender} %T is Rooted with ${SpellRoot}
            }
      /return
      }


      /if (${ChatText.Equal[nuke]}) {
         /assist ${ChatSender}
         /if (${Target.Type.Equal[NPC]} && ${Target.Distance}<=100) {
            /call cast ${SpellNuke} gem9
            }
      /return
      }
       
      /if (${ChatText.Equal[dot]}) {
         /assist ${ChatSender}
         /if (${Target.Type.Equal[NPC]} && ${Target.Distance}<=100) {
            /call cast ${SpellDot} gem8 5s
            }
      /return
      }

      /if (${Engaged}) /return   



   |------------------------------------------------------------
   |Buff requests.
   |------------------------------------------------------------

      /if (${ChatText.Equal[nines]}) {
         /target pc ${ChatSender}
         /if (${Target.Type.Equal[PC]} && ${Target.Distance}<=100) {
             /tell ${ChatSender} ${SpellNines} is incomming to you ${ChatSender}!!!
             /call cast ${SpellNines} gem4 4s
        }   
         /return
        }
      /if (${ChatText.Equal[Regen]}) {
         /target pc ${ChatSender}
         /if (${Target.Type.Equal[PC]} && ${Target.Distance}<=100) {
             /tell ${ChatSender} ${SpellREGEN} is incomming to you ${ChatSender}!!!
             /call cast ${SpellREGEN} gem4 4s
        }   
        /return
        }   
      /if (${ChatText.Equal[Thorns]}) {
         /target pc ${ChatSender}
         /if (${Target.Type.Equal[PC]} && ${Target.Distance}<=100) {
             /tell ${ChatSender} ${SpellDS} is incomming to you ${ChatSender}!!!
             /call cast ${SpellDS} gem4 4s
        }   
        /return
        }
      /if (${ChatText.Equal[sow]}) {
         /target pc ${ChatSender}
         /if (${Target.Type.Equal[PC]} && ${Target.Distance}<=100) {
             /tell ${ChatSender} ${SpellSOW} is incomming to you ${ChatSender}!!!
             /call cast ${SpellSOW} gem5 5s
        }   
         /return   
        }
      /if (${ChatText.Equal[Invis]}) {
         /target pc ${ChatSender}
         /if (${Target.Type.Equal[PC]} && ${Target.Distance}<=100) {
             /tell ${ChatSender} ${SpellInvis} is incomming to you ${ChatSender}!!!
             /call cast ${SpellInvis} gem4 4s
        }   
        /return
        }   
      /if (${ChatText.Equal[STR]}) {
         /target pc ${ChatSender}
         /if (${Target.Type.Equal[PC]} && ${Target.Distance}<=100) {
             /tell ${ChatSender} ${SpellSTR} is incomming to you ${ChatSender}!!!
             /call cast ${SpellSTR} gem4 4s
        }   
        /return
        }   
      /if (${ChatText.Equal[gate us]}) {
         /target pc ${ChatSender}
         /if (${Target.Type.Equal[PC]} && ${Target.Distance}<=100) {
             /gsay i am casting Succor ! hold on to your pants! 
             /call cast ${SpellGATE} gem4 4s
        }   
        /return 
        }   
      /if (${ChatText.Equal[nexus]}) {
         /target pc ${ChatSender}
         /if (${Target.Type.Equal[PC]} && ${Target.Distance}<=100) {
             /gsay i am casting Nexus ! hold on to your pants! 
             /call cast ${SpellNexus} gem4 4s
        }   
        /return 
        }   
      /if (${ChatText.Equal[WOS]}) {
         /target pc ${ChatSender}
         /if (${Target.Type.Equal[PC]} && ${Target.Distance}<=100) {
             /gsay i am casting Nexus ! hold on to your pants! 
             /call cast ${SpellWoS} gem4 4s
        }   
        /return 
        }
   |------------------------------------------------------------
   | Auto following 
   |------------------------------------------------------------

 /if (${ChatText.Equal[Follow me]} || ${ChatText.Equal[Follow]}) {
    /delay 5
    /if (!${Spawn[${ChatSender}].ID}) {
       /e ${ChatSender}  is not in zone for me to follow!
       /return
    }
    /varset follname ${ChatSender} 
    /varset following 1
    /tell ${ChatSender} I am following you!!!
    /if ( ${Me.Mount.ID} ) /dismount
       :targetfoll`
          /target pc ${follname}
          /delay 1s ${Target.Name.Equal[${follname}]}
          /if (${Target.Name.Equal[${follname}]}) {
          /goto :Loop
    } else /goto :targetfoll

    :Loop
    /face fast
    /if (${Target.Distance}>40) /keypress forward hold
    /if (${Target.Distance}<39) /keypress back
    /if (!${Target.ID}) /varset following 0
    /doevents
    /if ((${Target.Name.Equal[${follname}]})&&(${following}>0)) {
       /goto :Loop
    } else {
       /keypress forward
       /keypress back
    }
 }


   |------------------------------------------------------------
   | stop follow
   |------------------------------------------------------------

 /if (${ChatText.Equal[End follow]} || ${ChatText.Equal[stop]}) {
    /varset following 0
    /keypress forward
    /keypress back
    /timed 50 /face pc ${follname}
    /tell ${ChatSender} I Stopped following you!!!
    /return 
 }


   |------------------------------------------------------------
   | Single Rebuff
   |------------------------------------------------------------


/if (${ChatText.Equal[buff me]}) {
   /echo Request for Single Buff
   /declare i int local 1
   /for i 1 to ${SpellSingleBuff.Size}
   /if (${Spell[${SpellSingleBuff[${i}]}].Mana} > ${Me.CurrentMana}) {
      /tell ${ChatSender} ${ChatSender} Sorry I am getting LOM       
      /echo DAMN.. LOM..
       :Hold_Single_Rebuff
          /if (${Spell[${SpellSingleBuff[${i}]}].Mana} > ${Me.CurrentMana}) {
             /goto :Hold_Single_Rebuff             
           }
    }
   /target pc ${ChatSender}
   /delay 3
   /echo *** Hang on ! Buffing ${SpellSingleBuff[${i}]}
   /tell ${ChatSender} Buffing ${SpellSingleBuff[${i}]} now...
   /call cast ${SpellSingleBuff[${i}]} gem5 5s     
   /next i
   /return
}

 
   |------------------------------------------------------------
   | Single Rebuff other
   |------------------------------------------------------------

 /if (${ChatText.Equal[buff]}) {
    /echo Request for Single Buff other
    /assist ${ChatSender}
    /declare i int local 1
    /for i 1 to ${SpellSingleBuff.Size}
    /if (${Spell[${SpellSingleBuff[${i}]}].Mana} > ${Me.CurrentMana}) {
       /tell ${ChatSender} ${ChatSender} Sorry I am getting LOM       
       /echo DAMN.. LOM... 
       :Hold_Single_Rebuff
          /if (${Spell[${SpellSingleBuff[${i}]}].Mana} > ${Me.CurrentMana}) {
             /goto :Hold_Single_Rebuff             
           }
    }
    /delay 3
    /echo *** Hang on ! Rebuffing ${SpellSingleBuff[${i}]}
    /tell ${ChatSender} Buffing ${SpellSingleBuff[${i}]} now...
    /call cast ${SpellSingleBuff[${i}]} gem5 7s     
    /next i
    /return
 }
   |------------------------------------------------------------
   |buff another group
   |------------------------------------------------------------

 /if (${ChatText.Equal[buff them]}) {
    /assist ${ChatSender}
    /declare i int local 1
    /for i 1 to ${SpellGrpBuff.Size}       
    /if (${Spell[${SpellGrpBuff[${i}]}].Mana} > ${Me.CurrentMana}) {
       /tell ${ChatSender} ${ChatSender}, Sorry I am getting LOM                 
       /echo DAMN.. LOM... 
       :Hold_Group_Rebuff
          /if (${Spell[${SpellGrpBuff[${i}]}].Mana} > ${Me.CurrentMana}) {
          /goto :Hold_Group_Rebuff             
          }
    }
    /delay 3
    /echo *** Hang on ! Rebuffing ${SpellGrpBuff[${i}]}
    /tell ${ChatSender} Buffing ${SpellGrpBuff[${i}]} now...
    /call cast ${SpellGrpBuff[${i}]} gem5 7s     
    /next i
    /return
 }

/return





may our enemys shed tears of crimson apon the field of battle.
- vicious, of cowboybeop

everyone is a potential enemy, everywhere is a potential battlefield.
-zensunni wisdom, of Dune.

lastly - I'll be your huckleberry
-Doc Holliday
webmaster of:
http://unknownerrors.net
http://insideeq.com
http://alphapirates.com
http://reviewthis.info

captainhollywooddave
orc pawn
orc pawn
Posts: 10
Joined: Sun Nov 21, 2004 7:24 am

Post by captainhollywooddave » Fri Jul 22, 2005 11:04 pm

Ok ive messed with this macro and i like it, i like that its pretty simple and doesnt do all the stuff i dont need and i can edit it pretty easy.

however not being so great at coding i have tried to add a snippet to make it heal pets in the group but keep getting spam of
cannot find item : NULL. Also it keeps standing and sitting . but it is working just getting that spam and i just took out the sit stand code.

Wonder if you have an easy way to make it heal the groups pets, cause i use this to heal a pet in the group more than a tank.

Thanks

TheNewGuy
a snow griffon
a snow griffon
Posts: 307
Joined: Sat Jul 10, 2004 9:33 am
Contact:

Post by TheNewGuy » Sat Jul 23, 2005 2:26 am

This macro was only intended for use in Crushbone. That's 100% posivitely why you are getting errors from code you haven't posted here.
[quote="dont_know_at_all"][quote="sybarite"]Um.. search works fine for me (used spell_routines.inc)... Try scrolling down you lazy fuck.

http://www.macroquest2.com/phpBB2/viewtopic.php?t=8964&highlight=spellroutines+inc[/quote]

That's great but he's looking for move.inc, you fucking spastic colon.[/quote]

captainhollywooddave
orc pawn
orc pawn
Posts: 10
Joined: Sun Nov 21, 2004 7:24 am

Post by captainhollywooddave » Sat Jul 23, 2005 9:26 am

Wonder if you have an easy way to make it heal the groups pets, cause i use this to heal a pet in the group more than a tank.
that is my question, im not looking for someone to look at my code,the code is already here!

looks like some of you on these boards just wait here all day to jump in and flame someone.

thanks again

User avatar
unknownerrors
a ghoul
a ghoul
Posts: 133
Joined: Tue Oct 12, 2004 7:00 am
Location: Las vegas USA

going though changes.

Post by unknownerrors » Sat Jul 23, 2005 10:18 am

yeah i know this code it totally F%^Ked up atm, i made it right before the dev's started massivly fixing things that in turn made shitty code ( like mine ) not work so well. i will be repairing it, cause i dont like the other druid macro's too many .inc files or they do more then what i need or what ever.

the shmbot code which this is based on (because that macro owned my face) is also not working so well now..

thenewguy -
this code is used in wos, other 65+ outdoor zones most the time. you have to tweek the combatAT and what not to fit the mobs your going to be fight'in otherwise its not pretty. works best in outdoor zones on mount tho.

and as for healing pets i'll looking it when i do the repairs. if repair are ever possibile.
may our enemys shed tears of crimson apon the field of battle.
- vicious, of cowboybeop

everyone is a potential enemy, everywhere is a potential battlefield.
-zensunni wisdom, of Dune.

lastly - I'll be your huckleberry
-Doc Holliday
webmaster of:
http://unknownerrors.net
http://insideeq.com
http://alphapirates.com
http://reviewthis.info

captainhollywooddave
orc pawn
orc pawn
Posts: 10
Joined: Sun Nov 21, 2004 7:24 am

Post by captainhollywooddave » Sun Jul 24, 2005 10:39 am

Actually i got it to work pretty good, heals pets and all, only problem im having now is when its on autofollow and the person its following zones it spams the mqchatbox, but thats no biggie.

honestly i still like this one, fits what i was looking for best. simple i like that.

User avatar
unknownerrors
a ghoul
a ghoul
Posts: 133
Joined: Tue Oct 12, 2004 7:00 am
Location: Las vegas USA

mind posting the work?

Post by unknownerrors » Wed Jul 27, 2005 12:51 am

sweet mind saving me the time and posting the work?
may our enemys shed tears of crimson apon the field of battle.
- vicious, of cowboybeop

everyone is a potential enemy, everywhere is a potential battlefield.
-zensunni wisdom, of Dune.

lastly - I'll be your huckleberry
-Doc Holliday
webmaster of:
http://unknownerrors.net
http://insideeq.com
http://alphapirates.com
http://reviewthis.info

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

Re: Afk druid updated June 10th 2005

Post by xyilla » Mon May 05, 2025 10:00 pm


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

Re: Afk druid updated June 10th 2005

Post by xyilla » Mon May 05, 2025 10:36 pm


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

Re: Afk druid updated June 10th 2005

Post by xyilla » Mon May 05, 2025 10:37 pm


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

Re: Afk druid updated June 10th 2005

Post by xyilla » Mon May 05, 2025 10:39 pm


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

Re: Afk druid updated June 10th 2005

Post by xyilla » Mon May 05, 2025 10:40 pm


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

Re: Afk druid updated June 10th 2005

Post by xyilla » Mon May 05, 2025 10:41 pm


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

Re: Afk druid updated June 10th 2005

Post by xyilla » Mon May 05, 2025 10:42 pm


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

Re: Afk druid updated June 10th 2005

Post by xyilla » Mon May 05, 2025 10:43 pm