ShamanDot.mac

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

Moderator: MacroQuest Developers

YKW-28983
a hill giant
a hill giant
Posts: 252
Joined: Sun Dec 01, 2002 11:37 pm

ShamanDot.mac

Post by YKW-28983 » Fri Dec 27, 2002 4:42 pm

Code: Select all

| Name:		shamandot.mac
| Author:		YKW-28983
| Description:	Written to automate the tasks of a shaman. 
| Updates:		This kills Ice Giants Fine! Included Running around.

#include spellcast.mac

#define /targetself "/target myself"
#define ROOTSpell "Instill"
#define SLOWSpell "Togor's Insects"
#define DOT1Spell "Envenomed Bolt"
#define DOT2Spell "Plague"
#define REGENERATION "Chloroplast"
#define SOW "Spirit of Wolf"
#define RootStatus v1
#define SlowStatus v2
#define DOT1Status v3
#define DOT2Status v4
#define MOB1Status v5

#event RootGone "Your Instill spell has worn off."
#event SlowGone "Your Togor's Insects spell has worn off."
#event DOT1Gone "Your Envenomed Bolt spell has worn off."
#event DOT2Gone "Your Plague spell has worn off."
#event MobGONE "You have slain a"

Sub Main
 :VarSet
 /varset RootStatus 0
 /varset SlowStatus 0
 /varset DOT1Status 0
 /varset DOT2Status 0
 /varset MOB1Status 0
 :BuffCheck
 /if n $char(buff,"REGENERATION")==0 /call REGENERATION
 /if n $char(buff,"Spirit of Wolf")==0 /call SPIRIT
 :ManaCheck
 /if n $char(mana,pct)<95 {
  /echo Getting Mana
  /call Med
 }
 :TargetCheck
 /if $char(target)==myself {
  /echo You Crazy Fuck, You Can't Cast On Yourself!
  /return
 }
 :ROOT
 /doevents
 /if n MOB1Status==1 {
 /echo Mob Died. MANA = $char(mana,pct)% HP = $char(hp,pct)% EXP = $char(exp)%
 /return
 }
 /if n $target(hp,pct)<20 {
  /call Finish
 }
 /if n $RootStatus==0 {
  /sit off
  /call cast "ROOTSpell"
  /varset RootStatus 1
  /if n $target(distance)<80 {
   /goto :RUN
  }
 }
 :SLOW
 /doevents
 /if n $RootStatus==0 {
  /goto :ROOT
 }
 /if n $SlowStatus==0 {
  /sit off
  /call cast "SLOWSpell"
  /varset SlowStatus 1 
 }
 :DOT1
 /doevents
 /if n $RootStatus==0 {
  /goto :ROOT
 }
 /if n $SlowStatus==0 {
  /goto :SLOW
 }
 /if n $DOT1Status==0 {
  /sit off
  /call Cast "DOT1Spell"
  /varset DOT1Status 1
 }
 :DOT2
 /doevents
 /if n $RootStatus==0 {
  /goto :ROOT
 }
 /if n $SlowStatus==0 {
  /goto :SLOW
 }
 /if n $DOT2Status==0 {
  /sit off
  /call cast "DOT2Spell"
  /varset DOT2Status 1
 }
 /goto :ROOT

:Run
 /sendkey down W
 /if n $target(distance,nopredict)>80 {
  /sendkey up W
  /face nopredict
  /goto :ROOT
 }
 /goto :Run

/return

Sub REGENERATION
 /sit off
 /delay 2s
 /targetself
 /call cast "REGENERATION"
 /sit on
/return

Sub SPIRIT
 /sit off
 /delay 2s
 /targetself
 /call cast "SOW"
 /sit on
/return

Sub Med
 :loopstart
 /if n $char(hp,pct)<50 /call HealMe
 /if n $char(mana,pct)>95 /if n $char(hp,pct)<75 /call HealMe 
 /if n $char(hp,pct)>50 /if n $char(mana,pct)<95 /call Canni
 /if n $char(mana,pct)>95 /if n $char(hp,pct)>95 {
  /echo Your Ready To Go!
  /beep
  /delay 1s
  /beep
  /delay 1s
  /beep
 /return
 }
 /goto :loopstart
/return
 
Sub HealMe
 /sit off
 /delay 2s
 /targetself
 /call cast "Greater Healing"
 /sit on
 /delay 6s
/return

Sub Canni
 /sit off
 /call cast "Cannibalize"
 /sit on
 /delay 6s
/return

Sub Finish
  :loopstart
 /if n $char(hp,pct)<50 /call HealMe
 /if n $char(mana,pct)>95 /if n $char(hp,pct)<75 /call HealMe 
 /if n $char(hp,pct)>50 /if n $char(mana,pct)<95 /call Canni
 /if n $char(mana,pct)>95 /if n $char(hp,pct)>95 {
  /echo Your Mana Is Good
  /beep
  /return
 }
 /goto :loopstart
/return

Sub Event_RootGone
 /varset RootStatus 0
/return

Sub Event_SlowGone
 /varset SlowStatus 0

Sub Event_DOT1Gone
 /varset DOT1Status 0
/return

Sub Event_DOT2Gone
 /varset DOT2Status 0
/return

Sub Event_MobGONE
 /varset MOB1Status 1
/return 

Works great for IG's in everfrost. Have Fun. Added Run

YKW-28983
a hill giant
a hill giant
Posts: 252
Joined: Sun Dec 01, 2002 11:37 pm

Post by YKW-28983 » Sun Dec 29, 2002 8:34 pm

**BUMP**

Added the ability to run away. I've been doing ice giants fine level 49+


Am thinking about adding a script that kills while afk, but don't want it to be like that.

UPDATE:

On another note, if your doing this with your pet, set it to no taunt.

/pet taunt off


How do I check for a mob being up at a certain loc? I just want it to beep when he's up i'm usually watching T.V

User avatar
SingleServing
a hill giant
a hill giant
Posts: 195
Joined: Tue Dec 17, 2002 11:00 pm

Post by SingleServing » Thu Jan 02, 2003 5:32 am

If you find out the spawn time you can have the macro set a timer upon a kill. Then have it beep when the timer runs out. Cheap fix but your spawn by loc probly only work if your standing near the entrence to the cave between all three, then when one spawns you /target npc giant /face /if facing east beep 3 times for back giant /shrug

Oh might wana add a loot command after target dies, pretty easy if you have the MacroKit
[color=DarkBlue]Everything,[/color] [color=DarkBlue][b]is[/b][/color] [color=black]black[/color] [color=DarkBlue]and[/color] [color=white]white[/color][color=DarkBlue], when you zoom out it looks[/color] [color=gray]grey[/color][color=DarkBlue].[/color]

YKW-28983
a hill giant
a hill giant
Posts: 252
Joined: Sun Dec 01, 2002 11:37 pm

Post by YKW-28983 » Fri Jan 03, 2003 11:33 pm

Have you ever camped the giants before? I'm assuming you have.. In which you would know that the 3 spawns are not all yours and you are normally camping just one..... there fore a simple /macro checkig [North,South,Back] would be fine... so that it would only do north or south or back. not all at once... the locs of the giants are the same always for each tower and the one out back so it would be verry easy. but you can't check by loc or target by loc which screws up my plan...

YKW-28983
a hill giant
a hill giant
Posts: 252
Joined: Sun Dec 01, 2002 11:37 pm

Post by YKW-28983 » Fri Jan 17, 2003 10:54 pm

Formatted over my comp and don't really like to copy and paste, I like to code, so am going to re-write this and update it a little to include the pet and healing it when necessary, usually not needed.