Example MacrosThanks to everyone who contributed to these examples. Copy any of these that you like into your macro file. // Clears the text field when you press the 'esc' key escape { set @env.echo true "\r" } // For quick posing option-numpad-1 "/pose kneel\r" option-numpad-2 "/pose sit\r" option-numpad-3 "/pose kneel\r" option-numpad-4 "/pose leanleft\r" option-numpad-5 "/pose angry\r" option-numpad-6 "/pose leanright\r" option-numpad-8 "/pose stand\r" option-numpad-7 "/pose akimbo\r" option-numpad-9 "/pose bless\r" option-numpad-0 "/pose lie\r" // Directional control shift-numpad-1 move walk sw shift-numpad-2 move walk s shift-numpad-3 move walk se shift-numpad-4 move walk w shift-numpad-5 move stop shift-numpad-6 move walk e shift-numpad-7 move walk nw shift-numpad-8 move walk n shift-numpad-9 move walk ne // Directional yells wnumpad-1 "/yell Southwest\r" numpad-2 "/yell South\r" numpad-3 "/yell Southeast\r" numpad-4 "/yell West\r" numpad-5 "/yell Here\r" numpad-6 "/yell East\r" numpad-7 "/yell Nortwest\r" numpad-8 "/yell North\r" numpad-9 "/yell Northeast\r" numpad-0 "/yell Regroup here.\r" // Sample arithmetic operations f8 { set num 1 num "\r" set num + 4 num "\r" set num2 6 num2 "\r" set num + num2 num "\r" } // emits 1, then 5 (which is 1 + 4), then 11 (5 + 6) // Toggle debugging on and off with the 'help' key help { if @env.debug == true setglobal @env.debug false else setglobal @env.debug true end if } // show the "in-game" names of what I'm holding "rdy" "/action readies his " @my.right_item " and " @my.left_item ".\r" // Talk backwards option-return { set on @text.num_words set on - 1 label mark @text.word[on] if on > 0 " " set on - 1 goto mark end if "\r" } // Use poses to bow. // May look silly for some races... "bow" { "/action bows.\r" "/pose akimbo\r" "/pose kneel\r" pause 2 "/pose akimbo\r" "/pose stand\r" } // Use poses to clap; illustrates the "call" instruction applaud { "/pose bless\r" "/pose akimbo\r" } "clap" { "/action applauds.\r" call applaud call applaud call applaud call applaud call applaud call applaud "/pose stand\r" } // Bounce up and down a number of times that you specify // Type "bounce 10" or "bounce 4" kneebend { "/pose kneel\r" "/pose akimbo\r" } "bounce" { if @text.num_words == 0 set numbounces 3 else set numbounces @text.word[0] end if "/action bounces.\r" set i 1 label bouncelab call kneebend if i < numbounces set i + 1 goto bouncelab end if } // A common part of dances "circle" { move walk s pause 1 move walk sw pause 1 move walk w pause 1 move walk nw pause 1 move walk n pause 1 move walk ne pause 1 move walk e pause 1 move walk se pause 1 move walk s pause 1 move stop } // Simulate being berzerk or drunk "drunk" { "/action staggers drunkenly.\r" set seed @random set seed % 16 set seed + 8 set i 0 label drunklab set wait @random set wait % 9 set wait + 1 call randwalk pause wait if i < seed set i + 1 goto drunklab end if move stop "/action collapses.\r" "/pose lie\r" "/sleep\r" } randwalk { random no-repeat move walk sw or move walk s or move walk se or move walk w or move walk e or move walk nw or move walk n or move walk ne end random } // Share with a list of people; the first ones in the list get priority. // Type "shl Lorian Bones Angel Axell Kisa Puffy Magnels" "shl" { set on @text.word_count set on - 1 label mark "/share " @text.word[on] "\r" if on > 0 pause 30 set on - 1 goto mark end if } // Call this macro so you can do something else while waiting for // your character to get out of Purgatory. // (Note: this is NOT the most efficient way to leave Purgatory!) "purg" { set @env.key_interrupts true set @env.click_interrupts true label moveLoopStart // Pick your own preferred direction(s) here. move run sw pause 5 move run s pause 5 goto moveLoopStart } // Check the time "time" { "/action looks at the sky.\r" set saveItem @my.right_item equip "Green Token" "/use\r" equip saveItem } // A set of sunstone macros that lets you automatically switch to your sunstone // when you want to /thinkto. It also remembers the last person that you thought // to and you can thinkto them again using "tc". set tt_target "" // Sunstone "tt" { set i 1 set saveItem @my.left_item setglobal tt_target @text.word[0] equip "Sunstone" // or whatever variant you own "/thinkto " @text "\r" if saveItem == "Nothing" unequip left else equip saveItem end if } "tc" { if tt_target == "" message "Error: no sunstone conversation target" else set saveItem @my.left_item equip "Sunstone" "/thinkto " tt_target " " @text "\r" if saveItem == "Nothing" unequip left else equip saveItem end if end if } // An interesting way to give your character some "character" with an accent "accent" { // replace s with z // replace c with kh // perhaps this exile has an accent or lisp set numword @text.num_words set numword - 1 set wordind 0 label wordlab set numchar @text.word[wordind].num_letters set numchar - 1 set word @text.word[wordind] set charind 0 label charlab set mychar word.letter[charind] if mychar == "s" "z" else if mychar == "c" "kh" else mychar end if if charind < numchar set charind + 1 goto charlab end if " " if wordind < numword set wordind + 1 goto wordlab end if "\r" } // The Zouclougeist Alliance dance. // global flag used for start/stop set stopwalk 1 // Macro is triggered by F9 both for start and stop. f9 { set @env.echo false set @env.key_interrupts false if stopwalk == 0 // we are already dancing, so /action the end setglobal stopwalk 1 "/action performed the Zou dance\r" move stop pause 2 else "/action will perform the Zou dance\r" pause 10 setglobal stopwalk 0 setglobal kroumphctr 0 label test set kroumphctr + 1 if kroumphctr == 5 random "/yell Kroumph!\r" or "/yell O My Zou!\r" or "/yell ZA Forever!\r" end random set kroumphctr 0 end if if stopwalk == 0 move run N pause 1 move run NE pause 1 end if if stopwalk == 0 move run E pause 1 move run SE pause 1 end if if stopwalk == 0 move run S pause 1 move run SW pause 1 end if if stopwalk == 0 move run W pause 1 move run NW pause 1 end if move stop pause 1 "/pose leanleft\r" pause 1 "/pose leanright\r" pause 1 "/pose stand\r" pause 1 if stopwalk == 0 move run S pause 1 move run SW pause 1 end if if stopwalk == 0 move run W pause 1 move run NW pause 1 end if if stopwalk == 0 move run N pause 1 move run NE pause 1 end if if stopwalk == 0 move run E pause 1 move run SE pause 1 move stop pause 1 "/pose leanleft\r" pause 1 "/pose leanright\r" pause 1 "/pose stand\r" pause 1 goto test end if move stop pause 2 end if } |