AlternateDefault: Difference between revisions
From CLUMP
Jump to navigationJump to search
m →Code: updated Default Tag: Reverted |
m Reverted edits by Mwadmin (talk) to last revision by Inu Teisei Tag: Rollback |
||
| Line 3: | Line 3: | ||
==Dependencies== | ==Dependencies== | ||
* [[Abbreviations.mac]], [[Dances.mac]], [[Directions.mac]], [[Funactions.mac]], [[Keys.mac]], [[Omega_zu.mac]], [[Quickchain.mac]], [[Shares.mac]], [[Readtext.mac]], [[Sunstone.mac]], [[ | * [[Abbreviations.mac]], [[Dances.mac]], [[Directions.mac]], [[Funactions.mac]], [[Keys.mac]], [[Omega_zu.mac]], [[Quickchain.mac]], [[Shares.mac]], [[Readtext.mac]], [[Sunstone.mac]], [[tc_macro.mac]] | ||
==Usage== | ==Usage== | ||
| Line 34: | Line 34: | ||
==Code== | ==Code== | ||
<pre> | <pre> | ||
/ | //------------------------------------------------ | ||
// default | |||
//------------------------------------------------ | |||
// This macro file is included for every character by default. | |||
// Use it for general macros that you want available to all characters. | |||
include "abbreviations.mac" | |||
include "dances.mac" | |||
include "directions.mac" | |||
include "funactions.mac" | |||
include "omega_zu.mac" | |||
include "readtext.mac" | |||
include "shares.mac" | |||
include "sunstone.mac" | |||
include "tc_macro.mac" | |||
include "quickchain.mac" | |||
include "manticore.mac" | |||
include "keys.mac" | |||
include "moneycount.mac" | |||
@login | |||
{ | |||
//:::::::::::::::::::::::::::::::::::::::::::::::: | |||
// Global Variables Defined | |||
//:::::::::::::::::::::::::::::::::::::::::::::::: | |||
// 20071229-inu: Moved out of abbreviations.mac & tc_macro.mac | |||
setglobal NumZuBags 2 // the number of kudzu bags you carry, for some reason that scanner is in here | |||
setglobal ThankRandom 1 // turns on thank random routine at startup for use with idle routine | |||
setglobal scanBreak 0 // Enables scanner to run continuously. | |||
setglobal InfoExile 0 // Turns off exile info by default in AFK macro called on login, set can change it. | |||
setglobal MySunStone sungem // Set this to your sunstone, used in sunstone and tc_macro. | |||
setglobal IdleTime 100 // Set this to the desired pause time for idle macro (every 4 = 1 second approximately) | |||
setglobal default_pie_target "DragonHawk" //Used by Pie-O-Matic in funactions.mac | |||
setglobal weapon_of_choice "moonstone" //Used by Quickchain.mac to re-equip default right hand item. | |||
call MoneyCount | |||
call GoScan | |||
} | |||
//:::::::::::::::::::::::::::::::::::::::::::::::: | |||
// Function key macros | |||
//:::::::::::::::::::::::::::::::::::::::::::::::: | |||
// This allow all key based macros to be called from here. | |||
// Makes it easier to track which keys are used for which macros. | |||
// | |||
// F1 - embedded pull | |||
// F2 - embedded push | |||
// F3 - to moonstone.mac | |||
// F4 - to moonstone.mac | |||
// F5 - to quickchain.mac | |||
// F6 - to omega_zu.mac | |||
f1 "/pull " @splayer "\r" | |||
f2 "/push " @splayer "\r" | |||
f3 call itemswap //f3 switches between an item and your moonstone, | |||
shift-f3 call itemswap2 //When switching to the moonstone, you get a quick burst | |||
control-F3 call ultcad | |||
control-shift-F3 call ultcad2 | |||
f4 call cadswap | |||
f5 call flybychain | |||
f6 call zu-stuff | |||
shift-f6 call zu-add | |||
ctrl-f6 call zu-remove | |||
// Other keys | |||
control-click2 call click-action // Quickchain.mac -- Needs to be reviewed, problematic. | |||
click3 "/thank " @selplayer.simple_name "\r" | |||
control-click "/pull " @click.name "\r" | |||
control-shift-click "/push " @click.name "\r" | |||
control-tab setglobal mStop 1 | |||
// wheelup call flybychain // highly recommend against assigned anything to wheel up nor down | |||
// wheeldown call DHAwakeAFK // unless you have a clicky wheel. Using this with a smooth | |||
// scrolling mouse is not something to try, | |||
// use as you will have multiple calls to same macro. chain break! | |||
click4 message ==> TESTING // New mice have more than 3 buttons. | |||
//:::::::::::::::::::::::::::::::::::::::::::::::: | |||
// Macros called from login are defined here | |||
//:::::::::::::::::::::::::::::::::::::::::::::::: | |||
// | |||
//------------------------------------------------ | |||
// Torin's Exile Picker Macro | |||
//------------------------------------------------ | |||
// Picks a random exile | |||
// 20080129-inu: Fixed to stop picking myself. | |||
"/pick" call ExilePicker | |||
// | |||
ExilePicker | |||
{ | |||
set numPlayers 0 | |||
"/select " @last "\r" | |||
set lastExile @selplayer.simple_name | |||
"/select " @first "\r" | |||
set Exile[1] @selplayer.simple_name | |||
if @selplayer.simple_name == lastExile | |||
set numPlayers 1 | |||
goto ranPicker | |||
end if | |||
set exileCounter 1 | |||
label exileCountLoop | |||
"/select " @next "\r" | |||
set exileCounter + 1 | |||
set Exile[exileCounter] @selplayer.simple_name | |||
if @selplayer.simple_name == lastExile | |||
set numPlayers exileCounter | |||
goto ranPicker | |||
end if | |||
goto exileCountLoop | |||
label ranPicker | |||
set ranPick @random | |||
set ranPick % numPlayers | |||
set ranPick + 1 | |||
set testexile Exile[ranPick] | |||
if testexile == @my.simple_name | |||
set ranPick +1 | |||
end if | |||
setglobal randomExileClanning Exile[ranPick] | |||
"/select " randomExileClanning "\r" | |||
label endexilepicker | |||
} | |||
//------------------------------------------------ | |||
// GoScan and Scanner macros (Noivad's + ?) | |||
//------------------------------------------------ | |||
"goscan" call GoScan | |||
GoScan | |||
{ | |||
set @env.key_interrupts false //when you start you want it to loop | |||
set @env.click_interrupts false //these two lines makes sure it doesn't shut off | |||
if messageStatus == 1 | |||
message "Scanner On:" | |||
pause 8 | |||
end if | |||
if @text == "?" | |||
message "Type \"/t?\" to find the target." | |||
pause 8 | |||
message "Type \"/ts <name> [text]\" sets the target and sends them a message if you include one." | |||
pause 8 | |||
message "Type \"/set feedback [1|0|on|off]\" to toggle feedback on|off." | |||
pause 8 | |||
message "Type \"noscan\" to stop GoScan and DHAwakeAFK." | |||
end if | |||
"/pose lie\r" | |||
if @my.name == "Inu Teisei" | |||
"/action naps like DH \r" | |||
else | |||
"/action is sleeping \r" | |||
end if | |||
message **Idling with anti time-out active. | |||
call Scanner | |||
} | |||
//------------------------------------------------ | |||
// Scanner Macro (Noivad's + ?) | |||
//------------------------------------------------ | |||
Scanner | |||
{ | |||
// Rev 2.0 | |||
// RevLog: | |||
// 20071231-inu: Integrated DH's AwakeAFK macro with this scanner to avoid problems and auto call on login | |||
// 20080128-inu: Removed excessive pause in integrated DHAwakeAFK integrated counter instead. | |||
// Integrated Raul's trainer message reader. | |||
set IdleCount 0 | |||
label scanTop | |||
pause 1 | |||
if scanBreak == 1 | |||
goto scanEnder | |||
else | |||
//------------------------------------------------ | |||
// BEGIN: Scan for Text Section | |||
//------------------------------------------------ | |||
set scanText @env.textLog | |||
if scanText.word[0] < "/" | |||
setglobal timeStamps 3 | |||
setglobal playerName 2 | |||
setglobal me 6 | |||
else | |||
setglobal timeStamps 1 | |||
setglobal playerName 0 | |||
setglobal me 3 | |||
end if | |||
if scanText.word[timeStamps] == "thinks" //with timestamps[3] w/o [1] | |||
if scanText < "thinks to you, \"" | |||
if ssTarget != scanText.word[playerName] //w/timestamps[2] w/o[0] | |||
if scanText.word[playerName] != @my.name | |||
setglobal ssTarget scanText.word[playerName] | |||
setglobal feedback 1 //turn on feedback for new target | |||
pause 4 | |||
set IdleCount + 4 | |||
end if | |||
end if | |||
if messageStatus == 1 //this controls overall feedback | |||
//This if block turns off feedback when the target hasn't changed | |||
if feedback == 1 | |||
message "/tl target: " ssTarget | |||
setglobal feedback 0 | |||
end if | |||
end if | |||
end if | |||
else if scanText < "Captain Barnac asks, \"Ah, " | |||
set namePer @my.name | |||
set namePer + "." | |||
if scanText.word[me] == namePer | |||
pause 1 | |||
set IdleCount + 1 | |||
"yes\r" | |||
end if | |||
else if scanText < "Paul Deckand asks, \"Ah, " | |||
set namePer @my.name | |||
set namePer + "." | |||
if scanText.word[me] == namePer | |||
pause 1 | |||
set IdleCount + 1 | |||
"yes\r" | |||
end if | |||
else if scanText < "Fird Lirden asks, \"Ah, " | |||
set namePer @my.name | |||
set namePer + "." | |||
if scanText.word[me] == namePer | |||
pause 1 | |||
set IdleCount + 1 | |||
"yes\r" | |||
end if | |||
else if scanText < "* You don't have anything like that" | |||
if bag_number < NumZuBags | |||
setglobal bag_number + 1 | |||
message "*bag set to " bag_number | |||
"/equip bag of kudzu seedlings " bag_number "\r" | |||
else if bag_number > NumZuBags | |||
setglobal bag_number 1 | |||
"/equip bag of kudzu seedlings " bag_number "\r" | |||
end if | |||
pause 8 | |||
set IdleCount + 8 | |||
else if scanText < "You have no 'bag of kudzu seedlings" | |||
setglobal bag_number 1 | |||
"/equip bag of kudzu seedlings " bag_number "\r" | |||
else | |||
pause 1 | |||
set IdleCount + 1 | |||
end if | |||
//------------------------------------------------ | |||
// END: Scan for Text Section | |||
//------------------------------------------------ | |||
// START: DHAwakeAFK integration | |||
//------------------------------------------------ | |||
// Credits: Idle and awakeafk macros by DragonHawk | |||
// Adding Idle macro to this one big loop to stop possible conflicts between the two | |||
if IdleCount > IdleTime // Only execute this part one time per IdleTime period | |||
random | |||
message ::** ThankRandomExile **:: | |||
if ThankRandom == 1 | |||
call ExilePicker | |||
"/karma " randomExileClanning " \r" | |||
"/thank " randomExileClanning " **Yay! You won the thank lottery! ;p \r" | |||
end if | |||
"/pose stand se \r" | |||
or | |||
message ::** CheckMoney **:: | |||
"/money \r" | |||
if InfoExile == 1 | |||
"/info " randomExileClanning " \r" | |||
end if | |||
"/pose thoughtful \r" | |||
or | |||
message ::** InfoRandomExile **:: | |||
"/pose stand \r" | |||
"/pose sit " | |||
if InfoExile == 1 | |||
"/info " randomExileClanning " \r" | |||
end if | |||
end random | |||
"/karma \r" | |||
set IdleCount 0 | |||
end if | |||
set IdleCount + 1 | |||
//------------------------------------------------ | |||
// END: DHAwakeAFK integration | |||
//------------------------------------------------ | |||
// START: Readtext.mac by Raul integration | |||
//------------------------------------------------ | |||
setglobal gtrainerPhrase scanText | |||
call rankcount | |||
//------------------------------------------------ | |||
// END: Readtext.mac - trainer message by Raul integration | |||
//------------------------------------------------ | |||
goto scanTop | |||
end if // Scanner Loop | |||
label buggy //After time some infinite loops run away | |||
Message "Bug Detected:" //on you. So, I place these messages | |||
pause 2 //in to let you know if the macro | |||
Message "**Use <CTRL>-TAB to halt***" //has jumped out of the regular loop | |||
pause 120 //<--gives you time to escape the loop. | |||
label scanEnder | |||
if messageStatus == 1 | |||
message "Scanner Off" | |||
end if | |||
set @env.key_interrupts true //Kludges to try to stop a run away macro | |||
set @env.click_interrupts true //Kludges | |||
pause 300 //Kludges | |||
} | |||
//------------------------------------------------ | |||
// Global SET macro (Noivad's + ?) | |||
//------------------------------------------------ | |||
"/set" //non-optimized to add: messageVariable and call InstructionMessages | |||
{ | |||
if @text.word[0] == "verbose" | |||
if @text.word[1] == "?" | |||
message "* This variable sets whether or not to associate an \"/action\" or \"/narrate\" with a macro." | |||
pause 16 | |||
message "\"1\" is on, \"0\" is off." | |||
if modeVerbose == 0 | |||
message "*Verbose mode is off." | |||
else | |||
message "*Verbose mode is on." | |||
end if | |||
else | |||
if @text.word[1] == 1 | |||
setglobal modeVerbose @text.word[1] | |||
else if @text.word[1] == 0 | |||
setglobal modeVerbose @text.word[1] | |||
else | |||
message "Error: Verbose Mode must be set to 0 or 1." | |||
goto end | |||
end if | |||
if modeVerbose == "1" | |||
message "*Verbose mode: On." | |||
else if modeVerbose == "0" | |||
message "*Verbose mode: Off." | |||
end if | |||
end if | |||
else if @text.word[0] == "debug" | |||
if @text.word[1] == "?" | |||
message "*This variable sets whether debugger messages are displayed when testing a macro." | |||
pause 12 | |||
if debug == 0 | |||
message "*debug is off." | |||
else | |||
message "*debug mode is on." | |||
end if | |||
else if @text.word[1] == 1 | |||
setglobal debug @text.word[1] | |||
else if @text.word[1] == 0 | |||
setglobal debug @text.word[1] | |||
else if @text.word[1] == "on" | |||
setglobal debug 1 | |||
else if @text.word[1] == "off" | |||
setglobal debug 0 | |||
else | |||
message "Error: Debug Mode must be set to 0 or 1, or off and on." | |||
goto end | |||
end if | |||
message "debug is set to: " debug | |||
else if @text.word[0] == "longsleep" | |||
if @text.word[1] == "?" | |||
message "*This variable is used to toggle the long sleep macro \"on\" and \"off\"." | |||
if longsleep == 0 | |||
message "*longsleep is off." | |||
else | |||
message "*longsleep is on." | |||
end if | |||
else if @text.word[1] == "off" | |||
setglobal longsleep 0 | |||
message "*longsleep is off." | |||
else if @text.word[1] == "on" | |||
setglobal longsleep 1 | |||
message "*longsleep is on." | |||
end if | |||
else if @text.word[0] == "bag" | |||
if @text.word[1] == "?" | |||
message "*This variable is used to select a bag number to use for kudzu planting." | |||
message "the current bag is " bag_number "." | |||
end if | |||
if @text.word[1] > 0 | |||
setglobal bag_number @text.word[1] | |||
"/selectitem \"bag of kudzu seedlings <#" bag_number "\"\r" | |||
message "the current bag is " bag_number "." | |||
end if | |||
else if @text.word[0] == "maxbag" | |||
if @text.word[1] == "?" | |||
message "*This variable is used to set how many kudzu bags you have on you." | |||
message "the number of kudzu bags is " max_bag "." | |||
end if | |||
if @text.word[1] > 0 | |||
setglobal max_bag @text.word[1] | |||
message "you number of kudzu bags is set at " max_bag "." | |||
end if | |||
else if @text.word[0] == "loc" | |||
if @text.word[1] == "" | |||
setglobal FallingAt "" | |||
setglobal FallingLocSet 0 | |||
message fallingAt set with \"set loc\" to NADA | |||
else if @text.word[1] == "list" | |||
message fallingAt set with \"set loc\" to FallingAt | |||
else | |||
setglobal FallingAt "" | |||
setglobal FallingAt @text | |||
setglobal FallingLocSet 1 | |||
message fallingAt set with \"set loc\" to FallingAt | |||
end if | |||
else if @text.word[0] == "thankrandom" | |||
if @text.word[1] == "" | |||
setglobal ThankRandom 0 | |||
message "ThankRandom turned off" | |||
else if @text.word[1] == "?" | |||
if ThankRandom == 1 | |||
message "ThankRandom is currently on" | |||
else | |||
message "ThankRandom is currently OFF" | |||
end if | |||
else if @text.word[1] == "on" | |||
setglobal ThankRandom 1 | |||
message "ThankRandom is currently on" | |||
else if @text.word[1] == "off" | |||
setglobal ThankRandom 0 | |||
message "ThankRandom is currently OFF" | |||
else | |||
// default without params is to turn ThankRandom ON | |||
setglobal ThankRandom 1 | |||
message "ThankRandom is currently on" | |||
end if | |||
else if @text.word[0] == "infoexile" | |||
if @text.word[1] == "" | |||
setglobal InfoExile 0 | |||
message "InfoExile turned off" | |||
else if @text.word[1] == "?" | |||
if InfoExile == 1 | |||
message "InfoExile is currently on" | |||
else | |||
message "InfoExile is currently OFF" | |||
end if | |||
else if @text.word[1] == "on" | |||
setglobal InfoExile 1 | |||
message "InfoExile is currently on" | |||
else | |||
// default without params is to turn InfoExile OFF | |||
setglobal InfoExile 0 | |||
message "InfoExile is currently OFF" | |||
end if | |||
else if @text.word[0] == "feedback" | |||
if @text.word[1] == "?" | |||
message "Set feedback off macros to be <on|1> or <off|0>" | |||
if messageStatus == 0 | |||
set feedback "off" | |||
else if messageStatus == 1 | |||
set feedback "on" | |||
end if | |||
message "feedback is " feedback | |||
else if @text.word[1] == "on" | |||
setglobal messageStatus 1 | |||
message "feedback is on" | |||
else if @text.word[1] == "off" | |||
setglobal messageStatus 0 | |||
else if @text.word[1] == "1" | |||
setglobal messageStatus @text.word[1] | |||
message "feedback is on" | |||
else if @text.word[1] == "0" | |||
setglobal messageStatus @text.word[1] | |||
end if | |||
else if @text.word[0] == "pie" | |||
if @text.word[1] == "?" | |||
message "Set the default pie target used by /pie, /pom" | |||
message "Current target is " default_pie_target | |||
else if @text.word[1] == "" | |||
setglobal default_pie_target @selplayer.simple_name | |||
message "New default pie target is: " default_pie_target | |||
else | |||
setglobal default_pie_target @text.word[1] | |||
message "New default pie target is: " default_pie_target | |||
end if | |||
else | |||
message "*The following variables are available to set using this command:" | |||
pause 4 | |||
message "*verbose [0|1|?], longsleep [on|off|?]" | |||
pause 4 | |||
message "feedback [1|0|on|off]" | |||
pause 4 | |||
message "*clock, bag [(number)], maxbag (number), wh(isper) [on|off], debug [on|1|off|0]" | |||
pause 4 | |||
message "loc [areaname], "thankrandom [on|off|?], infoexile [off|on|?]" | |||
pause 4 | |||
message "pie [targetname or selected in playerlist|?]" | |||
end if | |||
label end | |||
} | |||
"noscan" | |||
{ | |||
setglobal scanBreak 1 //This alows you to stop this macro without stopping other macros | |||
} | |||
// Wait or sleep, by Phineas | |||
setglobal zzToggle 0 | |||
"zz" | |||
{ | |||
if zzToggle == 1 | |||
message "zz - zzToggle=1" | |||
setglobal zzToggle 0 | |||
else if zzToggle == 0 | |||
message "zz - zzToggle=0" | |||
setglobal zzToggle 1 | |||
setglobal sleepToggle 1 | |||
end if | end if | ||
call wait_routine | |||
} | |||
"zzz" | |||
{ | |||
if zzToggle == 1 | |||
message "zzz - zzToggle=1" | |||
setglobal zzToggle 0 | |||
else if zzToggle == 0 | |||
message "zzz - zzToggle=0" | |||
setglobal zzToggle 1 | |||
"\pose lie\r" | |||
"\sleep\r" | |||
setglobal sleepToggle 1 | |||
end if | |||
call wait_routine | |||
} | |||
wait_routine | |||
{ | |||
label wr_01 | |||
//message "wait routine - top" | |||
if zzToggle == 1 | |||
pause 400 | |||
random | |||
{ | |||
message "wr - random -1- karma" | |||
"\karma\r" | |||
pause 100 | |||
or | |||
message "wr - random -1- money" | |||
"\money\r" | |||
pause 100 | |||
or | |||
message "wr - random -1- dreaming" | |||
"\sleep \r" | |||
pause 100 | |||
end random | |||
} | |||
goto wr_01 | |||
end if | |||
message "*zz is Off" | |||
} | |||
</pre> | </pre> | ||
Latest revision as of 12:54, 21 October 2024
Description
- An alternate default which incorporates global variables so main items are set in this area vice being set in individual macro files - e.g. Sunstone.
Dependencies
- Abbreviations.mac, Dances.mac, Directions.mac, Funactions.mac, Keys.mac, Omega_zu.mac, Quickchain.mac, Shares.mac, Readtext.mac, Sunstone.mac, tc_macro.mac
Usage
- Save code section into file called Default in your clanlord/data/macros folder.
Noteworthy techniques
- Usage of SET function to set variables, on the fly while clanning without having to reload macros.
- Usage of Global Variables to allow define once, use everywhere.
- Avoids the hassle of editing macros to change an item to it's upgraded variant everywhere that item is referrred to.
- All key/mouse actions defined centrally.
- Requires called macro be defined in an included file.
- Requires that no key/mouse actions be defined in any other file.
- Makes it simple to figure out which keys you have not assigned yet.
- Single scan/loop - to prevent conflicting never ending loops.
- NOW INCLUDES: Raul's readtext trainer messages to prevent overlap.
- Automatic idle startup.
- Some things will still kill it, so to restart, reload macros (CTRL+R).
- Moved all but global procedures out of default into dedicated files to clean up default and avoid the feeling that you are swimming through an encyclopedia.
Credits
- DragonHawk - AwakeAFK
- Gorvin - Shares
- Inu - Random thank, single instance definitions, integration of various other macros into this Alternate Default, moving stuff not required for scanner/set global into their own dedicated file.
- Kiriel D'Sol - Directions
- Noivad - Moneycount, Omega_Zu, Quickchain, Sunstone, tc_macro,
- Phineas - idle
- Raul - Readtext (trainer messages)
- Torin - Exilepicker
Code
//------------------------------------------------
// default
//------------------------------------------------
// This macro file is included for every character by default.
// Use it for general macros that you want available to all characters.
include "abbreviations.mac"
include "dances.mac"
include "directions.mac"
include "funactions.mac"
include "omega_zu.mac"
include "readtext.mac"
include "shares.mac"
include "sunstone.mac"
include "tc_macro.mac"
include "quickchain.mac"
include "manticore.mac"
include "keys.mac"
include "moneycount.mac"
@login
{
//::::::::::::::::::::::::::::::::::::::::::::::::
// Global Variables Defined
//::::::::::::::::::::::::::::::::::::::::::::::::
// 20071229-inu: Moved out of abbreviations.mac & tc_macro.mac
setglobal NumZuBags 2 // the number of kudzu bags you carry, for some reason that scanner is in here
setglobal ThankRandom 1 // turns on thank random routine at startup for use with idle routine
setglobal scanBreak 0 // Enables scanner to run continuously.
setglobal InfoExile 0 // Turns off exile info by default in AFK macro called on login, set can change it.
setglobal MySunStone sungem // Set this to your sunstone, used in sunstone and tc_macro.
setglobal IdleTime 100 // Set this to the desired pause time for idle macro (every 4 = 1 second approximately)
setglobal default_pie_target "DragonHawk" //Used by Pie-O-Matic in funactions.mac
setglobal weapon_of_choice "moonstone" //Used by Quickchain.mac to re-equip default right hand item.
call MoneyCount
call GoScan
}
//::::::::::::::::::::::::::::::::::::::::::::::::
// Function key macros
//::::::::::::::::::::::::::::::::::::::::::::::::
// This allow all key based macros to be called from here.
// Makes it easier to track which keys are used for which macros.
//
// F1 - embedded pull
// F2 - embedded push
// F3 - to moonstone.mac
// F4 - to moonstone.mac
// F5 - to quickchain.mac
// F6 - to omega_zu.mac
f1 "/pull " @splayer "\r"
f2 "/push " @splayer "\r"
f3 call itemswap //f3 switches between an item and your moonstone,
shift-f3 call itemswap2 //When switching to the moonstone, you get a quick burst
control-F3 call ultcad
control-shift-F3 call ultcad2
f4 call cadswap
f5 call flybychain
f6 call zu-stuff
shift-f6 call zu-add
ctrl-f6 call zu-remove
// Other keys
control-click2 call click-action // Quickchain.mac -- Needs to be reviewed, problematic.
click3 "/thank " @selplayer.simple_name "\r"
control-click "/pull " @click.name "\r"
control-shift-click "/push " @click.name "\r"
control-tab setglobal mStop 1
// wheelup call flybychain // highly recommend against assigned anything to wheel up nor down
// wheeldown call DHAwakeAFK // unless you have a clicky wheel. Using this with a smooth
// scrolling mouse is not something to try,
// use as you will have multiple calls to same macro. chain break!
click4 message ==> TESTING // New mice have more than 3 buttons.
//::::::::::::::::::::::::::::::::::::::::::::::::
// Macros called from login are defined here
//::::::::::::::::::::::::::::::::::::::::::::::::
//
//------------------------------------------------
// Torin's Exile Picker Macro
//------------------------------------------------
// Picks a random exile
// 20080129-inu: Fixed to stop picking myself.
"/pick" call ExilePicker
//
ExilePicker
{
set numPlayers 0
"/select " @last "\r"
set lastExile @selplayer.simple_name
"/select " @first "\r"
set Exile[1] @selplayer.simple_name
if @selplayer.simple_name == lastExile
set numPlayers 1
goto ranPicker
end if
set exileCounter 1
label exileCountLoop
"/select " @next "\r"
set exileCounter + 1
set Exile[exileCounter] @selplayer.simple_name
if @selplayer.simple_name == lastExile
set numPlayers exileCounter
goto ranPicker
end if
goto exileCountLoop
label ranPicker
set ranPick @random
set ranPick % numPlayers
set ranPick + 1
set testexile Exile[ranPick]
if testexile == @my.simple_name
set ranPick +1
end if
setglobal randomExileClanning Exile[ranPick]
"/select " randomExileClanning "\r"
label endexilepicker
}
//------------------------------------------------
// GoScan and Scanner macros (Noivad's + ?)
//------------------------------------------------
"goscan" call GoScan
GoScan
{
set @env.key_interrupts false //when you start you want it to loop
set @env.click_interrupts false //these two lines makes sure it doesn't shut off
if messageStatus == 1
message "Scanner On:"
pause 8
end if
if @text == "?"
message "Type \"/t?\" to find the target."
pause 8
message "Type \"/ts <name> [text]\" sets the target and sends them a message if you include one."
pause 8
message "Type \"/set feedback [1|0|on|off]\" to toggle feedback on|off."
pause 8
message "Type \"noscan\" to stop GoScan and DHAwakeAFK."
end if
"/pose lie\r"
if @my.name == "Inu Teisei"
"/action naps like DH \r"
else
"/action is sleeping \r"
end if
message **Idling with anti time-out active.
call Scanner
}
//------------------------------------------------
// Scanner Macro (Noivad's + ?)
//------------------------------------------------
Scanner
{
// Rev 2.0
// RevLog:
// 20071231-inu: Integrated DH's AwakeAFK macro with this scanner to avoid problems and auto call on login
// 20080128-inu: Removed excessive pause in integrated DHAwakeAFK integrated counter instead.
// Integrated Raul's trainer message reader.
set IdleCount 0
label scanTop
pause 1
if scanBreak == 1
goto scanEnder
else
//------------------------------------------------
// BEGIN: Scan for Text Section
//------------------------------------------------
set scanText @env.textLog
if scanText.word[0] < "/"
setglobal timeStamps 3
setglobal playerName 2
setglobal me 6
else
setglobal timeStamps 1
setglobal playerName 0
setglobal me 3
end if
if scanText.word[timeStamps] == "thinks" //with timestamps[3] w/o [1]
if scanText < "thinks to you, \""
if ssTarget != scanText.word[playerName] //w/timestamps[2] w/o[0]
if scanText.word[playerName] != @my.name
setglobal ssTarget scanText.word[playerName]
setglobal feedback 1 //turn on feedback for new target
pause 4
set IdleCount + 4
end if
end if
if messageStatus == 1 //this controls overall feedback
//This if block turns off feedback when the target hasn't changed
if feedback == 1
message "/tl target: " ssTarget
setglobal feedback 0
end if
end if
end if
else if scanText < "Captain Barnac asks, \"Ah, "
set namePer @my.name
set namePer + "."
if scanText.word[me] == namePer
pause 1
set IdleCount + 1
"yes\r"
end if
else if scanText < "Paul Deckand asks, \"Ah, "
set namePer @my.name
set namePer + "."
if scanText.word[me] == namePer
pause 1
set IdleCount + 1
"yes\r"
end if
else if scanText < "Fird Lirden asks, \"Ah, "
set namePer @my.name
set namePer + "."
if scanText.word[me] == namePer
pause 1
set IdleCount + 1
"yes\r"
end if
else if scanText < "* You don't have anything like that"
if bag_number < NumZuBags
setglobal bag_number + 1
message "*bag set to " bag_number
"/equip bag of kudzu seedlings " bag_number "\r"
else if bag_number > NumZuBags
setglobal bag_number 1
"/equip bag of kudzu seedlings " bag_number "\r"
end if
pause 8
set IdleCount + 8
else if scanText < "You have no 'bag of kudzu seedlings"
setglobal bag_number 1
"/equip bag of kudzu seedlings " bag_number "\r"
else
pause 1
set IdleCount + 1
end if
//------------------------------------------------
// END: Scan for Text Section
//------------------------------------------------
// START: DHAwakeAFK integration
//------------------------------------------------
// Credits: Idle and awakeafk macros by DragonHawk
// Adding Idle macro to this one big loop to stop possible conflicts between the two
if IdleCount > IdleTime // Only execute this part one time per IdleTime period
random
message ::** ThankRandomExile **::
if ThankRandom == 1
call ExilePicker
"/karma " randomExileClanning " \r"
"/thank " randomExileClanning " **Yay! You won the thank lottery! ;p \r"
end if
"/pose stand se \r"
or
message ::** CheckMoney **::
"/money \r"
if InfoExile == 1
"/info " randomExileClanning " \r"
end if
"/pose thoughtful \r"
or
message ::** InfoRandomExile **::
"/pose stand \r"
"/pose sit "
if InfoExile == 1
"/info " randomExileClanning " \r"
end if
end random
"/karma \r"
set IdleCount 0
end if
set IdleCount + 1
//------------------------------------------------
// END: DHAwakeAFK integration
//------------------------------------------------
// START: Readtext.mac by Raul integration
//------------------------------------------------
setglobal gtrainerPhrase scanText
call rankcount
//------------------------------------------------
// END: Readtext.mac - trainer message by Raul integration
//------------------------------------------------
goto scanTop
end if // Scanner Loop
label buggy //After time some infinite loops run away
Message "Bug Detected:" //on you. So, I place these messages
pause 2 //in to let you know if the macro
Message "**Use <CTRL>-TAB to halt***" //has jumped out of the regular loop
pause 120 //<--gives you time to escape the loop.
label scanEnder
if messageStatus == 1
message "Scanner Off"
end if
set @env.key_interrupts true //Kludges to try to stop a run away macro
set @env.click_interrupts true //Kludges
pause 300 //Kludges
}
//------------------------------------------------
// Global SET macro (Noivad's + ?)
//------------------------------------------------
"/set" //non-optimized to add: messageVariable and call InstructionMessages
{
if @text.word[0] == "verbose"
if @text.word[1] == "?"
message "* This variable sets whether or not to associate an \"/action\" or \"/narrate\" with a macro."
pause 16
message "\"1\" is on, \"0\" is off."
if modeVerbose == 0
message "*Verbose mode is off."
else
message "*Verbose mode is on."
end if
else
if @text.word[1] == 1
setglobal modeVerbose @text.word[1]
else if @text.word[1] == 0
setglobal modeVerbose @text.word[1]
else
message "Error: Verbose Mode must be set to 0 or 1."
goto end
end if
if modeVerbose == "1"
message "*Verbose mode: On."
else if modeVerbose == "0"
message "*Verbose mode: Off."
end if
end if
else if @text.word[0] == "debug"
if @text.word[1] == "?"
message "*This variable sets whether debugger messages are displayed when testing a macro."
pause 12
if debug == 0
message "*debug is off."
else
message "*debug mode is on."
end if
else if @text.word[1] == 1
setglobal debug @text.word[1]
else if @text.word[1] == 0
setglobal debug @text.word[1]
else if @text.word[1] == "on"
setglobal debug 1
else if @text.word[1] == "off"
setglobal debug 0
else
message "Error: Debug Mode must be set to 0 or 1, or off and on."
goto end
end if
message "debug is set to: " debug
else if @text.word[0] == "longsleep"
if @text.word[1] == "?"
message "*This variable is used to toggle the long sleep macro \"on\" and \"off\"."
if longsleep == 0
message "*longsleep is off."
else
message "*longsleep is on."
end if
else if @text.word[1] == "off"
setglobal longsleep 0
message "*longsleep is off."
else if @text.word[1] == "on"
setglobal longsleep 1
message "*longsleep is on."
end if
else if @text.word[0] == "bag"
if @text.word[1] == "?"
message "*This variable is used to select a bag number to use for kudzu planting."
message "the current bag is " bag_number "."
end if
if @text.word[1] > 0
setglobal bag_number @text.word[1]
"/selectitem \"bag of kudzu seedlings <#" bag_number "\"\r"
message "the current bag is " bag_number "."
end if
else if @text.word[0] == "maxbag"
if @text.word[1] == "?"
message "*This variable is used to set how many kudzu bags you have on you."
message "the number of kudzu bags is " max_bag "."
end if
if @text.word[1] > 0
setglobal max_bag @text.word[1]
message "you number of kudzu bags is set at " max_bag "."
end if
else if @text.word[0] == "loc"
if @text.word[1] == ""
setglobal FallingAt ""
setglobal FallingLocSet 0
message fallingAt set with \"set loc\" to NADA
else if @text.word[1] == "list"
message fallingAt set with \"set loc\" to FallingAt
else
setglobal FallingAt ""
setglobal FallingAt @text
setglobal FallingLocSet 1
message fallingAt set with \"set loc\" to FallingAt
end if
else if @text.word[0] == "thankrandom"
if @text.word[1] == ""
setglobal ThankRandom 0
message "ThankRandom turned off"
else if @text.word[1] == "?"
if ThankRandom == 1
message "ThankRandom is currently on"
else
message "ThankRandom is currently OFF"
end if
else if @text.word[1] == "on"
setglobal ThankRandom 1
message "ThankRandom is currently on"
else if @text.word[1] == "off"
setglobal ThankRandom 0
message "ThankRandom is currently OFF"
else
// default without params is to turn ThankRandom ON
setglobal ThankRandom 1
message "ThankRandom is currently on"
end if
else if @text.word[0] == "infoexile"
if @text.word[1] == ""
setglobal InfoExile 0
message "InfoExile turned off"
else if @text.word[1] == "?"
if InfoExile == 1
message "InfoExile is currently on"
else
message "InfoExile is currently OFF"
end if
else if @text.word[1] == "on"
setglobal InfoExile 1
message "InfoExile is currently on"
else
// default without params is to turn InfoExile OFF
setglobal InfoExile 0
message "InfoExile is currently OFF"
end if
else if @text.word[0] == "feedback"
if @text.word[1] == "?"
message "Set feedback off macros to be <on|1> or <off|0>"
if messageStatus == 0
set feedback "off"
else if messageStatus == 1
set feedback "on"
end if
message "feedback is " feedback
else if @text.word[1] == "on"
setglobal messageStatus 1
message "feedback is on"
else if @text.word[1] == "off"
setglobal messageStatus 0
else if @text.word[1] == "1"
setglobal messageStatus @text.word[1]
message "feedback is on"
else if @text.word[1] == "0"
setglobal messageStatus @text.word[1]
end if
else if @text.word[0] == "pie"
if @text.word[1] == "?"
message "Set the default pie target used by /pie, /pom"
message "Current target is " default_pie_target
else if @text.word[1] == ""
setglobal default_pie_target @selplayer.simple_name
message "New default pie target is: " default_pie_target
else
setglobal default_pie_target @text.word[1]
message "New default pie target is: " default_pie_target
end if
else
message "*The following variables are available to set using this command:"
pause 4
message "*verbose [0|1|?], longsleep [on|off|?]"
pause 4
message "feedback [1|0|on|off]"
pause 4
message "*clock, bag [(number)], maxbag (number), wh(isper) [on|off], debug [on|1|off|0]"
pause 4
message "loc [areaname], "thankrandom [on|off|?], infoexile [off|on|?]"
pause 4
message "pie [targetname or selected in playerlist|?]"
end if
label end
}
"noscan"
{
setglobal scanBreak 1 //This alows you to stop this macro without stopping other macros
}
// Wait or sleep, by Phineas
setglobal zzToggle 0
"zz"
{
if zzToggle == 1
message "zz - zzToggle=1"
setglobal zzToggle 0
else if zzToggle == 0
message "zz - zzToggle=0"
setglobal zzToggle 1
setglobal sleepToggle 1
end if
call wait_routine
}
"zzz"
{
if zzToggle == 1
message "zzz - zzToggle=1"
setglobal zzToggle 0
else if zzToggle == 0
message "zzz - zzToggle=0"
setglobal zzToggle 1
"\pose lie\r"
"\sleep\r"
setglobal sleepToggle 1
end if
call wait_routine
}
wait_routine
{
label wr_01
//message "wait routine - top"
if zzToggle == 1
pause 400
random
{
message "wr - random -1- karma"
"\karma\r"
pause 100
or
message "wr - random -1- money"
"\money\r"
pause 100
or
message "wr - random -1- dreaming"
"\sleep \r"
pause 100
end random
}
goto wr_01
end if
message "*zz is Off"
}
Revisions
- v1.0 2008012x-inu: posted.
- v1.1 20080128-inu: Fixed errors
- v2.0 20080128-inu: Revamped to remove excessive idle pause and integrate Raul's Trainer messages. Also by removing excessive pause in integrated DHAwakeAFK part of scanner, eliminated one way fogginess (where everything keeps moving except you).
- v2.1 20080129-inu: Added recommended movement of Raul's readtext.mac back to separate file while still integrating into the main scanner loop via a call as recommended by ?.
- v2.1.1 20080129-inu: Added pie-o-matic global default pie target variable. Fixed ExilePicker to exclude currently clanning character.
Links
- Macros
- Macros_Contributed
- Troubleshooting_macros
- Github CL-LA/macros -- Use Right Click/New Tab to open in another tab