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