Scanner.txt
From CLUMP
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 }