ThankGroup: Difference between revisions
From CLUMP
Jump to navigationJump to search
m minor typo fix |
version 3.0.1 |
||
Line 1: | Line 1: | ||
/*----------------------------------------------------------------------------- | /*----------------------------------------------------------------------------- | ||
| shareMultiple Version 1.0.1 | ThankGroup Version 2.1. | | shareMultiple Version 1.0.1 | ThankGroup Version 2.1.5 | | ||
--------------------------------- Description --------------------------------- | --------------------------------- Description --------------------------------- | ||
Shares | Shares is an expansion of the default /share command to accept multiple names, to speed sharing and thanking groups of people. | ||
----------------------------------- Usage ------------------------------------- | ----------------------------------- Usage ------------------------------------- | ||
##### type "/th?" for online help | |||
type: | just type in: | ||
sh [name*] [name] [name] [name] [name] | |||
to share up to | 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". | |||
*You can type partial names as you can with the default share command. | |||
----------------------------------- Setup ------------------------------------- | ----------------------------------- 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: | |||
"sh" "/share " @text "\r" | |||
"shm" & "/shm" | "shm" & "/shm" | ||
//All Platforms: Add the line below to your default macro file: | |||
include "shares.mac" | |||
-------------------------------- Feedback/Info -------------------------------- | -------------------------------- 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. | *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 " | |||
** 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 | 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." | 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 | |||
v.2.1.2 "ThankRandom" was added by request of Rroot | |||
v.2.1.3 *fixed a small bug that threw | |||
*Added | |||
*Added ThankHelp macro | *Added ThankHelp macro | ||
v.2.1.4 Added ability to remove a person from the list with /thgc | 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" | ||
-----------------------------------------------------------------------------*/ | |||
----------------------------------------------------------------------------- */ | |||
/****** Share Triggers ******/ | /****** Share Triggers ******/ | ||
"sh" call shareMultiList //changes /share to add multiple people | "sh" call shareMultiList //changes /share to add multiple people | ||
"/shm" call shareMultiList // also adds to myTG | "/shm" call shareMultiList // also adds to myTG | ||
"shm" call shareMultiList //{{m_shareMultiList}} | "shm" call shareMultiList //{{m_shareMultiList}} | ||
/****** Thank Group Triggers ******/ | /****** Thank Group Triggers ******/ | ||
"/th?" call ThankHelp //Online ThankGroup command help | "/th?" call ThankHelp //Online ThankGroup command help | ||
Line 62: | Line 58: | ||
"/thga" call AddToThankGroup // Adds a person to ThankGroup list | "/thga" call AddToThankGroup // Adds a person to ThankGroup list | ||
"/thgwho" call WhoAmIThanking // Shows the ThankGroup list | "/thgwho" call WhoAmIThanking // Shows the ThankGroup list | ||
"/thg?" call WhoAmIThanking // | "/thg?" call WhoAmIThanking // | ||
"/thgc" call ClearThankGroup //Clears out ThankGroup | "/thgc" call ClearThankGroup //Clears out ThankGroup | ||
"/thgh" call ThankHelp //Online ThankGroup command help | "/thgh" call ThankHelp //Online ThankGroup command help | ||
"/thh" call ThankHelp //Online ThankGroup command help | "/thh" call ThankHelp //Online ThankGroup command help | ||
"/thn" call ThankNext // Thanks next person in the list | "/thn" call ThankNext // Thanks next person in the list | ||
"/tho" call ThankOptions // see ** Above or {{m_ThankOptions}} below | "/tho" call ThankOptions // see ** Above or {{m_ThankOptions}} below | ||
"/thr" call ThankRandom // See * Above | "/thr" call ThankRandom // See * Above | ||
"/ths" call ThankSharers //loads | "/ths" call ThankSharers //loads shares into thank list | ||
"/tn" call ThankNext //Thanks the next person on 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" */ | /*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 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 theMessage " Thank you " //<<EditMe>> your default message | ||
set myThankGroup[0] "" //<<EditMe>> to initialize <myTG> | set myThankGroup[0] "" //<<EditMe>> to initialize <myTG> | ||
/* -------- Do not Edit below this line if not Familiar with Macros -------- */ | /* -------- Do not Edit below this line if not Familiar with Macros -------- */ | ||
set slotG 1 // | |||
set currentIndex | set slotG 1 //<<slotG>> (int:index) is the pointer for the list | ||
set thankTotal | set currentIndex 1 //which slot is current | ||
// | set thankTarget "" | ||
set thankTotal 0 //<<thankTotal>> (int:sum) <<!=DO_NOT_EDIT>> {?}Number in list | |||
set ATH 0 // | //myThankGroup <<myTG>> (arr) list of exiles to thank | ||
set delay 1201 // | set ATH 0 //<<ATH>> (bool:toggle) controls automatic thanking | ||
set delay 1201 //<<delay>> (int:timer) controls pause between {{m_AutoThank}} | |||
set ht[0] "There is no entry here" | set ht[0] "There is no entry here" | ||
set ent 0 | set ent 0 | ||
set initSwitch 0 | set initSwitch 0 | ||
set | set debug 1 //for troubleshooting | ||
/* ************************** shareMultiple v1.0.1 ************************** */ | /* ************************** shareMultiple v1.0.1 ************************** */ | ||
// | |||
//<<m_shareMultiList>> (sh|/shm|shm <name> [name]) shares & adds to list | |||
shareMultiList | shareMultiList | ||
{ | { | ||
setglobal ht[sh] "*'sh|/shm|shm | 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')" | 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 | if initSwitch == 1 | ||
goto END | goto END | ||
Line 123: | Line 125: | ||
label END | label END | ||
} | } | ||
/***************************** Thank Group v2.1.3 *****************************/ | /***************************** Thank Group v2.1.3 *****************************/ | ||
// | |||
//<<m_ThankGroup>> (/thg [message]) Thanks exile|s in list (activates AutoThank) | |||
ThankGroup | ThankGroup | ||
{ | { | ||
Line 132: | Line 136: | ||
goto END | goto END | ||
end if | end if | ||
if @text == "reset" | if @text == "reset" | ||
call ClearThankGroup | call ClearThankGroup | ||
Line 139: | Line 144: | ||
goto END | goto END | ||
else if @text == ? | else if @text == ? | ||
message thga | |||
else | else | ||
if @text != "" | if @text != "" | ||
Line 150: | Line 155: | ||
label END | label END | ||
} | } | ||
// | |||
/*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! | //<<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 | AddToThankGroup | ||
{ | { | ||
setglobal ht[thga] "'/thga | setglobal ht[thga] "'/thga <name> [name]' adds exile|s to list" | ||
setglobal ht[3] "'/thga | setglobal ht[3] "'/thga <name> [name]' adds exile|s to list" | ||
if initSwitch == 1 | if initSwitch == 1 | ||
goto END | goto END | ||
end if | end if | ||
set num_people @text.num_words | set num_people @text.num_words //gets the number of names to add (only use one word names for accuracy) | ||
setglobal slot 0 | setglobal slot 0 //must start one less than total to add | ||
if debug == 1 | if debug == 1 | ||
message "slotG=" slotG | message "slotG=" slotG | ||
Line 168: | Line 174: | ||
end if | end if | ||
label addloop | label addloop | ||
if slot < num_people | if slot < num_people | ||
setglobal myThankGroup[slotG] @text.word[slot] | setglobal myThankGroup[slotG] @text.word[slot] | ||
if debug == 1 | if debug == 1 | ||
Line 179: | Line 185: | ||
goto addloop | goto addloop | ||
end if | end if | ||
if modeverbose == 1 | |||
call WhoAmIThanking | call WhoAmIThanking | ||
end if | |||
label END | label END | ||
} | } | ||
// | |||
//<<m_ClearThankGroup>> (/thgc) clears and resets list | |||
ClearThankGroup | ClearThankGroup | ||
{ | { | ||
Line 192: | Line 199: | ||
goto END | goto END | ||
end if | end if | ||
if @text == "" | |||
message "Clearing thank group" | message "Clearing thank group" | ||
setglobal thankTarget | setglobal thankTarget 1 | ||
setglobal counted 0 | setglobal counted 0 | ||
setglobal thankTotal 1 | setglobal thankTotal 1 | ||
setglobal myThankGroup "" | setglobal myThankGroup "" | ||
setglobal slotG 1 | setglobal slotG 1 | ||
message thankTarget "*" counted "*" thankTotal "*" myThankGroup "*" slotG "*" | message thankTarget "*" counted "*thanktotal:" thankTotal "*" myThankGroup "*slotG:" slotG "*" | ||
else if @text == 0 | else if @text == 0 | ||
setglobal currentIndex @text | setglobal currentIndex @text | ||
Line 214: | Line 218: | ||
label END | label END | ||
} | } | ||
//<<m_ThankNext>> (/tn [message]) actually does the thanking | |||
ThankNext | ThankNext | ||
{ | { | ||
if initSwitch == 1 | if initSwitch == 1 | ||
setglobal ht[tn] "/tn [message]' manually thanks the next person and sets the message" | |||
setglobal ht[tn] " | |||
goto END | 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 | end if | ||
if @text == "" | if @text == "" | ||
Line 248: | Line 242: | ||
end if | end if | ||
pause 1 | pause 1 | ||
set tocheck @env.TextLog | set tocheck @env.TextLog | ||
message tocheck | |||
if tocheck < "You have no karma to give" | if tocheck < "You have no karma to give." | ||
if debug == 1 | if debug == 1 | ||
message "* Unable to give karma to " myThankGroup[thankTarget] " holding place." | message "**m_ThankNext:Unable to give karma to " myThankGroup[thankTarget] " holding place." | ||
end if | end if | ||
else if tocheck < "is not in the lands" | else if tocheck < "' is not in the lands." | ||
if debug == 1 | if debug == 1 | ||
message "*Unable to give karma (No Target) | message "*m_ThankNext:Unable to give karma (No Target):Advancing" | ||
end if | end if | ||
if thankTarget < thankTotal | |||
setglobal thankTarget + 1 | |||
else if thankTarget == thankTotal | |||
setglobal thankTarget 1 | |||
end if | 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 | end if | ||
label END | label END | ||
} | } | ||
WhoAmIThanking // | |||
WhoAmIThanking //<<m_WhoAmIThanking>> (/thgwho)|(/thg?) outputs the myTG | |||
{ | { | ||
if initSwitch == 1 | if initSwitch == 1 | ||
Line 297: | Line 283: | ||
goto END | goto END | ||
else | else | ||
message " | message "•My thank group is currently: " | ||
setglobal counted 1 | setglobal counted 1 //must be 1 for start of array | ||
set thankTotalAdjustment thankTotal | set thankTotalAdjustment thankTotal | ||
set thankTotalAdjustment + 1 //to get the last element | |||
label LOOPSTART | label LOOPSTART | ||
if counted < thankTotalAdjustment | if counted < thankTotalAdjustment | ||
Line 313: | Line 299: | ||
end if | end if | ||
label END | label END | ||
} | } | ||
ThankSharers // (/ths) adds all people sharing you to the list | ThankSharers // (/ths) adds all people sharing you to the list | ||
{ | { | ||
Line 321: | Line 307: | ||
goto END | goto END | ||
end if | 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 | else | ||
setglobal myThankGroup[slotG] @my.shares_in.word[ | setglobal myThankGroup[slotG] @my.shares_in.word[count] | ||
setglobal slotG + 1 | setglobal slotG + 1 | ||
set | set count + 1 | ||
setglobal thankTotal + 1 | setglobal thankTotal + 1 | ||
end if | end if | ||
goto LOOP0 | |||
end if | |||
label END | |||
if debug == 1 | |||
call WhoAmIThanking | |||
end if | |||
label END | label END | ||
} | } | ||
// | |||
//<<m_ThankRandom>> (/thr)["restore"|clears("new")|("add")] myTG & thanks a random person sharing | |||
ThankRandom | ThankRandom | ||
{ | { | ||
Line 365: | Line 357: | ||
end if | end if | ||
end if | end if | ||
set randomNum @random | set randomNum @random | ||
setglobal thankTarget randomNum % thankTotal | |||
call ThankNext | call ThankNext | ||
setglobal thankTarget thankSave //resets the thank index | setglobal thankTarget thankSave //resets the thank index | ||
label END | label END | ||
} | } | ||
// | |||
//<<m_ThankOptions>> (/tho) sets tTarget to 0|number or switches debugging on | |||
ThankOptions | ThankOptions | ||
{ | { | ||
Line 405: | Line 394: | ||
end if | end if | ||
else | else | ||
message "*That number won't work. The highest number you can set it currently: " | message "*That number won't work. The highest number you can set it currently: " thankTarget | ||
pause 7 | pause 7 | ||
message "*Blame Polerand! ;)" | message "*Blame Polerand! ;)" | ||
Line 412: | Line 401: | ||
set words @text.word[count] | set words @text.word[count] | ||
set counter 1 | set counter 1 | ||
label MESSAGEBUILDER | label MESSAGEBUILDER | ||
if counter > words | if counter > words | ||
Line 418: | Line 406: | ||
message "the message is now: " theMessage | message "the message is now: " theMessage | ||
else | else | ||
set interim.word[counter] | set interim.word[counter] @text.word[counter] " " | ||
set counter + 1 | set counter + 1 | ||
goto MESSAGEBUILDER | goto MESSAGEBUILDER | ||
Line 425: | Line 413: | ||
label END | label END | ||
} | } | ||
// AutoThank 1.0 "/ath" | // AutoThank 1.0 "/ath" | ||
AutoThank // | |||
AutoThank //<<m_AutoThank>> (/ath ["0"|"off"]) turns on*|off automatic thanks | |||
{ | { | ||
if initSwitch == 1 | if initSwitch == 1 | ||
Line 438: | Line 428: | ||
setglobal ATH 0 | setglobal ATH 0 | ||
goto ENDoff | goto ENDoff | ||
end if | end if | ||
setglobal ATH 1 | setglobal ATH 1 | ||
label LOOPA | label LOOPA | ||
if ATH == 1 | if ATH == 1 | ||
Line 449: | Line 438: | ||
goto LOOPA | goto LOOPA | ||
else | else | ||
message "***You are out of people to thank.***" | message "***You are out of people to thank.***" | ||
message "***To Add more type /thga <name> [name] ..." | message "***To Add more type /thga <name> [name] ..." | ||
end if | end if | ||
end if | end if | ||
label ENDoff | label ENDoff | ||
message "*AutoThank is Off" | message "*AutoThank is Off" | ||
label END | label END | ||
} | } | ||
// | |||
//<<m_BuildDefault>> List Building Function | |||
BuildDefault | BuildDefault | ||
{ | { | ||
Line 468: | Line 456: | ||
end if | end if | ||
label LOOPA | label LOOPA | ||
if count | if count > listA.num_words | ||
setglobal myThankGroup[slotG] listA.word[count] | setglobal myThankGroup[slotG] listA.word[count] | ||
if debug == 1 | if debug == 1 | ||
Line 479: | Line 467: | ||
pause 20 | pause 20 | ||
goto LOOPA | goto LOOPA | ||
end if | end if | ||
label END | label END | ||
} | } | ||
// | |||
// *m_moveUp* Reorganizes the thankgroup List triggered by ClearThankGroup '/thgc 0' | |||
moveUp | moveUp | ||
{ | { | ||
message "**moving up" | 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 | end if | ||
} | } | ||
// | |||
//<<m_ThankHelp>> {/thgh|/?th|/thh }Lists how to control macro | |||
ThankHelp | ThankHelp | ||
{ | { | ||
Line 528: | Line 513: | ||
message "*'/thga' and their names (with no spaces) to add people" | message "*'/thga' and their names (with no spaces) to add people" | ||
message "*'/thg' followed by any message to send to the group." | message "*'/thg' followed by any message to send to the group." | ||
message "*'/tn' to thank the next person manually" | message "*'/tn' to thank the next person manually" | ||
message "*'/ath 0' or '/tho off' to stop the macro" | message "*'/ath 0' or '/tho off' to stop the macro" | ||
Line 540: | Line 523: | ||
else if @text == "thg" | else if @text == "thg" | ||
message ht[2] | message ht[2] | ||
else if @text == "thgc" | else if @text == "thgc" | ||
message ht[4] | message ht[4] | ||
else if @text == "th?" | else if @text == "th?" | ||
message "*************************" | message "*************************" | ||
message "*Universal Self Destruct Activated*" | message "*Universal Self Destruct Activated*" | ||
message "*************************" | message "*************************" | ||
message "*10..." | message "*10..." | ||
pause 2 | |||
message "*Now you're done it!*" | |||
pause 2 | pause 2 | ||
message "*9..." | message "*9..." | ||
Line 573: | Line 552: | ||
pause 4 | pause 4 | ||
message "*0" | message "*0" | ||
message "*BOOM!*" | message "*BOOM!*" | ||
else | else | ||
setglobal ent @text | |||
message ht[ent] | message ht[ent] | ||
end if | end if | ||
else | else | ||
message "*type '/th? overview' or 'th? quickstart' for instuctions" | message "*type '/th? overview' or 'th? quickstart' for instuctions" | ||
message "*more information is available in the macro file 'Shares. | message "*more information is available in the macro file 'Shares.mac'" | ||
message "*thanks for trying this macro. Feedback is welcome" | message "*thanks for trying this macro. Feedback is welcome" | ||
end if | end if | ||
label END | label END | ||
} | } | ||
InitThG | InitThG | ||
{ | { | ||
Line 600: | Line 580: | ||
end if | end if | ||
setglobal initSwitch 0 | setglobal initSwitch 0 | ||
} | } |
Revision as of 00:46, 8 March 2017
/*----------------------------------------------------------------------------- | 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 }