Scanner.txt

From CLUMP
Revision as of 00:50, 7 February 2017 by Mwadmin (talk | contribs) (initial posting of separate scanner)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search
//------------------------------------------------------------------------------
// scanner.txt  version 3 (Array-fied)
//------------------------------------------------------------------------------
// Description:  (AKA "A Quick Reply")
// This macro allows you to quickly reply to anyone who thinks to you directly
// to you. It also manages think to groups and think to clan actions by default.
// The addition of arrays means additional scans can be added without writing a
// new conditional check for the phrase.
//------------------------------------Usage-------------------------------------
// "goscan" to start and "noscan" to stop.
// "goscan ?" for instructions on different commands.
// "t?" give the current target,
// "ts <name> [message]" sets the SSTarget and optionally sends a message
// "tc <message>" to think back to the SStarget
// "tt <message>" to think to selected player -- added v2.5.4
// SCROLL DOWN for Thinkgroup instructions
//------------------------------------Setup-------------------------------------
// Add "include "tc_macro.txt"" and "@login call GoScan" to
// your default macro file if you want it to strart automatically.
//------------------------------------Credit------------------------------------
// Reye for the Idea, X for the syntax check and suggestions,
// and everyone who direct SSed me to help debug.
// Written in BBedit.
//------------------------------------------------------------------------------

include "rankcount.mac"
set ssTarget "" //you must keep these variables outside of the functions and macros
set myStone "Sungem"  // set this to Suntone, Suncrystal or Sungem
set scanBreak 0		//they need to be global
set feedback 1 //Gives you feedback "tc target: @player"
set scanText ""
set timeStamps 1    // Set this to zero if you don't use timestamps** 
set playerName 0
set me 0
set keepAlive 0
set feedback 1 //useful for debug & more spam in your sidebar
set pointer 1 // pointer to current scanned phrase
set cap 12 //must equal checkText/reaction array total
set checkText[1] 	"thinks"
set checkText[2] 	"thinks to you, \""
set checkText[3] 	"Captain Barnac asks, \"Ah, "
set checkText[4] 	"Paul Deckand asks, \"Ah, "
set checkText[5] 	"Fird Lirden asks, \"Ah, "
set checkText[6] 	"No item named 'bag of kudzu seedlings"
set checkText[7]	"* Your bag of kudzu seedlings is full."
set checkText[8] 	"* You do not have room in your pack for anything else."
set checkText[9] 	"You can't take things out of your pack that quickly."
set checkText[10]	"• You return to your normal form."
set checkText[11]	"•You assume the shape of "
set checkText[12] 	"You cannot possibly use anything in your current condition."

set reaction[1]
set reaction[2]		"ThinkTargetSet"
set reaction[3]		"RentBoat"
set reaction[4]		"RentBoat"
set reaction[5]		"RentBoat"
set reaction[6]		"setBagOne"
set reaction[7]		"decrementBag"
set reaction[8]		"plantSeed"
set reaction[9]		"dropOrgaEye"
set reaction[10]	"notMorphed"
set reaction[11]	"isMorphed"
set reaction[12]

"goscan" call GoScan

GoScan
{
setglobal scanBreak 0
set @env.key_interrupts false //when you start you want it to loop
set @env.click_interrupts false //these two lines makes sure it doesn't shut off
if @text == ""
	if feedback == 1
		message "¥¥¥Scanner On¥¥¥"
		message "for settings type \"goscan ?\"."
		pause 8
	end if
else if @text == "?"
		message "Type \"t?\" to find the target. "tc <message>\" to send to SStarget. \"tt <text>\" to send to selected player."
		pause 8
		message "Type \"ts <name> [message]\" sets the target and sends them a message if you include one."
		pause 8
		message "Type \"/feedback\" to toggle macro feedback off|on."
		pause 4
		message "OR \"/set feedback <?|1|on|0|off>"
		pause 8
		message "Type \"noscan\" to stop."
end if
call Scanner
label SCANMONITOR
if keepAlive == 1
	pause 240
	set keepAlive 0
	pause 40
	goto scanmonitor
else if keepAlive == 2
	set scanBreak 1
else
	pause 80
	setglobal scanBreak 0
	call Scanner
	message "*Scanner recalled"
	goto SCANMONITOR
end if
}

Scanner
{
label SCANtop
pause 1
if scanBreak == 1
	goto SCANEnder
else
    setglobal keepAlive 1
	setglobal scanText @env.textLog
	if scanText.word[0] < "/"
		setglobal timeStamps 3
		setglobal playerName 2
		setglobal me 6
	else
		setglobal timeStamps 1
		setglobal playerName 0
		setglobal me 3
	end if
	if scanText.word[timeStamps] == checkText //with timestamps[3] w/o [1]
		label SCANloop
		if scanText < checkText[pointer]
			message "*index [" pointer "] found"
			call reaction[pointer]
		else
			setglobal pointer + 1
			if pointer > cap
				goto SCANnext
			else
				goto SCANloop
			end if
		end if
	end if
endif
label SCANnext
pause 1
setglobal gtrainerPhrase scanText
call rankcount
goto SCANtop

label SCANEnder
	set keepAlive 2
if feedback == 1
	message "••Scanner Off••"
end if
setglobal keepAlive 0
}


"noscan"
{
setglobal scanBreak 1	//This alows you to stop this macro without stopping other macros
}

ThinkTargetSet
{
	if ssTarget != scanText.word[playerName] //w/timestamps[2] w/o[0]
		if scanText.word[playerName] != @my.name
			setglobal  ssTarget scanText.word[playerName]
			setglobal feedback 1 //turn on feedback for new target
			pause 4
		end if
	end if
	if feedback == 1 //this controls overall feedback
//This if block turns off feedback when the target hasn't changed
		if feedback == 1
			message "tc target: " ssTarget
			setglobal feedback 0
		end if
	end if
}

RentBoat
{
	set namePer @my.name
		 set namePer + "."
		if scanText.word[me] == namePer
			pause 1
			"yes\r"
		end if
}

setBagOne
{
	setglobal bag_number 1
	"/equip bag of kudzu seedlings " bag_number "\r"
}

decrementBag
{
	setglobal bag_number - 1
	if bag_number < 0
		setglobal bag_number max_bag
	end if
}

plantSeed
{
	"/equip Kudzu Seedling\r"
	pause 1
	"/usei left\r"

}
dropOrgaEye
{
	"/selectitem orga eye \r"
	"/drop orga eye \r"
	pause 1
}

notMorphed
{
	setglobal morphed 0
}

isMorphed
{
	setglobal morphed 1
}