ThankGroup: Difference between revisions
From CLUMP
Jump to navigationJump to search
m (upping ThankGroup to version 2.1.6 after fix) |
m (v2.1.7 fix for increment not working) |
||
Line 1: | Line 1: | ||
/*----------------------------------------------------------------------------- | /*----------------------------------------------------------------------------- | ||
| shareMultiple Version 1.0.1 | ThankGroup Version 2.1. | | shareMultiple Version 1.0.1 | ThankGroup Version 2.1.7 | | ||
--------------------------------- Description --------------------------------- | --------------------------------- Description --------------------------------- | ||
Shares is an expansion of the default /share command to accept multiple names, to speed sharing and thanking groups of people. | Shares is an expansion of the default /share command to accept multiple names, to speed sharing and thanking groups of people. | ||
Line 45: | Line 45: | ||
v.2.1.4 Added ability to remove a person from the list with /thgc <number> | v.2.1.4 Added ability to remove a person from the list with /thgc <number> | ||
*Added ThankGroup Help "/thh" or "/thgh" | *Added ThankGroup Help "/thh" or "/thgh" | ||
v2.1.5 bug fixes to list behavior broken in 2.1.4 feature addition | v2.1.5 bug fixes to list behavior broken in 2.1.4 feature addition | ||
v.2.1.6-7 bug fix for increment not working. | |||
-----------------------------------------------------------------------------*/ | -----------------------------------------------------------------------------*/ | ||
/****** Share Triggers ******/ | /****** Share Triggers ******/ | ||
Line 79: | Line 81: | ||
set slotG 1 //<<slotG>> (int:index) is the pointer for the list | set slotG 1 //<<slotG>> (int:index) is the pointer for the list | ||
set currentIndex 1 //which slot is current | set currentIndex 1 //which slot is current | ||
set thankTarget | set thankTarget 1 //internal current index | ||
set thankTotal 0 //<<thankTotal>> (int:sum) <<!=DO_NOT_EDIT>> {?}Number in list | set thankTotal 0 //<<thankTotal>> (int:sum) <<!=DO_NOT_EDIT>> {?}Number in list | ||
//myThankGroup <<myTG>> (arr) list of exiles to thank | //myThankGroup <<myTG>> (arr) list of exiles to thank | ||
Line 127: | Line 129: | ||
} | } | ||
/***************************** Thank Group v2.1. | /***************************** Thank Group v2.1.7 *****************************/ | ||
//<<m_ThankGroup>> (/thg [message]) Thanks exile|s in list (activates AutoThank) | //<<m_ThankGroup>> (/thg [message]) Thanks exile|s in list (activates AutoThank) | ||
Line 224: | Line 226: | ||
{ | { | ||
if initSwitch == 1 | if initSwitch == 1 | ||
setglobal ht[tn] "/tn [message]' manually thanks the next person and sets the message" | |||
goto END | |||
end if | end if | ||
if thankTotal < 1 | if thankTotal < 1 | ||
message "*ThankNext*no one in thank list, adding shares in (/ths)**" | message "*ThankNext*no one in thank list, adding shares in (/ths)**" | ||
Line 232: | Line 235: | ||
setglobal modeverbose 1 | setglobal modeverbose 1 | ||
end if | end if | ||
if thankTarget < 1 | |||
if thankTarget < 1 //protects against out of bounds array calls | |||
setglobal thankTarget 1 | setglobal thankTarget 1 | ||
else if thankTarget > thankTotal | else if thankTarget > thankTotal | ||
setglobal thankTarget 1 | setglobal thankTarget 1 | ||
end if | end if | ||
if @text == "" | if @text == "" | ||
"/thank " myThankGroup[thankTarget] " " theMessage " " myThankGroup[thankTarget] " :)\r" | |||
else | else | ||
"/thank " myThankGroup[thankTarget] " " @text "\r" | "/thank " myThankGroup[thankTarget] " " @text "\r" | ||
end if | end if | ||
pause 1 | pause 1 | ||
set tocheck @env.TextLog | set tocheck @env.TextLog | ||
message tocheck | message tocheck | ||
//checks log for failure | |||
if tocheck < "You have no karma to give." | if tocheck < "You have no karma to give." | ||
if debug == 1 | if debug == 1 | ||
Line 252: | Line 260: | ||
if debug == 1 | if debug == 1 | ||
message "*m_ThankNext:Unable to give karma (No Target):Advancing" | message "*m_ThankNext:Unable to give karma (No Target):Advancing" | ||
set thankTarget + 1 | |||
end if | end if | ||
if | if debug == 1 | ||
message "tht/tot:" thankTarget ":ThankTotal:" thankTotal | |||
end if | end if | ||
else if thankTarget < thankTotal | |||
call thankFeedback | |||
setglobal thankTarget + 1 | |||
else if thankTarget == thankTotal | |||
call thankFeedback | |||
setglobal thankTarget 1 | |||
end if | end if | ||
label END | |||
} | |||
thankFeedback | |||
{ | |||
if debug == 1 | if debug == 1 | ||
pause 4 | pause 4 | ||
Line 266: | Line 286: | ||
setglobal modeverbose 0 | setglobal modeverbose 0 | ||
end if | end if | ||
} | } | ||
WhoAmIThanking //<<m_WhoAmIThanking>> (/thgwho)|(/thg?) outputs the myTG | WhoAmIThanking //<<m_WhoAmIThanking>> (/thgwho)|(/thg?) outputs the myTG | ||
Line 286: | Line 307: | ||
message "•My thank group is currently: " | message "•My thank group is currently: " | ||
setglobal counted 1 //must be 1 for start of array | setglobal counted 1 //must be 1 for start of array | ||
setglobal thankTotalAdjustment thankTotal | |||
setglobal thankTotalAdjustment + 1 //to get the last element | |||
label LOOPSTART | label LOOPSTART | ||
if counted < thankTotalAdjustment | if counted < thankTotalAdjustment | ||
Line 431: | Line 452: | ||
end if | end if | ||
setglobal ATH 1 | setglobal ATH 1 | ||
if thankTotalAdjustment == "" | |||
setglobal thankTotalAdjustment thankTotal | |||
setglobal thankTotalAdjustment + 1 | |||
end if | |||
label LOOPA | label LOOPA | ||
Line 471: | Line 497: | ||
label END | label END | ||
} | } | ||
// *m_moveUp* Reorganizes the thankgroup List triggered by ClearThankGroup '/thgc 0' | // *m_moveUp* Reorganizes the thankgroup List triggered by ClearThankGroup '/thgc 0' | ||
moveUp | moveUp | ||
Line 481: | Line 507: | ||
setglobal cIndexPlus currentIndex | setglobal cIndexPlus currentIndex | ||
setglobal cIndexPlus + 1 | setglobal cIndexPlus + 1 | ||
if cIndexPlus > | if cIndexPlus > thankTotal | ||
message "*m_moveUp*currentIndex Exceeds thankTotal" | message "*m_moveUp*currentIndex Exceeds thankTotal" | ||
message "*Thanklist reorganized* type /thg? to see it (or '/set debug 1'" | message "*Thanklist reorganized* type /thg? to see it (or '/set debug 1'" | ||
Line 499: | Line 525: | ||
end if | end if | ||
} | } | ||
//<<m_ThankHelp>> {/thgh|/?th|/thh }Lists how to control macro | //<<m_ThankHelp>> {/thgh|/?th|/thh }Lists how to control macro | ||
ThankHelp | ThankHelp |
Revision as of 12:06, 11 March 2017
/*----------------------------------------------------------------------------- | shareMultiple Version 1.0.1 | ThankGroup Version 2.1.7 | --------------------------------- 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" v2.1.5 bug fixes to list behavior broken in 2.1.4 feature addition v.2.1.6-7 bug fix for increment not working. -----------------------------------------------------------------------------*/ /****** 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 1 //internal current index 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.7 *****************************/ //<<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 //protects against out of bounds array calls 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 //checks log for failure 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" set thankTarget + 1 end if if debug == 1 message "tht/tot:" thankTarget ":ThankTotal:" thankTotal end if else if thankTarget < thankTotal call thankFeedback setglobal thankTarget + 1 else if thankTarget == thankTotal call thankFeedback setglobal thankTarget 1 end if label END } thankFeedback { 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 } 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 setglobal thankTotalAdjustment thankTotal setglobal 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 if thankTotalAdjustment == "" setglobal thankTotalAdjustment thankTotal setglobal thankTotalAdjustment + 1 end if 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 }