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