All pastes #594899 Raw Edit

rwar

public text v1 · immutable
#594899 ·published 2007-06-29 05:11 UTC
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 |"
}