| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347 |
- #nop -------------------------------------------------------------------------
- #nop Learn by example
- #nop -------------------------------------------------------------------------
- #nop -------------------------------------------------------------------------
- #nop Loop through room 1 to 1000 and change the color of rooms with the
- #nop static (16) flag to <168>.
- #nop -------------------------------------------------------------------------
- #loop 1 1000 vnum
- {
- #map at $vnum
- {
- #map get roomflags result;
- #if {$result & 16}
- {
- #map set roomcolor <168>
- }
- }
- }
- #nop -------------------------------------------------------------------------
- #nop Capture system information. #script stores the output as a list,
- #nop hence the need to convert it into a normal variable.
- #nop -------------------------------------------------------------------------
- #script {dir} {pwd}
- #var dir $dir[1]
- #script {home} {echo $HOME}
- #var home $home[1]
- #nop -------------------------------------------------------------------------
- #nop Automatically reconnect on disconnect.
- #nop -------------------------------------------------------------------------
- #event {SESSION CONNECTED}
- {
- #event {SESSION DISCONNECTED}
- {
- #gts #delay 5 {#session %0 %1 %3}
- }
- }
- #nop -------------------------------------------------------------------------
- #nop Execute a random social at random time intervals.
- #nop -------------------------------------------------------------------------
- #tick {randomsocial}
- {
- #delay {1d180}
- {
- #switch {1d4}
- {
- #case {1} {cheer}
- #case {2} {greet all}
- #case {3} {smile}
- #case {4} {laugh self}
- }
- }
- }
- {200}
- #nop -------------------------------------------------------------------------
- #nop Maintain a friendlist. %i creates a case insensitive regex.
- #nop -------------------------------------------------------------------------
- #variable {friendlist}
- {
- {bubba};{pamela};{cookie};{harry potter}
- }
- #function isfriend
- {
- #return &friendlist[%i%0];
- }
- #act {%1 follows you.}
- {
- #if {@isfriend{%1}}
- {
- group %1
- };
- #else
- {
- unfollow %1
- }
- }
- #alias {addfriend}
- {
- #format name %l {%0};
- #var friendlist[$name] {};
- #showme $name has been added to your friendlist.
- }
- #alias {delfriend}
- {
- #format name %l {%0};
- #if {@isfriend{$name}}
- {
- #unvar friendlist[$name];
- #showme $name has been deleted from your friendlist.
- };
- #else
- {
- #showme $name is not on your friendlist.
- }
- }
- #nop -------------------------------------------------------------------------
- #nop Append a goto to your current room when saving a map. You can use
- #nop #map return instead.
- #nop -------------------------------------------------------------------------
- #alias {savemap}
- {
- #map write %0;
- #map get roomvnum room;
- #system echo '#map goto $room' >> %0
- }
- #nop -------------------------------------------------------------------------
- #nop Log all text to a file with a timestamp with decisecond precision.
- #nop -------------------------------------------------------------------------
- #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
- }
- #nop -------------------------------------------------------------------------
- #nop Old school tick support.
- #nop -------------------------------------------------------------------------
- #tick {oldtick}
- {
- #delay 50 #showme #10 SECONDS TO TICK!!;
- #showme #TICK!!!
- }
- {60}
- #nop -------------------------------------------------------------------------
- #nop Execute speedwalks with .
- #nop -------------------------------------------------------------------------
- #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 {}
- }
- }
- }
- #nop -------------------------------------------------------------------------
- #nop Targetting script
- #nop -------------------------------------------------------------------------
- #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}
- }
- #nop -------------------------------------------------------------------------
- #nop Show xterm 256 colors.
- #nop -------------------------------------------------------------------------
- #var temp {}
- #foreach {0;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15} {var1}
- {
- #showme {$var1 \e[38;5;${var1}m}
- }
- #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
- #nop -------------------------------------------------------------------------
- #nop Draw a health bar.
- #nop -------------------------------------------------------------------------
- #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
- }
- #nop -------------------------------------------------------------------------
- #nop Syntax: sleep <seconds to delay> {commands}
- #nop
- #nop If there is already a pending sleep the delay will be stacked.
- #nop -------------------------------------------------------------------------
- #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
- }
- }
- #nop -------------------------------------------------------------------------
- #nop This function and substitution will highlight spelling errors as red.
- #nop -------------------------------------------------------------------------
- #function spellcheck
- {
- #format result %S %1;
- #if {$result == 0}
- {
- #var result %1
- };
- #else
- {
- #var result <118>%1<278>
- }
- }
- #substitute {{\b[a-zA-Z]+\b}} {@spellcheck{%1}}
- #nop -------------------------------------------------------------------------
- #nop This function tests the random number engine
- #nop -------------------------------------------------------------------------
- #alias random
- {
- #var random {};
- #loop 1 1000 cnt
- {
- #math tmp 1d1000000000 % 10;
- #math random[$tmp] $random[$tmp] + 1
- };
- #var random
- }
- #nop -------------------------------------------------------------------------
- #nop This macro allows pasting multi-line code fragments on pressing ctrl-v
- #nop -------------------------------------------------------------------------
- #macro {\cv}
- {
- #cursor {convert meta} on;
- #line oneshot #event {CATCH RECEIVED INPUT}
- {
- #line sub {esc} #var paste {%0};
- #replace paste {\\n\\n} {;};
- #replace paste {\\n} {};
- #replace paste {\\t} {};
- #replace paste {;;} {;};
- #1 {$paste}
- }
- }
|