Delta Tao Clan Lord Clan Lord

Example Macros


Thanks 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
}