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 23:46, 7 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
}