--------------------------------------------------------------------------------
001 Loop through room 1 to 1000 and change the color of rooms with the
    static (16) flag.
--------------------------------------------------------------------------------
#loop 1 1000 vnum
{
	#map goto $vnum;
	#map get roomflags result;
	#if {$result & 16}
	{
		#map set roomcolor <168>
	}
	{
		#map set roomcolor <178>
	}
}
--------------------------------------------------------------------------------
002 Capture session information.
--------------------------------------------------------------------------------
#action {^#SESSION '%1' CONNECTED TO '%2' PORT '%3'}
{
	#var session %1;
	#var address %2;
	#var port %3
}
--------------------------------------------------------------------------------
003 Capture system information. #script stores the output as a list,
    hence the need to convert it into a normal variable.
--------------------------------------------------------------------------------
#script {dir} {pwd}
#var dir $dir[1]
#script {home} {echo $HOME}
#var home $home[1]
--------------------------------------------------------------------------------
004 Automatically reconnect on disconnect.
--------------------------------------------------------------------------------
#event {SESSION CONNECTED}
{
	#event {SESSION DISCONNECTED}
	{
		#gts #delay 5 {#session %0 %1 %3}
	}
}
--------------------------------------------------------------------------------
005 Execute a random social at random time intervals.
--------------------------------------------------------------------------------
#tick {randomsocial}
{
	#delay {1d200-5}
	{
		#switch {1d3}
		{
			#case {1} {cheer}
			#case {2} {greet all}
			#case {3} {smile}
		}
	}
}
{200}
--------------------------------------------------------------------------------
006 Maintain a friendlist.
--------------------------------------------------------------------------------
#variable {friendlist}
{
	{1} {bubba}
	{2} {pamela}
	{3} {cookie}
	{4} {harry potter}
}
#function isfriend
{
	#format name %l {%0};
	#list friendlist fnd {$name} result
}
#act {%1 follows you.}
{
	#if {@isfriend{%1}}
	{
		group %1
	};
	#else
	{
		unfollow %1
	}
}
#alias {addfriend}
{
	#format name %l {%0};
	#list friendlist ins -1 $name;
	#showme $name has been added to your friendlist.
}
#alias {delfriend}
{
	#format name %l {%0};
	#if {@isfriend{$name}}
	{
		#list friendlist del @isfriend{$name};
		#showme $name has been deleted from your friendlist.
	};
	#else
	{
		#showme $name is not on your friendlist.
	}
}
--------------------------------------------------------------------------------
007 Append a goto to your current room when saving a map
--------------------------------------------------------------------------------
#alias {savemap}
{
	#map write %0;
	#map get roomvnum room;
	#system echo '#map goto $room' >> %0
}
--------------------------------------------------------------------------------
008 Log all text to a file with a timestamp with decisecond precision.
--------------------------------------------------------------------------------
#function {timestamp}
{
	#format utime {%U};
	#format result {%t.%m} {%Y-%m-%d %H:%M:%S} {$utime % 1000000 / 100000}
}
#event {RECEIVED LINE}
{
	#line log mylog.txt {<178>@timestamp{} \};
	#line log mylog.txt
}
--------------------------------------------------------------------------------
009 Old school tick support.
--------------------------------------------------------------------------------
#tick {oldtick}
{
	#delay 50 #showme #10 SECONDS TO TICK!!;
	#showme #TICK!!!
}
{60}
--------------------------------------------------------------------------------
010 Execute speedwalks with .
--------------------------------------------------------------------------------
#alias {.%0}
{
	#var cnt {};
	#parse {%0} {char}
	{
		#if {"$char" >= "0" && "$char" <= "9"}
		{
			#var cnt $cnt$char
		};
		#elseif {"$cnt" == ""}
		{
			#send $char
		};
		#else
		{
			#$cnt #send $char;
			#var cnt {}
		}
	}
}
--------------------------------------------------------------------------------
011 Targetting script
--------------------------------------------------------------------------------
#var targets {}
#alias {target}
{
	#if {"%0" == ""}
	{
		#showme {Current targets: $targets[]}
	};
	#elseif {$targets[%0]}
	{
		#unvar targets[%0];
		#showme Target '%0' removed.
	};
	#else
	{
		#var targets[%0] {};
		#showme Target '%0' added.
	}
}
#act {%1 arrives}
{
	#if {$targets[%1]} {kill %1}
}
#act {%1 is standing here}
{
	#if {$targets[%1]} {kill %1}
}
#action {%1 is dead! R.I.P.}
{
	#if {$targets[%1]} {target %1}
}
--------------------------------------------------------------------------------
014 Show xterm 256 colors.
--------------------------------------------------------------------------------
#var temp {}
#foreach {a;b;c;d;e;f} {var1}
{
	#foreach {a;b;c;d;e;f} {var2}
	{
		#foreach {a;b;c;d;e;f} {var3}
		{
			#var temp {$temp <$var1$var2$var3><<888>$var1$var2$var3>}
		};
		#showme $temp;
		#var temp {}
	}
}
#loop 0 23 cnt
{
	#format temp {$temp <g%+02s><<888>g%+02s} {$cnt} {$cnt};
}
#showme $temp
--------------------------------------------------------------------------------
015 Draw a health bar.
--------------------------------------------------------------------------------
#alias {hpbar}
{
	#math {hp_percent}{100 * %1 / %2};
	#math {hpbars1}   {$hp_percent / 5};
	#math {hpbars2}   {20 - $hpbars1};
	#format {hpbar} {<011>%+${hpbars1}s<099><000>%+${hpbars2}s<099> };
	#showme [$hpbar]
}
#alias {test}
{
	hpbar 30 100
}
--------------------------------------------------------------------------------
016 Syntax: sleep <seconds to delay> {commands}
If there is already a pending sleep the delay will be stacked.
--------------------------------------------------------------------------------
#var sleeptime 0
#var sleepcurr 0
#alias {sleep %1 %2}
{
	#format sleeptime %U;
	#if {$sleeptime > $sleepcurr}
	{
		#math sleepcurr $sleeptime + (%1) * 1000000;
		#delay {%1} %2;
	};
	#else
	{
		#math sleepcurr $sleepcurr + (%1) * 1000000;
	
		#delay {($sleepcurr - $sleeptime) / 1000000.000} %2
	}
}