here ya go... heavily notated...
pretty customizable...
REQUIRES: spellcast.ini written by plazmic ( i will include my version )
to change which spells you cast:
look for
and put in the name as it appears from your spell gem there
param0 is the name of who you are assisting every 10 seconds
change the timers to how long you want to wait between doing the actions
default:
assist: param0
rebuff: 20 minutes
assist: 10 seconds
spells:
Spiritual Dominion
Arag's Celerity
Dexterity
Stamina
Spirit Of Rellic
this macro CHECKS if you are mounted at start
and if so, will keep you mounted
AND WILL END IF YOU DIE
THIS CAN ONLY CAST SPELLS YOU HAVE MEMMED
without further waiting, the macro:
Beastgroup.mac
Code: Select all
|beastgroup.mac
|usage /mac beastgroup "param0"
|where param0 is the name of the person you are assisting
|
|written for Sephin
|by Drunkensloth
|version 0.1
|leaving it very customizable through parameters
|includes Plazmics spellcast.ini
|YOU MUST HAVE HORSE CAST BEFORE YOU START THIS MACRO OR IT WONT RECAST
|change the names of the spell according to your level
|THIS WILL NOT ATTACK PLAYERS
|
|
#event slain "slain by"
#include spellcast.ini
Sub Main
|this makes sure you dont break mez or anything silly like that
/assist off
|here are you timers for pet/rebuff
/declare sictimer Timer
/declare rebuff Timer
|change timers here 10s=10seconds 20m=twenty minutes
/varset sictimer 10s
/varset rebuff 20m
/if $char(mounted)==TRUE {
/varset horsy 1
/declare horsecast global
|hotkey your horse/drogmar and set this to which hotkey
/varset horsecast 1
}
|this if statement checks to see if your mounted, and if so
|sets which key to press to remount, as well as changing sit status
:timingloop
|this is the loop that determines when to do everything
/doevents
/if n @horsy!=1 /if $char(state)!="SIT" /sit
|checks to see if you using a horse, if no horse, and your not sitting, you will sit
/if n @sictimer<=0 /call Pet
/delay 5
/if n @rebuff<=0 /call Rebuff
/delay 5
/if n @horsy==1 /if n $char(buff,"Summon:")==0 /call horsy
/delay 5
/goto :timingloop
/return
Sub Pet
|this is the pet attack sub
/varset sictimer 10s
:retarget
/assist "@param0"
/delay 1s
|assists whom you specified and waits for a target
/if $target(type)!="NPC" {
/echo Target is not an NPC! Retargetting
/goto :retarget
}
|reloops assist sub because it didnt get a valid target
/pet attack
|tells pet to attack your target
/return
Sub rebuff
/if $char(state)!="STAND" /stand
|this is the rebuffing sub
/echo rebuffing!
/varset rebuff 20m
|clears target
/press esc
/press esc
|targets your pet
/press f1
/press f1
|buffs your pet
/echo rebuffing pet with Arags, Rellic, Dex and Sta
/call Cast "Arag's Celerity"
/delay 5
/call Cast "Spirit of Rellic"
/delay 5
/call Cast "Dexterity"
/delay 5
/call Cast "Stamina"
/delay 5
|clearing target to make sure group gets spiritual spell
/press esc
/press esc
/call Cast "Spiritual Dominion"
/delay 5
/return
Sub horsy
/if $char(state)!="STAND" /stand
|this is the horse recast sub
/echo mounting!
/press 1
:Waitmount
/if "$char(casting)"=="TRUE" {
/delay 1
/goto :Waitmount
}
/delay 1s
/echo remounted!
/return
Sub Event_slain
/delay 2m
/echo you died!
|waits for you to finish zoning after you die
/if $char(state)!="SIT" /sit
/delay 5
/camp
/end
/return
Plazmics spellcast.ini
Code: Select all
|Plazmic + 1 line change by Imperfect
|Oct 9, 2003 - Updated to work with new vars and $char(casting) - gf
|Oct 11, 2003 - switched some logic, removed defines - gf
#event Fizzle "Your spell fizzles!"
#event Interrupt "Your casting has been interrupted!"
#event Interrupt "Your spell is interrupted."
#event Recover "You haven't recovered yet..."
#event Recover "Spell recovery time not yet met."
#event Resisted "You target resisted the "
#event OutOfMana "Insufficient Mana to cast this spell!"
#event OutOfRange "Your target is out of range, get closer!"
#event NoLOS "You cannot see your target."
#event Stunned "You cannot cast while stunned"
#event Standing "You must be standing to cast a spell"
#event Collapse "Your gate is too unstable, and collapses."
Sub Cast(SpellName)
/if n $char(gem,"@SpellName")==0 /return CAST_UNKNOWNSPELL
:StartCast
/call ClearReturnValue
/if n $char(gem,"@SpellName")<0 {
/delay 0
/goto :StartCast
}
/cast "@SpellName"
:WaitCast
/if "$char(casting)"=="TRUE" {
/delay 1
/goto :WaitCast
}
/doevents Fizzle
/doevents Interrupt
/doevents Recover
/doevents Standing
/doevents OutOfRange
/doevents OutOfMana
/doevents NoLOS
/doevents Resisted
/if "$return"=="CAST_RESTART" /goto :StartCast
/if "$return"!="CAST_SUCCESS" /return "$return"
/return CAST_SUCCESS
Sub ClearReturnValue
/return CAST_SUCCESS
Sub Event_Fizzle
/return CAST_RESTART
Sub Event_Interrupt
/return CAST_RESTART
Sub Event_Recover
/delay 5
/return CAST_RESTART
Sub Event_Standing
/stand
/return CAST_RESTART
Sub Event_Collapse
/return CAST_RESTART
Sub Event_OutOfMana
/return CAST_OUTOFMANA
Sub Event_OutOfRange
/return CAST_OUTOFRANGE
Sub Event_NoLOS
/return CAST_CANNOTSEE
Sub Event_Stunned
/return CAST_STUNNED
Sub Event_Resisted
/return CAST_RESISTED
have fun enjoy