If told to, the script will auto-disarm, auto-kick, and heal if you are below 90% health. I haven't been able to test the healing part as the beastlord I made to test this script is still only level 6, so please, tell me if there's issues there.
Edited to remove the disarm code.
Edited to fix a typo
usage: /mac bstlrd-assist mindist maxdist fastdist
ex: /mac bstlrd-assist 5 10 12
Code: Select all
|bstlrd-assist.mac
|Beastlord Melee assist macro.
|version 1.1 by SephYaro
|Chaged from 1.0: Removed disarm coding form macro
|Original code taken from rogue-assist.mac written by Grimjack
#Turbo 72
#Event Enraged "has become ENRAGED"
#Event Offrage "is no longer enraged"
Sub Main
/declare RangeMin global
/declare RangeMax global
/declare FastRange global
/declare Combatstatus global
/declare CastTimer timer
/declare EnrageVar global
/declare DoHeal global
/declare HealSpell global
/declare DoKick global
|--------------------------------------
|Edit this to change autoheal
/varset DoHeal 0
/varset HealSpell "Light Healing"
|Edit this to change auto kick
/varset DoKick 1
|---------------------------------------
/varset RangeMin @Param0
/varset RangeMax @Param1
/varset FastRange @Param2
/varset Combatstatus 0
/varset EnrageVar 0
:Mainloop
/call Combatcheck
/if @Combatstatus=="1" /call RangeSub
/if @Combatstatus=="1" /call Kickit
/if @Combatstatus=="0" /call Healthcheck
/doevents
/goto :Mainloop
/return
Sub Healthcheck
/if n @DoHeal==0 /return
/if $char(casting)=="TRUE" /return
/if $char(ismoving)=="TRUE" /return
/if n $char(hp,pct)<90 {
/if $combat!="TRUE" {
/if $target()=="FALSE" {
/delay 5s
/cast "@HealSpell"
}
}
}
/return
Sub Kickit
/if n @DoKick==0 /return
/if n $char(ability,"Kick")!=-2 {
/doability "Kick"
}
/return
Sub Combatcheck
/if @EnrageVar=="1" {
/if $target()=="TRUE" {
/return
} else {
/varset EnrageVar 0
/varset Combatstatus 0
}
}
/if $target()=="FALSE" {
/varset Combatstatus 0
/if $combat=="TRUE" {
/attack off
}
/return
}
/if $target()=="TRUE" {
/if $combat=="TRUE" {
/varset Combatstatus 1
/return
}
}
/varset Combatstatus 0
/return
Sub Rangesub
/stand
/face nolook fast
/if n $target(distance)>=@FastRange /call Fastmove
/if n $target(distance)>@RangeMax {
/press up
}
/if n $target(distance)<@RangeMin {
/press down
}
/return
Sub Event_Enraged
/if $target()=="TRUE" {
/varset EnrageVar 1
/attack off
}
/return
Sub Fastmove
:fastmoveloop
/if $target()=="FALSE" {
/varset Combatstatus 0
/sendkey up up
/if $combat=="TRUE" {
/attack off
/return
}
}
/stand
/face nolook fast
/if n $target(distance)>@FastRange {
/sendkey down up
/attack off
}
/if n $target(distance)<=@FastRange {
/if @Combatstatus=="1" {
/if @EnrageVar=="0" {
/attack on
}
}
/sendkey up up
/return
}
/goto :fastmoveloop
/return
Sub Event_Offrage
/if $target()=="TRUE" {
/varset EnrageVar 0
/attack
}
}
/return
