ThankGroup
From CLUMP
Jump to navigationJump to search
/*----------------------------------------------------------------------------- | shareMultiple Version 1.0.1 | ThankGroup Version 2.1.5 | --------------------------------- Description --------------------------------- Shares is an expansion of the default /share command to accept multiple names, to speed sharing and thanking groups of people. ----------------------------------- Usage ------------------------------------- ##### type "/th?" for online help just type in: sh [name*] [name] [name] [name] [name] to share up to you maximum number of people. *You can type partial names as you can with the default share command. do not use spaces for exiles with two a first and last name. (i.e. Elenis Reyav could be "Elenis", "ElenisReyav" or even "Elen". ----------------------------------- Setup ------------------------------------- Note: to work properly you might have to remove the line "sh" "/share " @text "\r" from your default macros file. or you can use other built in triggers: "shm" & "/shm" //All Platforms: Add the line below to your default macro file: include "shares.mac" -------------------------------- Feedback/Info -------------------------------- This macro makes a list of people to thank numerous ways. Then you can call the AutoThank if you want to thank a person every 5 minutes (set with "delay" global. the delay by default is just over 5 minutes, 1200 Frames).
The Default Triggers are listed below, feel free to edit them. A short description is listed next to each trigger.
*ThankRandom will clear your thank list with "new" and append people to the random pool with "add" So "/thr new" or "/thr add" modifies the list, while just the default "/thr" thanks someone in the list without altering it.
** Thank Options controls several options. including just a number ("/tho 3") will set the person at that position in the list (3 in this case) as the next exile to thank. With "debug" set to 0 or 1 it will allow debug messages to show up and allow you to load a default list of people to thank into the ThankGroup by activating the default share shortcut,"sh", which you can set in listA below. With the "off" option ("/tho off") it turns off the AutoThank loop.
*The v.2.1.3 comment format is as follows: <<m_macroname>> (default trigger|s <required text> [optional text]) short description. ** the single less than some text and greater than denotes strings so when you see "/thg [message] ** the vertical bar "|" is used to denote valid options (arguments) th macro accepts ** all macros are prefixed with "m_" in the file for quick searching and avoiding false hits from "call <macro>" ** global variable have their type & [:specific function] in techspeak along with a short description
I wrote this macro long ago, thus it is not optimized and could be written much better, but it works pretty well. It was actually multiple macros that I pulled together on 12/18/2011. So initial release is shareMultiple 1.0.1 & ThankGroup 2.1.2.
If you find any bugs or have suggestions, contact noivad either in game or at his mac dot com address. This macro is "/Thank-ware." ----------------------------- version change notes ----------------------------- v. 2.1.2 "ThankRandom" was added by request of Rroot v.2.1.3 *fixed a small bug that threw and error, but didn't stop the macro *Added <<tags>> to functions and comments *Added ThankHelp macro v.2.1.4 Added ability to remove a person from the list with /thgc <number> *Added ThankGroup Help "/thh" or "/thgh" -----------------------------------------------------------------------------*/ /****** Share Triggers ******/ "sh" call shareMultiList //changes /share to add multiple people "/shm" call shareMultiList // also adds to myTG "shm" call shareMultiList //Template:M shareMultiList
/****** Thank Group Triggers ******/ "/th?" call ThankHelp //Online ThankGroup command help "/ath" call AutoThank //Starts an Automatic thank loop | "off" to stop "/thb" call BuildDefault //Builds the default or saved list "/thg" call ThankGroup //Thanks the next person on the list "/thga" call AddToThankGroup // Adds a person to ThankGroup list "/thgwho" call WhoAmIThanking // Shows the ThankGroup list "/thg?" call WhoAmIThanking // "/thgc" call ClearThankGroup //Clears out ThankGroup "/thgh" call ThankHelp //Online ThankGroup command help "/thh" call ThankHelp //Online ThankGroup command help "/thn" call ThankNext // Thanks next person in the list "/tho" call ThankOptions // see ** Above or Template:M ThankOptions below "/thr" call ThankRandom // See * Above "/ths" call ThankSharers //loads shares into thank list "/tn" call ThankNext //Thanks the next person on list
/*Edit this list with to up to 5 exiles you like to share with automatically. Do Not include spaces. Note will only work with debug = 1 set with ThankOptions "/tho debug 1" */ set debug 0 //<<debug>> (bool:toggle) turns on and off debugging set modeverbose 1 //first trigger will remind people how to use. set to 0 to turn off set theMessage " Thank you " //<<EditMe>> your default message set myThankGroup[0] "" //<<EditMe>> to initialize <myTG>
/* -------- Do not Edit below this line if not Familiar with Macros -------- */
set slotG 1 //<<slotG>> (int:index) is the pointer for the list set currentIndex 1 //which slot is current set thankTarget "" set thankTotal 0 //<<thankTotal>> (int:sum) <<!=DO_NOT_EDIT>> {?}Number in list //myThankGroup <<myTG>> (arr) list of exiles to thank set ATH 0 //<<ATH>> (bool:toggle) controls automatic thanking set delay 1201 //<<delay>> (int:timer) controls pause between Template:M AutoThank set ht[0] "There is no entry here" set ent 0 set initSwitch 0 set debug 1 //for troubleshooting /* ************************** shareMultiple v1.0.1 ************************** */
//<<m_shareMultiList>> (sh|/shm|shm <name> [name]) shares & adds to list shareMultiList { setglobal ht[sh] "*'sh|/shm|shm <name> [name]' shares & adds exiles to list (i.e. 'sh Creed ElenisReyav Var Talin Lorikeet')" setglobal ht[1] "*'sh|/shm|shm <name> [name]' shares & adds exiles to list (i.e. 'sh Creed ElenisReyav Var Talin Lorikeet')" if slotG < 1 setglobal slotG 1 end if if initSwitch == 1 goto END end if setglobal count 0 if debug == 1 pause 2 message "Loading Friend Online" call BuildDefault else if @text == "" "/share\r" else label LOOPB if count < @text.num_words "/share " @text.word[count] "\r" setglobal myThankGroup[slotG] @text.word[count] if debug == 1 pause 1 message "*" myThankGroup[slotG] " added to thankgroup." end if set count + 1 setglobal slotG + 1 setglobal thankTotal + 1 pause 20 goto LOOPB end if end if label END }
/***************************** Thank Group v2.1.3 *****************************/
//<<m_ThankGroup>> (/thg [message]) Thanks exile|s in list (activates AutoThank) ThankGroup { setglobal ht[thg] "'/thg [message]' Sets the default message & activates AutoThank (i.e '/thg thanks for the hunt!'). '/thg /reset' clears the list." setglobal ht[2] "'/thg [message]' Sets the default message & activates AutoThank (i.e '/thg thanks for the hunt!'). '/thg /reset' clears the list." if initSwitch == 1 goto END end if
if @text == "reset" call ClearThankGroup goto END else if @text == "/reset" call ClearThankGroup goto END else if @text == ? message thga else if @text != "" setglobal theMessage @text end if end if pause 1 call AutoThank message ending thanks label END }
//<<m_AddToThankGroup>> (/thga <name> [name]) adds exile|s to list /*To do: add gorvin's scanned for if a person is already on the list to the macro. (Gorvin gave permission on 20120325 during Crypt hunt: Thanks G!)*/ AddToThankGroup { setglobal ht[thga] "'/thga <name> [name]' adds exile|s to list" setglobal ht[3] "'/thga <name> [name]' adds exile|s to list" if initSwitch == 1 goto END end if set num_people @text.num_words //gets the number of names to add (only use one word names for accuracy) setglobal slot 0 //must start one less than total to add if debug == 1 message "slotG=" slotG end if if @text == ? message ht[thga] end if label addloop if slot < num_people setglobal myThankGroup[slotG] @text.word[slot] if debug == 1 message "*myThankGroup[" slotG "]=" myThankGroup[slotG] end if pause 1 setglobal slot + 1 setglobal thankTotal + 1 setglobal slotG + 1 goto addloop end if if modeverbose == 1 call WhoAmIThanking end if label END }
//<<m_ClearThankGroup>> (/thgc) clears and resets list ClearThankGroup { setglobal ht[thgc] "'/thgc [num]' clears and resets list, with a number it removes that entry in the list" setglobal ht[4] "'/thgc [num]' clears and resets list, with a number it removes that entry in the list" if initSwitch == 1 goto END end if if @text == "" message "Clearing thank group" setglobal thankTarget 1 setglobal counted 0 setglobal thankTotal 1 setglobal myThankGroup "" setglobal slotG 1 message thankTarget "*" counted "*thanktotal:" thankTotal "*" myThankGroup "*slotG:" slotG "*" else if @text == 0 setglobal currentIndex @text call moveUp else if @text > 0 if @text <= thankTotal setglobal currentIndex @text call moveUp end if end if label END }
//<<m_ThankNext>> (/tn [message]) actually does the thanking ThankNext { if initSwitch == 1 setglobal ht[tn] "/tn [message]' manually thanks the next person and sets the message" goto END end if if thankTotal < 1 message "*ThankNext*no one in thank list, adding shares in (/ths)**" call ThankSharers setglobal modeverbose 1 end if if thankTarget < 1 setglobal thankTarget 1 else if thankTarget > thankTotal setglobal thankTarget 1 end if if @text == "" "/thank " myThankGroup[thankTarget] " " theMessage " " myThankGroup[thankTarget] " :)\r" else "/thank " myThankGroup[thankTarget] " " @text "\r" end if pause 1 set tocheck @env.TextLog message tocheck if tocheck < "You have no karma to give." if debug == 1 message "**m_ThankNext:Unable to give karma to " myThankGroup[thankTarget] " holding place." end if else if tocheck < "' is not in the lands." if debug == 1 message "*m_ThankNext:Unable to give karma (No Target):Advancing" end if if thankTarget < thankTotal setglobal thankTarget + 1 else if thankTarget == thankTotal setglobal thankTarget 1 end if end if if debug == 1 pause 4 message "The next person to be thanked is " myThankGroup[thankTarget] else if modeverbose == 1 message "*thanking " myThankGroup[thankTarget] "/thh for help" setglobal modeverbose 0 end if label END }
WhoAmIThanking //<<m_WhoAmIThanking>> (/thgwho)|(/thg?) outputs the myTG { if initSwitch == 1 setglobal ht[thgwho] "'/thgwho|/thg? [reset|/reset]' shows the list or optionally resets it" goto END end if if @text == "reset" call ClearThankGroup else if @text == "/reset" call ClearThankGroup end if if thankTotal == 1 message "**The thank group is empty. Try /ths or /thga <name> [name] to add people" goto END else message "•My thank group is currently: " setglobal counted 1 //must be 1 for start of array set thankTotalAdjustment thankTotal set thankTotalAdjustment + 1 //to get the last element label LOOPSTART if counted < thankTotalAdjustment if counted == thankTarget message "[" counted "]*" myThankGroup[counted] else message "[" counted "]" myThankGroup[counted] end if setglobal counted + 1 goto LOOPSTART end if end if label END }
ThankSharers // (/ths) adds all people sharing you to the list { if initSwitch == 1 setglobal ht[ths] "'/ths' adds all people sharing you to the list" goto END end if set count 0 if debug == 1 message "Shares in are " @my.shares_in message "Thank Share In Number =" @my.shares_in.num_words end if
label LOOP0 if count == @my.shares_in.num_words goto END else if @my.shares_in.word[count] < "[" //avoids adding bracketed else setglobal myThankGroup[slotG] @my.shares_in.word[count] setglobal slotG + 1 set count + 1 setglobal thankTotal + 1 end if goto LOOP0 end if
label END if debug == 1 call WhoAmIThanking end if label END }
//<<m_ThankRandom>> (/thr)["restore"|clears("new")|("add")] myTG & thanks a random person sharing ThankRandom { if initSwitch == 1 setglobal ht[thr] "'/thr [restore|new|add]' thanks a random person sharing you. optionally clears the list and builds a new one" goto END end if if @text == "new" setglobal thankSave thankTarget //saves the index setglobal listA myThankGroup //saves the current list setglobal listSave 1 //allows the list to be restored call ClearThankGroup call ThankSharers else if @text == "add" call ThankSharers else if @text == "restore" if listSave == 1 setglobal myThankGroup listA else message "*There is not list to restore" call BuildDefault end if end if
set randomNum @random setglobal thankTarget randomNum % thankTotal call ThankNext setglobal thankTarget thankSave //resets the thank index label END }
//<<m_ThankOptions>> (/tho) sets tTarget to 0|number or switches debugging on ThankOptions { if initSwitch == 1 setglobal ht[tho] "'/tho [<number>||debug 0|1||off||message <message>]' sets next person thanked to 0|<number>, switches debugging on or off, turns on or off AutoThanking, or sets a new message" goto END end if if @text == "" setglobal thankTarget 0 call WhoAmIThanking else if @text.word[0] == "debug" if @text.word[1] < 2 setglobal debug @text.word[1] end if if debug == 1 message "*Debugging is on" else if debug == 0 message "*Debugging is off" end if else if @text.word[0] == "off" setglobal ATH 0 else if @text.word[0] == "on" call AutoThank else if @text.word[0] > 0 if @text.word[0] <= thankTotal setglobal thankTarget @text.word[0] end if else message "*That number won't work. The highest number you can set it currently: " thankTarget pause 7 message "*Blame Polerand! ;)" end if else if @text.word[0] == "message" set words @text.word[count] set counter 1 label MESSAGEBUILDER if counter > words setglobal theMessage interim message "the message is now: " theMessage else set interim.word[counter] @text.word[counter] " " set counter + 1 goto MESSAGEBUILDER end if end if label END }
// AutoThank 1.0 "/ath"
AutoThank //<<m_AutoThank>> (/ath ["0"|"off"]) turns on*|off automatic thanks { if initSwitch == 1 setglobal ht[ath] "'/ath [0|off]' turns off automatic thanks. With no arguments it turns it on." goto END end if if @text.word[0] == "off" setglobal ATH 0 goto ENDoff else if @text.word[0] == "0" setglobal ATH 0 goto ENDoff end if setglobal ATH 1
label LOOPA if ATH == 1 pause delay if thankTarget < thankTotalAdjustment call ThankNext goto LOOPA else message "***You are out of people to thank.***" message "***To Add more type /thga <name> [name] ..." end if end if
label ENDoff message "*AutoThank is Off" label END }
//<<m_BuildDefault>> List Building Function BuildDefault { if initSwitch == 1 setglobal ht[thb] "'/thb' builds the thank list using the the default in Friends" goto END end if label LOOPA if count > listA.num_words setglobal myThankGroup[slotG] listA.word[count] if debug == 1 pause 1 message "*" myThankGroup[slotG] " added to thankgroup." end if set count + 1 setglobal slotG + 1 setglobal thankTotal + 1 pause 20 goto LOOPA end if label END }
// *m_moveUp* Reorganizes the thankgroup List triggered by ClearThankGroup '/thgc 0' moveUp { if thankTotal > 0 message "**moving up" message "*thankTotal is:" thankTotal "*" label DECLOOP setglobal cIndexPlus currentIndex setglobal cIndexPlus + 1 if cIndexPlus >= thankTotal message "*m_moveUp*currentIndex Exceeds thankTotal" message "*Thanklist reorganized* type /thg? to see it (or '/set debug 1'" setglobal thankTotal - 1 if slotG > 0 setglobal slotG - 1 end if
else setglobal myThankGroup[currentIndex] myThankGroup[cIndexPlus] if myThankGroup[currentIndex] == myThankGroup[cIndexPlus] message myThankGroup[currentIndex] " is now in position " currentIndex end if setglobal currentIndex + 1 goto DECLOOP end if end if }
//<<m_ThankHelp>> {/thgh|/?th|/thh }Lists how to control macro ThankHelp { setglobal hEntry 0 set initSwitch 1 call InitThG if @text == "overview" message "*ThankGroup builds a list of exiles to thank." message "*/type '/th? quickstart' for a basic command list" message "*The <commands> are: sh, ath, thb, thg, thga, thgc, thgwho, tho, thr, ths, tn and are preceded with a slash '/'" message "type '/th? <command> for more info on each command" else if @text == "quickstart" message "*'/thga' and their names (with no spaces) to add people" message "*'/thg' followed by any message to send to the group." message "*'/tn' to thank the next person manually" message "*'/ath 0' or '/tho off' to stop the macro" message "*'/th? message' see what current message is" else if @text == "message" message "*" theMessage else if @text != "" if @text == "sh" message ht[1] else if @text == "thg" message ht[2] else if @text == "thgc" message ht[4] else if @text == "th?" message "*************************" message "*Universal Self Destruct Activated*" message "*************************" message "*10..." pause 2 message "*Now you're done it!*" pause 2 message "*9..." pause 4 message "*8..." pause 4 message "*7..." pause 4 message "*6..." pause 4 message "*5..." pause 4 message "*4..." pause 4 message "*3..." pause 4 message "*2..." pause 4 message "*1..." pause 4 message "*0" message "*BOOM!*" else setglobal ent @text message ht[ent] end if else message "*type '/th? overview' or 'th? quickstart' for instuctions" message "*more information is available in the macro file 'Shares.mac'" message "*thanks for trying this macro. Feedback is welcome" end if label END }
InitThG { if initSwitch == 1 call shareMultiList call AutoThank call ThankGroup call AddToThankGroup call WhoAmIThanking call ClearThankGroup call ThankNext call ThankOptions call ThankRandom call ThankSharers end if setglobal initSwitch 0 }