Shares.mac: Difference between revisions
From CLUMP
Jump to navigationJump to search
No edit summary |
m (→Usage: fiormat update) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
==Description== | ==Description== | ||
Shares is an expansion of the default /share command to accept multiple names, to speed sharing groups of people. | Shares is an expansion of the default /share command to accept multiple names, to speed sharing groups of people. | ||
This newer version of thank sharers 2.x has full thank list building and thanking built in. | |||
==Dependencies== | ==Dependencies== | ||
Line 7: | Line 8: | ||
==Usage== | ==Usage== | ||
just type in | just type in | ||
<code>''sh <name> <name> <name> <name> <name>''</code> | |||
to share up to your maximum number of people (5). | |||
When you have karma to give | |||
/ | <code>''/tn''</code> | ||
to thank the next person on the list. See the macro header for more information. | |||
==Noteworthy Techniques== | |||
Use of arrays. | |||
==Credits== | |||
Noivad | |||
/***************************** Thank Group | message "*Shares Macro Loaded" | ||
/* ------------------------------------------------------------------------- | |||
| shareMultiple Version 1.1.3 | ThankGroup Version 2.5.3 | | |||
------------------------------- Description ----------------------------- | |||
{ | Shares is an expansion of the default /share command to accept multiple names, to ease sharing and thanking groups of people. | ||
if @text == "reset" | ---------------------------------- Usage -------------------------------- | ||
##### type "/th?" for online help | |||
type: | |||
else if @text == "/reset" | sh [name*] [name] [name] [name] [name] | ||
to share up to your maximum number of people. | |||
*You can type partial names as you can with the default share command. | |||
else | |||
/ths | |||
end if | to build thank list of shares in and out | ||
set | |||
set | /tn | ||
pause 1 | to thank the next person on the list | ||
label | |||
if thankTarget < | /ath | ||
to automatically thank and set through the list | |||
---------------------------------- Setup ---------------------------------- | |||
goto | Add the line below to your default macro file: | ||
include "Shares.txt" | |||
Note: to work properly you might have to remove the line | |||
end if | "sh" "/share " @text "\r" from your default macros file. | ||
or you can use other built in triggers: | |||
label END | "shm" & "/shm" | ||
} | ------------------------------ 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 4 minutes (set with "delay" global. the delay by default is just over 4 minutes, 1200 Frames). | |||
{ | The Default Triggers are listed below, feel free to edit them. A short description is listed next to each trigger. | ||
set | |||
setglobal | ** 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) the 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 tech speak | |||
along with a short description | |||
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 (REMOVED 2.5) | |||
v.2.1.3 *fixed a small bug that threw an 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. | |||
v2.3 fixes moveUp bug. ThankRandom is Broken & has been | |||
v.2.5.2 & 1.1.2 won't add people that are already on list | |||
----------------------------------------------------------------------- */ | |||
/****** Share Triggers ******/ | |||
"sh" call shareMultiList //changes /share to add multiple people | |||
"/shm" call shareMultiList // also adds to myTG | |||
"shm" call shareMultiList //{{m_shareMultiList}} | |||
/****** Thank Group Triggers ******/ | |||
"/moveup" call moveUp //removes players who are now offline | |||
"/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 | |||
"/thgm" call ThankMessage //sets the message given with karma | |||
"/thm" call ThankMessage | |||
"/thh" call ThankHelp //Online ThankGroup command help | |||
"/thn" call ThankNext // Thanks next person in the list | |||
"/tho" call ThankOptions // see ** Above or {{m_ThankOptions}} below | |||
//"/thr" call ThankRandom // BROKEN: See * Above | |||
"/ths" call ThankSharers //loads shares into thank list | |||
"/tn" call ThankNext //Thanks the next person on list | |||
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] "" //in case thankTarget is set to 0 | |||
set listA "Talin Silky Klur Natas Shadowfire" //EDIT to your friends | |||
/* ---- 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 | |||
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 ent 0 | |||
set initSwitch 0 | |||
/* ******************** shareMultiple v1.1.3 *********************** */ | |||
//<<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" | |||
setglobal ht[1] "*'sh|/shm|shm <name> [name]' shares & adds exiles to list" | |||
if slotG < 1 | |||
setglobal slotG 1 | |||
end if | |||
if @text != "" | |||
set count 0 | |||
label LOOP | |||
if count <= @text.num_words | |||
"/select " @text.word[count] " \r" | |||
if @selplayer.simple_name == "" | |||
set count + 1 | |||
goto LOOP | |||
end if | |||
"/share " @selplayer.simple_name " \r" | |||
if debug == 1 | |||
message "*attempted share with " @text.word[count] " in LOOP" | |||
end if | |||
pause 1 | |||
if "No player named " < @env.textLog | |||
set count + 1 | |||
goto LOOP | |||
end if | |||
set i 1 | |||
LABEL COMPARELOOP | |||
//ADDED 20220625 EXPERIMENTAL trying to search array for string | |||
if myThankGroup != "" | |||
//message "myThankGroup:" myThankGroup | |||
if myThankGroup < @selplayer.simple_name | |||
message @selplayer.simple_name "in myThankGroup" | |||
end if | |||
end if | |||
//ABOVE ADDED | |||
if myThankGroup[i] == @selplayer.simple_name | |||
message "* " @selplayer.name " already in list SKIPPING" | |||
set count + 1 | |||
pause 25 | |||
goto LOOP | |||
else | |||
if i < thankTotal | |||
set i + 1 | |||
goto COMPARELOOP | |||
end if | |||
setglobal myThankGroup[slotG] @selplayer.simple_name | |||
pause 1 | |||
if debug == 1 | |||
message "* [" slotG "]" myThankGroup[slotG] " added to thank group." | |||
end if | |||
setglobal slotG + 1 | |||
setglobal thankTotal + 1 | |||
if count < @text.num_words | |||
set count + 1 | |||
end if | |||
pause 25 | |||
goto LOOP | |||
end if | |||
end if | |||
else | |||
"/share\r" | |||
end if | |||
label END | |||
} | |||
/************************ Thank Group v2.5.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 @text == "reset" | |||
call ClearThankGroup | |||
goto END | |||
else if @text == "/reset" | |||
call ClearThankGroup | |||
goto END | |||
else if @text == ? | |||
message thga | |||
message theMessage | |||
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 | |||
AddToThankGroup | |||
{ | |||
setglobal ht[thga] "'/thga <name> [name]' adds exile|s to list" | |||
setglobal ht[3] "'/thga <name> [name]' adds exile|s to list" | |||
set num_people @text.num_words //gets the number of names to add (only use one word names for accuracy) | |||
set 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 | |||
"/select " @text.word[slot] "\r" | |||
if debug == 1 | |||
message "@selplayer.simple_name: " @selplayer.simple_name | |||
end if | |||
pause 1 | |||
if @env.textLog < "No player named " | |||
if debug == 1 | |||
message "* " @text.word[slot] " NOT FOUND" | |||
end if | |||
set slot + 1 | |||
goto ADDLOOP | |||
else if @selplayer.simple_name == "" | |||
if debug == 1 | |||
message "* " @text.word[slot] " EMPTY" | |||
end if | |||
set slot + 1 | |||
goto ADDLOOP | |||
else | |||
set i 0 | |||
LABEL COMPARELOOP | |||
if myThankGroup[i] == @selplayer.simple_name | |||
message "* " @selplayer.name " already in list SKIPPING" | |||
set slot + 1 | |||
goto ADDLOOP | |||
else | |||
if i < thankTotal | |||
set i + 1 | |||
goto COMPARELOOP | |||
end if | |||
setglobal myThankGroup[slotG] @selplayer.simple_name | |||
if debug == 1 | |||
message "*myThankGroup[" slotG "]= " myThankGroup[slotG] | |||
end if | |||
pause 1 | |||
set slot + 1 | |||
setglobal slotG + 1 | |||
setglobal thankTotal + 1 | |||
if debug == 1 | |||
message "thank total: " thankTotal | |||
end if | |||
goto ADDLOOP | |||
end if | |||
end if | |||
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 @text == "" | |||
message "Clearing thank group" | |||
setglobal thankTarget 1 | |||
setglobal counted 1 //NEW2021 was 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 //CurrentIndex used by moveUp | |||
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 | |||
"/select " myThankGroup[thankTarget] "\r" | |||
if @text == "" | |||
"/select " myThankGroup[thankTarget] "\r" | |||
call ThankMessage | |||
"/thank " @selplayer.name " " theMessage " :)\r" | |||
else | |||
"/thank " myThankGroup[thankTarget] " " @text "\r" | |||
end if | |||
pause 1 | |||
set tocheck @env.TextLog | |||
//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" | |||
end if | |||
setglobal missingTarget 1 | |||
call moveUp | |||
if debug == 1 | |||
message "tht/tot:" thankTarget ":ThankTotal:" thankTotal | |||
end if | |||
else if thankTarget < thankTotal | |||
call thankFeedback //20220625 EDIT switched order | |||
setglobal thankTarget + 1 //20220625 EDIT switched order | |||
else if thankTarget >= thankTotal | |||
call thankFeedback //20220625 EDIT switched order | |||
setglobal thankTarget 1 //20220625 EDIT switched order | |||
end if | |||
label END | |||
} | |||
thankFeedback | |||
{ | |||
if debug == 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 20220621 | |||
label LOOPSTART | |||
if counted <= thankTotal | |||
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 | |||
} | |||
/****** SHARERS *******/ | |||
// <<m_ThankSharers>> | |||
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 | |||
set countB 0 | |||
set i 0 | |||
set j 0 | |||
if debug == 1 | |||
message "ThankShares In: " @my.shares_in.num_words | |||
message "Shares in are " @my.shares_in | |||
message "ThankShares Out:" @my.shares_out.num_words | |||
message "Shares out are " @my.shares_out | |||
message "thankTotal: " thankTotal | |||
message "myThankGroup:" myThankGroup | |||
end if | |||
label LOOP0 | |||
if count <= @my.shares_in.num_words | |||
"/select " @my.shares_in.word[count] " \r" | |||
if @selplayer.simple_name == "" | |||
set count + 1 | |||
goto LOOP0 | |||
else if debug == 1 | |||
message "(L0)Start: select exile" @selplayer.simple_name | |||
end if | |||
pause 1 | |||
set i 1 | |||
LABEL COMPARELOOP | |||
if debug == 1 | |||
//message "(L0C1) ThankGroup[" i "]" myThankGroup[i] | |||
end if | |||
if myThankGroup[i] == @selplayer.simple_name | |||
message "*" @selplayer.name "in list (L0) SKIPPING" | |||
set count + 1 | |||
goto LOOP0 | |||
else if i < thankTotal | |||
set i + 1 | |||
//message "i:" i | |||
goto COMPARELOOP | |||
end if | |||
setglobal myThankGroup[slotG] @selplayer.simple_name | |||
pause 1 | |||
if debug == 1 | |||
message "* [" slotG "]" myThankGroup[slotG] " added to thank group. (L0)" | |||
end if | |||
setglobal slotG + 1 | |||
setglobal thankTotal + 1 | |||
if count < @my.shares_in.num_words | |||
set count + 1 | |||
goto LOOP0 | |||
end if | |||
pause 25 | |||
end if | |||
label LOOP2 | |||
if countB <= @my.shares_out.num_words | |||
"/select " @my.shares_out.word[countB] " \r" | |||
if @selplayer.simple_name == "" | |||
set countB + 1 | |||
goto LOOP2 | |||
else | |||
if debug == 1 | |||
message "(L2)Start: select exile" @selplayer.simple_name | |||
end if | |||
end if | |||
pause 1 | |||
set j 1 | |||
LABEL COMPARELOOP2 | |||
if debug == 1 | |||
//message "(L2C2) ThankGroup[" j "]" myThankGroup[j] | |||
end if | |||
if myThankGroup[j] == @selplayer.simple_name | |||
message "*" @selplayer.name "in list (L2) SKIPPING" | |||
set countB + 1 | |||
goto LOOP2 | |||
else if j < thankTotal | |||
set j + 1 | |||
//message "j:" j | |||
goto COMPARELOOP2 | |||
end if | |||
setglobal myThankGroup[slotG] @selplayer.simple_name | |||
pause 1 | |||
if debug == 1 | |||
message "* [" slotG "]" myThankGroup[slotG] " added to thank group. (L2)" | |||
end if | |||
setglobal slotG + 1 | |||
setglobal thankTotal + 1 | |||
if countB < @my.shares_out.num_words | |||
set countB + 1 | |||
goto LOOP2 | |||
end if | |||
pause 25 | |||
end if | |||
label END | |||
if debug == 1 | if debug == 1 | ||
message "slotG="slotG | call WhoAmIThanking | ||
end if | |||
} | |||
//<<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 <= thankTotal | |||
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 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 | |||
setglobal currentIndex thankTarget | |||
message "currentIndex:" currentIndex "exile to thank " myThankGroup[currentIndex] | |||
message "**moving up**thankTotal:" thankTotal "*" | |||
label DECLOOP | |||
setglobal cIndexPlus currentIndex | |||
setglobal cIndexPlus + 1 //CRITICAL: moves to next exile on list | |||
if cIndexPlus > thankTotal | |||
message "*m_moveUp*cIndexPlus Exceeds thankTotal" | |||
//setglobal myThankGroup[currentIndex] "" //20220619 edit from currentIndex //20220703 EDIT bug check! | |||
if debug == 1 | |||
message "*Thanklist reorganized* '/thg?' to see it (or '/set debug 1'" | |||
end if | |||
setglobal cIndexPlus thankTotal | |||
else if currentIndex == thankTotal //20220625 ADDED | |||
if myThankGroup[cIndexPlus] != "" | |||
setglobal myThankGroup[currentIndex] myThankGroup[cIndexPlus] | |||
setglobal currentIndex + 1 | |||
goto DECLOOP | |||
end if | |||
if thankTarget == currentIndex | |||
message " [" currentIndex "]* " myThankGroup[currentIndex] | |||
else | |||
message " [" currentIndex "] " myThankGroup[currentIndex] | |||
end if | |||
else //overwrites current exile | |||
if myThankGroup[cIndexPlus] != "" | |||
setglobal myThankGroup[currentIndex] myThankGroup[cIndexPlus] | |||
end if | |||
if myThankGroup[currentIndex] == myThankGroup[cIndexPlus] | |||
if thankTarget == currentIndex | |||
message " [" currentIndex "]* " myThankGroup[currentIndex] | |||
else | |||
message " [" currentIndex "] " myThankGroup[currentIndex] | |||
end if | |||
end if | |||
setglobal currentIndex + 1 | |||
goto DECLOOP | |||
end if | |||
setglobal thankTotal - 1 | |||
setglobal slotG - 1 | |||
end if | |||
if thankTotal < currentIndex | |||
if debug == 1 | |||
message "mTG[cI]" myThankGroup[currentIndex] currentIndex | |||
end if | |||
setglobal currentIndex 1 | |||
end if | |||
} | |||
//<<m_ThankMessage>> (/thm|/thgm) Sets and|or shows the message | |||
setglobal thankMessage 1 | |||
ThankMessage | |||
{ | |||
if @text == "/m" | |||
message theMessage | |||
else if @text == "/message" | |||
message theMessage | |||
else if @text == "?" | |||
message theMessage | |||
else if @text == "" | |||
random | |||
setglobal theMessage " because why not? " | |||
or | |||
setglobal theMessage " Thanks " | |||
or | |||
setglobal theMessage " Thank you " | |||
or | |||
setglobal theMessage " Thankx " | |||
or | |||
setglobal theMessage " good hunting " | |||
or | |||
setglobal theMessage " thanks a lot " | |||
or | |||
setglobal theMessage " Why? Because we like you " | |||
or | |||
setglobal theMessage " not that it really matters, but here's some good karma " | |||
or | |||
setglobal theMessage " Woo! Woo! " | |||
or | |||
setglobal theMessage " got Karma? " | |||
or | |||
setglobal theMessage " hu! hu! " | |||
or | |||
setglobal theMessage " a GK a day keeps the departs away " | |||
or | |||
setglobal theMessage " GK!GK!" | |||
or | |||
setglobal theMessage " happiness is GK" | |||
or | |||
setglobal theMessage " what's in a GK?" | |||
or | |||
setglobal theMessage " Good Karma is its own reward." | |||
or | |||
setglobal theMessage " this Good Karma brought to you by macros. Yes, macros" | |||
or | |||
setglobal theMessage " did you hear the one about the exile who got too much GK? — Turned ultraviolet" | |||
or | |||
setglobal theMessage " what's in. GK, let me count the ways…" | |||
or | |||
setglobal theMessage " A BK and a GK walk into a bar…" | |||
or | |||
setglobal theMessage " are we blue yet?" | |||
or | |||
setglobal theMessage " oh happy day, GK" | |||
or | |||
setglobal theMessage " GK ‘message and data rates still apply…’" | |||
or | |||
setglobal theMessage " keep healers blue! " | |||
or | |||
setglobal theMessage " Two by two; GK’s coming for you." | |||
or | |||
setglobal theMessage " Wooooooo!" | |||
or | |||
setglobal theMessage " There once was a mighty sailin’ man, a skipper brave and sure…" | |||
or | |||
setglobal theMessage " There are over 30 different good karma messages! Can you collect them all?" | |||
or | |||
setglobal theMessage "Karma Fever: Catch It!" | |||
or | |||
setglobal theMessage "Thanks for hunting with me." | |||
or | |||
setglobal theMessage "Thank you for the hunt." | |||
or | |||
setglobal theMessage "Without you here, it would be a duller world. :)" | |||
end random | |||
else if @text != "" | |||
setglobal theMessage @text | |||
end if | end if | ||
} | |||
if | |||
//<<m_ThankHelp>> {/thgh|/?th|/thh }Lists how to control macro | |||
ThankHelp | |||
{ | |||
setglobal hEntry 0 | |||
set initSwitch 1 | |||
call InitThG | |||
if @text == "overview" | |||
message "*Shares.txt::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 3 | |||
message "*Now you've done it!*" | |||
pause 2 | |||
message "*9..." | |||
pause 5 | |||
message "*8..." | |||
pause 5 | |||
message "*7..." | |||
pause 5 | |||
message "*6..." | |||
pause 5 | |||
message "*5..." | |||
pause 5 | |||
message "*4..." | |||
pause 5 | |||
message "*3..." | |||
pause 5 | |||
message "*2..." | |||
pause 5 | |||
message "*1..." | |||
pause 5 | |||
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.txt'" | |||
//message "*thanks for trying this macro. Feedback is welcome" | |||
end if | 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 | ||
} | |||
WhoAmIThanking | |||
} | |||
==Revisions== | ==Revisions== |
Latest revision as of 10:21, 1 October 2024
Description[edit]
Shares is an expansion of the default /share command to accept multiple names, to speed sharing groups of people. This newer version of thank sharers 2.x has full thank list building and thanking built in.
Dependencies[edit]
Optional Dependency on "/set debug" command in alternate default
Usage[edit]
just type in
sh <name> <name> <name> <name> <name>
to share up to your maximum number of people (5).
When you have karma to give
/tn
to thank the next person on the list. See the macro header for more information.
Noteworthy Techniques[edit]
Use of arrays.
Credits[edit]
Noivad
message "*Shares Macro Loaded" /* ------------------------------------------------------------------------- | shareMultiple Version 1.1.3 | ThankGroup Version 2.5.3 | ------------------------------- Description ----------------------------- Shares is an expansion of the default /share command to accept multiple names, to ease sharing and thanking groups of people. ---------------------------------- Usage -------------------------------- ##### type "/th?" for online help type: sh [name*] [name] [name] [name] [name] to share up to your maximum number of people. *You can type partial names as you can with the default share command. /ths to build thank list of shares in and out /tn to thank the next person on the list /ath to automatically thank and set through the list ---------------------------------- Setup ---------------------------------- Add the line below to your default macro file: include "Shares.txt" 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" ------------------------------ 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 4 minutes (set with "delay" global. the delay by default is just over 4 minutes, 1200 Frames). The Default Triggers are listed below, feel free to edit them. A short description is listed next to each trigger. ** 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) the 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 tech speak along with a short description 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 (REMOVED 2.5) v.2.1.3 *fixed a small bug that threw an 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. v2.3 fixes moveUp bug. ThankRandom is Broken & has been v.2.5.2 & 1.1.2 won't add people that are already on list ----------------------------------------------------------------------- */ /****** 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 ******/ "/moveup" call moveUp //removes players who are now offline "/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 "/thgm" call ThankMessage //sets the message given with karma "/thm" call ThankMessage "/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 // BROKEN: See * Above "/ths" call ThankSharers //loads shares into thank list "/tn" call ThankNext //Thanks the next person on list 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] "" //in case thankTarget is set to 0 set listA "Talin Silky Klur Natas Shadowfire" //EDIT to your friends /* ---- 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 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 /* ******************** shareMultiple v1.1.3 *********************** */ //<<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" setglobal ht[1] "*'sh|/shm|shm <name> [name]' shares & adds exiles to list" if slotG < 1 setglobal slotG 1 end if if @text != "" set count 0 label LOOP if count <= @text.num_words "/select " @text.word[count] " \r" if @selplayer.simple_name == "" set count + 1 goto LOOP end if "/share " @selplayer.simple_name " \r" if debug == 1 message "*attempted share with " @text.word[count] " in LOOP" end if pause 1 if "No player named " < @env.textLog set count + 1 goto LOOP end if set i 1 LABEL COMPARELOOP //ADDED 20220625 EXPERIMENTAL trying to search array for string if myThankGroup != "" //message "myThankGroup:" myThankGroup if myThankGroup < @selplayer.simple_name message @selplayer.simple_name "in myThankGroup" end if end if //ABOVE ADDED if myThankGroup[i] == @selplayer.simple_name message "* " @selplayer.name " already in list SKIPPING" set count + 1 pause 25 goto LOOP else if i < thankTotal set i + 1 goto COMPARELOOP end if setglobal myThankGroup[slotG] @selplayer.simple_name pause 1 if debug == 1 message "* [" slotG "]" myThankGroup[slotG] " added to thank group." end if setglobal slotG + 1 setglobal thankTotal + 1 if count < @text.num_words set count + 1 end if pause 25 goto LOOP end if end if else "/share\r" end if label END } /************************ Thank Group v2.5.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 @text == "reset" call ClearThankGroup goto END else if @text == "/reset" call ClearThankGroup goto END else if @text == ? message thga message theMessage 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 AddToThankGroup { setglobal ht[thga] "'/thga <name> [name]' adds exile|s to list" setglobal ht[3] "'/thga <name> [name]' adds exile|s to list" set num_people @text.num_words //gets the number of names to add (only use one word names for accuracy) set 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 "/select " @text.word[slot] "\r" if debug == 1 message "@selplayer.simple_name: " @selplayer.simple_name end if pause 1 if @env.textLog < "No player named " if debug == 1 message "* " @text.word[slot] " NOT FOUND" end if set slot + 1 goto ADDLOOP else if @selplayer.simple_name == "" if debug == 1 message "* " @text.word[slot] " EMPTY" end if set slot + 1 goto ADDLOOP else set i 0 LABEL COMPARELOOP if myThankGroup[i] == @selplayer.simple_name message "* " @selplayer.name " already in list SKIPPING" set slot + 1 goto ADDLOOP else if i < thankTotal set i + 1 goto COMPARELOOP end if setglobal myThankGroup[slotG] @selplayer.simple_name if debug == 1 message "*myThankGroup[" slotG "]= " myThankGroup[slotG] end if pause 1 set slot + 1 setglobal slotG + 1 setglobal thankTotal + 1 if debug == 1 message "thank total: " thankTotal end if goto ADDLOOP end if end if 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 @text == "" message "Clearing thank group" setglobal thankTarget 1 setglobal counted 1 //NEW2021 was 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 //CurrentIndex used by moveUp 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 "/select " myThankGroup[thankTarget] "\r" if @text == "" "/select " myThankGroup[thankTarget] "\r" call ThankMessage "/thank " @selplayer.name " " theMessage " :)\r" else "/thank " myThankGroup[thankTarget] " " @text "\r" end if pause 1 set tocheck @env.TextLog //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" end if setglobal missingTarget 1 call moveUp if debug == 1 message "tht/tot:" thankTarget ":ThankTotal:" thankTotal end if else if thankTarget < thankTotal call thankFeedback //20220625 EDIT switched order setglobal thankTarget + 1 //20220625 EDIT switched order else if thankTarget >= thankTotal call thankFeedback //20220625 EDIT switched order setglobal thankTarget 1 //20220625 EDIT switched order end if label END } thankFeedback { if debug == 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 20220621 label LOOPSTART if counted <= thankTotal 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 } /****** SHARERS *******/ // <<m_ThankSharers>> 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 set countB 0 set i 0 set j 0 if debug == 1 message "ThankShares In: " @my.shares_in.num_words message "Shares in are " @my.shares_in message "ThankShares Out:" @my.shares_out.num_words message "Shares out are " @my.shares_out message "thankTotal: " thankTotal message "myThankGroup:" myThankGroup end if label LOOP0 if count <= @my.shares_in.num_words "/select " @my.shares_in.word[count] " \r" if @selplayer.simple_name == "" set count + 1 goto LOOP0 else if debug == 1 message "(L0)Start: select exile" @selplayer.simple_name end if pause 1 set i 1 LABEL COMPARELOOP if debug == 1 //message "(L0C1) ThankGroup[" i "]" myThankGroup[i] end if if myThankGroup[i] == @selplayer.simple_name message "*" @selplayer.name "in list (L0) SKIPPING" set count + 1 goto LOOP0 else if i < thankTotal set i + 1 //message "i:" i goto COMPARELOOP end if setglobal myThankGroup[slotG] @selplayer.simple_name pause 1 if debug == 1 message "* [" slotG "]" myThankGroup[slotG] " added to thank group. (L0)" end if setglobal slotG + 1 setglobal thankTotal + 1 if count < @my.shares_in.num_words set count + 1 goto LOOP0 end if pause 25 end if label LOOP2 if countB <= @my.shares_out.num_words "/select " @my.shares_out.word[countB] " \r" if @selplayer.simple_name == "" set countB + 1 goto LOOP2 else if debug == 1 message "(L2)Start: select exile" @selplayer.simple_name end if end if pause 1 set j 1 LABEL COMPARELOOP2 if debug == 1 //message "(L2C2) ThankGroup[" j "]" myThankGroup[j] end if if myThankGroup[j] == @selplayer.simple_name message "*" @selplayer.name "in list (L2) SKIPPING" set countB + 1 goto LOOP2 else if j < thankTotal set j + 1 //message "j:" j goto COMPARELOOP2 end if setglobal myThankGroup[slotG] @selplayer.simple_name pause 1 if debug == 1 message "* [" slotG "]" myThankGroup[slotG] " added to thank group. (L2)" end if setglobal slotG + 1 setglobal thankTotal + 1 if countB < @my.shares_out.num_words set countB + 1 goto LOOP2 end if pause 25 end if label END if debug == 1 call WhoAmIThanking end if } //<<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 <= thankTotal 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 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 setglobal currentIndex thankTarget message "currentIndex:" currentIndex "exile to thank " myThankGroup[currentIndex] message "**moving up**thankTotal:" thankTotal "*" label DECLOOP setglobal cIndexPlus currentIndex setglobal cIndexPlus + 1 //CRITICAL: moves to next exile on list if cIndexPlus > thankTotal message "*m_moveUp*cIndexPlus Exceeds thankTotal" //setglobal myThankGroup[currentIndex] "" //20220619 edit from currentIndex //20220703 EDIT bug check! if debug == 1 message "*Thanklist reorganized* '/thg?' to see it (or '/set debug 1'" end if setglobal cIndexPlus thankTotal else if currentIndex == thankTotal //20220625 ADDED if myThankGroup[cIndexPlus] != "" setglobal myThankGroup[currentIndex] myThankGroup[cIndexPlus] setglobal currentIndex + 1 goto DECLOOP end if if thankTarget == currentIndex message " [" currentIndex "]* " myThankGroup[currentIndex] else message " [" currentIndex "] " myThankGroup[currentIndex] end if else //overwrites current exile if myThankGroup[cIndexPlus] != "" setglobal myThankGroup[currentIndex] myThankGroup[cIndexPlus] end if if myThankGroup[currentIndex] == myThankGroup[cIndexPlus] if thankTarget == currentIndex message " [" currentIndex "]* " myThankGroup[currentIndex] else message " [" currentIndex "] " myThankGroup[currentIndex] end if end if setglobal currentIndex + 1 goto DECLOOP end if setglobal thankTotal - 1 setglobal slotG - 1 end if if thankTotal < currentIndex if debug == 1 message "mTG[cI]" myThankGroup[currentIndex] currentIndex end if setglobal currentIndex 1 end if } //<<m_ThankMessage>> (/thm|/thgm) Sets and|or shows the message setglobal thankMessage 1 ThankMessage { if @text == "/m" message theMessage else if @text == "/message" message theMessage else if @text == "?" message theMessage else if @text == "" random setglobal theMessage " because why not? " or setglobal theMessage " Thanks " or setglobal theMessage " Thank you " or setglobal theMessage " Thankx " or setglobal theMessage " good hunting " or setglobal theMessage " thanks a lot " or setglobal theMessage " Why? Because we like you " or setglobal theMessage " not that it really matters, but here's some good karma " or setglobal theMessage " Woo! Woo! " or setglobal theMessage " got Karma? " or setglobal theMessage " hu! hu! " or setglobal theMessage " a GK a day keeps the departs away " or setglobal theMessage " GK!GK!" or setglobal theMessage " happiness is GK" or setglobal theMessage " what's in a GK?" or setglobal theMessage " Good Karma is its own reward." or setglobal theMessage " this Good Karma brought to you by macros. Yes, macros" or setglobal theMessage " did you hear the one about the exile who got too much GK? — Turned ultraviolet" or setglobal theMessage " what's in. GK, let me count the ways…" or setglobal theMessage " A BK and a GK walk into a bar…" or setglobal theMessage " are we blue yet?" or setglobal theMessage " oh happy day, GK" or setglobal theMessage " GK ‘message and data rates still apply…’" or setglobal theMessage " keep healers blue! " or setglobal theMessage " Two by two; GK’s coming for you." or setglobal theMessage " Wooooooo!" or setglobal theMessage " There once was a mighty sailin’ man, a skipper brave and sure…" or setglobal theMessage " There are over 30 different good karma messages! Can you collect them all?" or setglobal theMessage "Karma Fever: Catch It!" or setglobal theMessage "Thanks for hunting with me." or setglobal theMessage "Thank you for the hunt." or setglobal theMessage "Without you here, it would be a duller world. :)" end random else if @text != "" setglobal theMessage @text 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 "*Shares.txt::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 3 message "*Now you've done it!*" pause 2 message "*9..." pause 5 message "*8..." pause 5 message "*7..." pause 5 message "*6..." pause 5 message "*5..." pause 5 message "*4..." pause 5 message "*3..." pause 5 message "*2..." pause 5 message "*1..." pause 5 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.txt'" //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 }
Revisions[edit]
- 20100827-NV: