rendered paste body; this is the word that you get in a tell to start buffing.
variable string keyword = "fuck"
variable string inviteKeyword = "invite"
variable string followKeyword = "follow"
; this is the name of the person that the bot auto-follows
variable string followWho = "Bubastes"
; the number of people you want to remember (DO NOT GO PAST 70)
variable string numSlots = "50"
; buff list
variable string numBuffs = "5"
variable string buff1 = "Expansive Mind V"
variable string buff2 = "Vast Psyche"
variable string buff3 = "Temporal Acceleration II"
variable string buff4 = "Second Sight I"
variable string buff5 = "Acumen III"
variable string buff6 = "Union of Thought VI"
variable string buff7 = ""
variable string buff8 = ""
variable string buff9 = ""
variable string buff10 = ""
variable string numSelfBuffs = "6"
variable string invis = "Mirage"
; DO NOT EDIT ANYTHING UNDER THIS!
; DO NOT EDIT ANYTHING UNDER THIS!
; DO NOT EDIT ANYTHING UNDER THIS!
; DO NOT EDIT ANYTHING UNDER THIS!
; DO NOT EDIT ANYTHING UNDER THIS!
; DO NOT EDIT ANYTHING UNDER THIS!
; DO NOT EDIT ANYTHING UNDER THIS!
variable string ver = "0.1006"
variable int debugMode = "0"
variable int mode = "0"
variable string aName = "NONE"
variable string aName2 = "NONE"
variable string aName3 = "NONE"
variable string aName4 = "NONE"
variable string aName5 = "NONE"
variable string aName6 = "NONE"
variable string aName7 = "NONE"
variable string aName8 = "NONE"
variable string aName9 = "NONE"
variable string aName10 = "NONE"
variable string aName11 = "NONE"
variable string aName12 = "NONE"
variable string aName13 = "NONE"
variable string aName14 = "NONE"
variable string aName15 = "NONE"
variable string aName16 = "NONE"
variable string aName17 = "NONE"
variable string aName18 = "NONE"
variable string aName19 = "NONE"
variable string aName20 = "NONE"
variable string aName21 = "NONE"
variable string aName22 = "NONE"
variable string aName23 = "NONE"
variable string aName24 = "NONE"
variable string aName25 = "NONE"
variable string aName26 = "NONE"
variable string aName27 = "NONE"
variable string aName28 = "NONE"
variable string aName29 = "NONE"
variable string aName30 = "NONE"
variable string aName31 = "NONE"
variable string aName32 = "NONE"
variable string aName33 = "NONE"
variable string aName34 = "NONE"
variable string aName35 = "NONE"
variable string aName36 = "NONE"
variable string aName37 = "NONE"
variable string aName38 = "NONE"
variable string aName39 = "NONE"
variable string aName40 = "NONE"
variable string aName41 = "NONE"
variable string aName42 = "NONE"
variable string aName43 = "NONE"
variable string aName44 = "NONE"
variable string aName45 = "NONE"
variable string aName46 = "NONE"
variable string aName47 = "NONE"
variable string aName48 = "NONE"
variable string aName49 = "NONE"
variable string aName50 = "NONE"
variable string aName51 = "NONE"
variable string aName52 = "NONE"
variable string aName53 = "NONE"
variable string aName54 = "NONE"
variable string aName55 = "NONE"
variable string aName56 = "NONE"
variable string aName57 = "NONE"
variable string aName58 = "NONE"
variable string aName59 = "NONE"
variable string aName60 = "NONE"
variable string aName61 = "NONE"
variable string aName62 = "NONE"
variable string aName63 = "NONE"
variable string aName64 = "NONE"
variable string aName65 = "NONE"
variable string aName66 = "NONE"
variable string aName67 = "NONE"
variable string aName68 = "NONE"
variable string aName69 = "NONE"
variable string aName70 = "NONE"
variable string inviteName = "NONE"
variable string followName = "NONE"
variable string currentStage = "NONE"
variable string stage = "NONE"
function debugIt(string Message)
{
if (${debugMode} == 1)
echo "Debug Mode: ${Message}"
}
function tellParse(string aText, int Number)
{
if ${aText.Find[From ]} && (${Number} == 15)
{
call checkTell "${aText}"
}
}
function checkTell(string aText)
{
;echo "test: ${aText.Token[1," "].Token[2,":"]}"
variable string checkName = "NONE"
if (${currentStage.Equal[NONE]})
{
if (${aText.Find[${keyword}]})
{
checkName:Set[${aText.Token[2,">"].Token[1,"<"]}]
if (${Me.ToPawn.Title.Equal[${Pawn[${checkName}].Title}]})
{
aName:Set[${aText.Token[2,">"].Token[1,"<"]}]
;TimedCommand 1 "VGExecute /reply gotcha"
VGExecute "/reply gotcha"
echo "aName: ${aName}"
currentStage:Set[BUFF]
}
else
{
VGExecute "/reply Sorry, you are not in my guild"
}
}
elseif (${aText.Find[${inviteKeyword}]})
{
checkName:Set[${aText.Token[2,">"].Token[1,"<"]}]
if (${Me.ToPawn.Title.Equal[${Pawn[${checkName}].Title}]})
{
if (${Me.IsGroupLeader} || !${Me.IsGrouped})
{
inviteName:Set[${aText.Token[2,">"].Token[1,"<"]}]
VGExecute "/invite ${inviteName}"
}
else
{
VGExecute "/reply Sorry, not group leader"
}
}
else
{
VGExecute "/reply Sorry, your not in my guild"
}
}
elseif (${aText.Find[${followKeyword}]})
{
followName:Set[${aText.Token[2,">"].Token[1,"<"]}]
echo "follow: ${followName}"
if (${Me.ToPawn.Title.Equal[${Pawn[${followName}].Title}]} && ${Pawn[${followName}].Distance} > 2 && ${Pawn[${followName}](exists)})
{
currentStage:Set[FOLLOW]
call buffMe
}
else
{
VGExecute "/reply Sorry, your not in my guild"
}
}
}
elseif (!${currentStage.Equal[FOLLOW]})
{
if (${aText.Find[${keyword}]})
{
variable int n = "1"
while (${n:Inc}<=${numSlots})
{
checkName:Set[${aText.Token[2,">"].Token[1,"<"]}]
if (${Me.ToPawn.Title.Equal[${Pawn[${checkName}].Title}]} && ${aName${n}.Equal[NONE]})
{
aName${n}:Set[${aText.Token[2,">"].Token[1,"<"]}]
echo "aName${n}: ${aName${n}}"
TimedCommand ${n} "VGExecute /reply ${aName${n}} You are #${n} to be buffed. Please wait"
return
}
}
}
elseif (${aText.Find[${inviteKeyword}]})
{
checkName:Set[${aText.Token[2,">"].Token[1,"<"]}]
if (${Me.ToPawn.Title.Equal[${Pawn[${checkName}].Title}]})
{
if (${Me.IsGroupLeader} || !${Me.IsGrouped})
{
inviteName:Set[${aText.Token[2,">"].Token[1,"<"]}]
VGExecute "/invite ${inviteName}"
}
else
{
VGExecute "/reply Sorry, not group leader"
}
}
}
}
elseif (${currentStage.Equal[FOLLOW]})
{
followName:Set[${aText.Token[2,">"].Token[1,"<"]}]
echo "follow: ${followName}"
if (${Me.ToPawn.Title.Equal[${Pawn[${followName}].Title}]} && ${Pawn[${followName}].Distance} > 2 && ${Pawn[${followName}](exists)})
{
currentStage:Set[FOLLOW]
}
else
{
VGExecute "/reply Sorry, your not in my guild"
}
}
}
function buffMe()
{
echo "Calling BuffMe"
if (${currentStage.Equal[BUFF]})
{
call checkDead
wait 1
call checkInvis "buffMe"
wait 1
variable int i = "0"
while (${i:Inc}<=${numBuffs})
{
if (${Pawn[${aName}].Distance} > 25)
{
VGExecute "/tell ${aName} Sorry you are too far away for buffs."
aName:Set[NONE]
return
}
call GlobalRecovery
echo "Buffing ${aName} with ${buff${i}} - ${i}"
VGExecute /targetdefensive ${aName}
wait 2
Me.Ability[${buff${i}}]:Use
call GlobalRecovery
}
echo "Finished Buffing ${aName}"
if (${aName2.Equal[NONE]})
{
variable int num = "0"
num:Set[${Math.Rand[100]}]
if (${num} > 50)
{
VGExecute "/party BUFFING DONE YOU GUYS SUCK!"
}
else
{
VGExecute "/party everyones buffed now pwn!"
}
currentStage:Set[NONE]
}
else
{
aName:Set[${aName2}]
variable int n = "2"
while (${n:Inc}<=${numSlots})
{
variable int o = "1"
o:Set[${n}-1]
if (!${aName${n}.Equal[NONE]})
{
aName${o}:Set[${aName${n}}]
aName${n}:Set[NONE]
currentStage:Set[BUFF]
}
}
if (${aName3.Equal[NONE]})
{
aName2:Set[NONE]
}
}
}
else
{
call checkBuffs
}
}
function checkInvis(stage)
{
if (${Me.Effect[${invis}](exists)})
{
while (${Me.Effect[${invis}](exists)})
{
wait 1
}
call ${stage}
}
}
function checkBuffs()
{
if (${Me.HealthPct}>0)
{
call checkInvis "checkBuffs"
wait 1
variable int i=0
variable string defTarget = "NONE"
defTarget:Set[${Me.DTarget}}
while (!${Me.InCombat})
{
call GlobalRecovery
if ${Me.IsCasting}
{
do
{
wait 1
}
while ${Me.IsCasting}
}
if (${i}>=${numSelfBuffs})
{
i:Set[0]
}
if (!${Me.Effect[${buff${i:Inc}}](exists)})
{
call checkDead
call GlobalRecovery
VGExecute "/targetdefensive ${Me}"
echo ${i}
echo "Buffing ${buff${i}}"
Me.Ability[${buff${i}}]:Use
VGExecute "/targetdefensive ${defTarget}"
}
if (${i} == ${numSelfBuffs})
{
echo "Calling BuffMe--CheckBuffs"
call buffMe
}
}
}
}
atom(script) VG_OnIncomingText(string Text, string ChannelNumber, string ChannelName)
{
; Send it off for processsing
call tellParse "${Text}" "${ChannelNumber}"
}
function GlobalRecovery()
{
do
{
;echo "IN GLOBAL RECOVERY"
wait 1
}
while (${VG.InGlobalRecovery})
waitframe
}
function main(int debugMode)
{
;Load ISXVG if its not loaded
if ( !${ISXVG.IsReady(exists)} )
{
ext isxvg
}
if ( !${ISXVG.IsReady} )
{
echo "VGC: ISXVG Not loaded or updating... Waiting..."
while !${ISXVG.IsReady}
wait 10
echo "VGC: ISXVG done updating... will now continue"
}
if (${debugMode} == 1)
{
echo " | BuffBot v${ver} by ~Someone Special~ DEBUG MODE!!! |"
echo " following: ${followWho} || buff keyword: ${keyword} "
}
else
{
echo " | BuffBot v${ver} by ~Someone Special~ |"
echo " following: ${followWho} || buff keyword: ${keyword} "
}
; binding the incoming chat log
Event[VG_OnIncomingText]:AttachAtom[VG_OnIncomingText]
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; MAIN SCRIPT ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
while (1)
{
if (${Me.HealthPct}<=0)
{
call checkDead
}
do
{
while (!${Pawn[name,${followName}](exists)})
{
wait 3
}
if (${Pawn[${followName}].Distance} > 3)
{
Pawn[name,${followName}]:Face
VG:ExecBinding[AutoRun]
echo -> Starting follow (Distance: ${Pawn[${followName}].Distance})
while ((${Pawn[${followName}].Distance} > 1) && ${Pawn[name,${followName}](exists)})
{
Pawn[name,${followName}]:Face
waitframe
}
if (${Pawn[name,${followName}](exists)})
{
echo -> Stopping follow (Distance: ${Pawn[${followName}].Distance})
}
else
{
echo -> Stopping follow ('${followName}' no longer exists)
}
VG:ExecBinding[AutoRun,release]
}
}
while (${currentStage.Equal[FOLLOW]})
call buffMe
}
}
function checkDead()
{
if (${Me.HealthPct} == 0)
{
variable int num = "0"
num:Set[${Math.Rand[100]}]
if (${num} <= 25)
{
VGExecute "/say I have died!!!! MUST...GET...RESSED......"
}
elseif (${num} >= 25 && ${num} < 50)
{
VGExecute "/say ...the.....ba....t.t...l...e......must.........go......on......"
}
elseif (${num} >=50 && ${num} < 75)
{
VGExecute "/say dont let my death go in vain!!!"
}
elseif (${num} > 75)
{
VGExecute "/say god, I suck"
}
else
{
VGExecute "/emote dies in agony."
}
echo "Waiting for Res"
do
{
wait 10
VGExecute /rezaccept
}
while (${Me.HealthPct} == 0)
VGExecute "/say I AM A....L....I....V.....E!!!!!"
call main
}
}
function atexit()
{
echo " | BuffBot v${ver} by ~Someone Special~ has been ended |"
}