; 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 |" }