Buff command, Orders Bot to cast a buff on declared target, bit then monitors buff timing and recasts when buff drops
Code: Select all
sub Do-buff
/if n $strlen("$p1")<=0 /return
/if n $strlen("$p2")<=0 /return
/if n $strlen("$p3")<=0 {
/varset l1 $p2
} else /if n $strlen("$p4")<=0 {
/varset l1 "$p2 $p3"
} else /if n $strlen("$p5")<=0 {
/varset l1 "$p2 $p3 $p4"
} else {
/varset l1 "$p2 $p3 $p4 $p5"
}
/if n $char(book,"$l1")<1 {
|/tell $MasterName I don't know that spell
/return
}
/varadd LastBuff 1
/if $p1==$char(name,clean) {
/target myself
}else {
/target pc $p1
}
/varset a(8,$LastBuff) $p1
/delay 5
/tell $MasterName Casting $l1 on %t
/varset a(9,$LastBuff) "$l1"
/call SpellSub "$l1"
/varset t$LastBuff $spell("$l1",duration)s
/return
sub event_timer
/if $p0==39 /return
/if "$target(name,clean)"!="$a(8,$p0)" {
/if "$a(8,$p0)"=="$char(name,clean)" {
/target myself
}else {
/target pc /target($a(8,$p0))
}
}
/call SpellSub "$a(9,$p0)"
/varset t$p0 $p1s
/return
Aggessive turns it on and off, Events has bot defend itself when attacked
Code: Select all
#Event GettingHit "YOU for"
#Event AttackedMiss " YOU, but "
||| Toggle Aggressive on and off.
Sub Do-setaggressive
/if n $strlen("$p1")<=0 {
/tell $MasterName Aggressive=$Aggressive
/return
}
/if $p1=="off" {
/varset Aggressive 0
/tell $MasterName I'll ignore attacks
}
/if $p1=="on" {
/varset Aggressive 1
/tell $MasterName I'll fight back if attacked
}
/return
Sub Event_GettingHit
/if ($combat==TRUE || $Aggressive!="1") /return
/if ("$p0"!~"say" && "$p0"!~"group") /if ("$p0"!~"out of character" && "$p0"!~"shout") /if "$p0"!~"guild" {
/if $target()==TRUE /if "$target(type)"!="NPC" /target clear
/if $target()==TRUE /if $combat==FALSE /if $target(type)=="NPC" /if $Aggressive==1 {
/tell $MName1 I am being attacked by $target(name,clean)
/delay 2
/press Backward
/attack on
}
}
/return
Sub Event_AttackedMiss
/if ($combat==TRUE || $Aggressive!="1") /return
/if ("$p0"!~"say" && "$p0"!~"group") /if ("$p0"!~"out of character" && "$p0"!~"shout") /if "$p0"!~"guild" {
/if $target()==TRUE /if "$target(type)"!="NPC" /target clear
/if $target()==TRUE /if $combat==FALSE /if $target(type)=="NPC" {
/tell $MName1 I am being attacked by $target(name,clean)
/delay 2
/press Backward
/attack on
}
}
/return
Farm command, bot will find the closest mob on a list of mobs and hunt it down
in sub main
Code: Select all
Sub Do-farm
/if $p1=="off" {
/varset AFarm 0
/return
}
/if n $strlen("$p1")<=0 {
/return
}
/varadd AFarm 1
/if n $strlen("$p2")<=0 {
/varset a(11,$AFarm) "$p1"
} else /if n $strlen("$p3")<=0 {
/varset a(11,$AFarm) "$p1 $p2"
} else /if n $strlen("$p4)<=0 {
/varset a(11,$AFarm) "$p1 $p2 $p3"
} else {
/varset a(11,$AFarm) "$p1 $p2 $p3 $p4"
}
/return
Sub FarmNext
/if $Combatstatus==1 /return
/if $Combat==TRUE /return
/if n $FarmWait<5 {
|wait before starting next farm to check for aggro
/varadd FarmWait 1
/delay 1s
/return
}
/varset FarmWait 0
/target clear
/sit off
/if "$a(11,1)"=="level" {
/varset l1 $char(level)
/varsub l1 LevelRange
/if n $l1<1 /varset $l1 1
/varset l2 $char(level)
/varadd l2 LevelRange
/target npc range $l1 $l2 radius 800 nopcnear 60
} else {
/varset l1 1
/varset l2 300000
:FarmLoop
/target npc $a(11,$l1) nopcnear 60 radius 800
/if n $target(distance)<$l2 {
/varset l2 $target(distance)
/varset l3 $l1
}
/varadd l1 1
/if n $l1<=$AFarm /goto :FarmLoop
/target nopcnear 60 npc $a(11,$l3) radius 800
}
/delay 5
/attack on
/return
PL command, bot targets and watches 1 pc and heals as needed, Uses same target as Afollow, usually want them both on
in Main loop
Code: Select all
/if $APower=="1" /call CheckTargetHealth blah $FollowTarget
Code: Select all
Sub Do-pl
/if $p1=="off" {
/varset APower 0
/return
}
/if n $strlen("$p1")<=0 {
/return
} else /if n $strlen("$p2")<=0 {
/varset FollowTarget "$p1"
/varset APower 1
} else /if n $strlen("$p3")<=0 {
/varset FollowTarget "$p1 $p2"
/varset APower 1
} else /if n $strlen("$p4)<=0 {
/varset FollowTarget "$p1 $p2 $p3"
/varset APower 1
} else {
/varset FollowTarget "$p1 $p2 $p3 $p4"
/varset APower 1
}
/return
||| Monitor PL Target health and call heal subs.
Sub CheckTargetHealth
/if $IsHealer==0 /return
/doevents
/if $p1=="me" {
/if "$target(name,clean)"!="$MasterName" /target $MasterName
} else /if n $strlen("$p2")<=0 {
/if "$target(name,clean)"!="$p1" /target "$p1"
} else /if n $strlen("$p3")<=0 {
/if "$target(name,clean)"!="$p1 $p2" /target "$p1 $p2"
}
/if n $spawn($group($GroupMember),hp,pct)<41 /if n $spawn($group($GroupMember),hp,pct)>=1 {
/if "$spawn($target(id),class)"=="Warrior" /call Tankheal
/if "$spawn($target(id),class)"=="Paladin" /call Tankheal
/if "$spawn($target(id),class)"=="Shadow Knight" /call Tankheal
/if "$spawn($target(id),class)"=="Monk" /call Tankheal
/if "$spawn($target(id),class)"=="Ranger" /call Tankheal
}
/if n $spawn($target(id),hp,pct)>=1 {
/if n $spawn($target(id),hp,pct)<41 {
/call CasterHeal
}
}
/if n $spawn($target(id),hp,pct)>=1 {
/if n $spawn($target(id),hp,pct)<26 {
/call FastTankheal
}
}
/doevents
/return