SCRIPTS 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290
  1. #nop -------------------------------------------------------------------------
  2. #nop Loop through room 1 to 1000 and change the color of rooms with the
  3. #nop static (16) flag to <168>.
  4. #nop -------------------------------------------------------------------------
  5. #loop 1 1000 vnum
  6. {
  7. #map goto $vnum;
  8. #map get roomflags result;
  9. #if {$result & 16}
  10. {
  11. #map set roomcolor <168>
  12. }
  13. }
  14. #nop -------------------------------------------------------------------------
  15. #nop Capture system information. #script stores the output as a list,
  16. #nop hence the need to convert it into a normal variable.
  17. #nop -------------------------------------------------------------------------
  18. #script {dir} {pwd}
  19. #var dir $dir[1]
  20. #script {home} {echo $HOME}
  21. #var home $home[1]
  22. #nop -------------------------------------------------------------------------
  23. #nop Automatically reconnect on disconnect.
  24. #nop -------------------------------------------------------------------------
  25. #event {SESSION CONNECTED}
  26. {
  27. #event {SESSION DISCONNECTED}
  28. {
  29. #gts #delay 5 {#session %0 %1 %3}
  30. }
  31. }
  32. #nop -------------------------------------------------------------------------
  33. #nop Execute a random social at random time intervals.
  34. #nop -------------------------------------------------------------------------
  35. #tick {randomsocial}
  36. {
  37. #delay {1d180}
  38. {
  39. #switch {1d4}
  40. {
  41. #case {1} {cheer}
  42. #case {2} {greet all}
  43. #case {3} {smile}
  44. #case {4} {laugh self}
  45. }
  46. }
  47. }
  48. {200}
  49. #nop -------------------------------------------------------------------------
  50. #nop Maintain a friendlist.
  51. #nop -------------------------------------------------------------------------
  52. #variable {friendlist}
  53. {
  54. {bubba};{pamela};{cookie};{harry potter}
  55. }
  56. #function isfriend
  57. {
  58. #format name %l {%0};
  59. #return &friendlist[$name];
  60. }
  61. #act {%1 follows you.}
  62. {
  63. #if {@isfriend{%1}}
  64. {
  65. group %1
  66. };
  67. #else
  68. {
  69. unfollow %1
  70. }
  71. }
  72. #alias {addfriend}
  73. {
  74. #format name %l {%0};
  75. #var friendlist[$name] {};
  76. #showme $name has been added to your friendlist.
  77. }
  78. #alias {delfriend}
  79. {
  80. #format name %l {%0};
  81. #if {@isfriend{$name}}
  82. {
  83. #unvar friendlist[$name];
  84. #showme $name has been deleted from your friendlist.
  85. };
  86. #else
  87. {
  88. #showme $name is not on your friendlist.
  89. }
  90. }
  91. #nop -------------------------------------------------------------------------
  92. #nop Append a goto to your current room when saving a map
  93. #nop -------------------------------------------------------------------------
  94. #alias {savemap}
  95. {
  96. #map write %0;
  97. #map get roomvnum room;
  98. #system echo '#map goto $room' >> %0
  99. }
  100. #nop -------------------------------------------------------------------------
  101. #nop Log all text to a file with a timestamp with decisecond precision.
  102. #nop -------------------------------------------------------------------------
  103. #function {timestamp}
  104. {
  105. #format utime {%U};
  106. #format result {%t.%m} {%Y-%m-%d %H:%M:%S} {$utime % 1000000 / 100000}
  107. }
  108. #event {RECEIVED LINE}
  109. {
  110. #line log mylog.txt {<178>@timestamp{} \};
  111. #line log mylog.txt
  112. }
  113. #nop -------------------------------------------------------------------------
  114. #nop Old school tick support.
  115. #nop -------------------------------------------------------------------------
  116. #tick {oldtick}
  117. {
  118. #delay 50 #showme #10 SECONDS TO TICK!!;
  119. #showme #TICK!!!
  120. }
  121. {60}
  122. #nop -------------------------------------------------------------------------
  123. #nop Execute speedwalks with .
  124. #nop -------------------------------------------------------------------------
  125. #alias {.%0}
  126. {
  127. #var cnt {};
  128. #parse {%0} {char}
  129. {
  130. #if {"$char" >= "0" && "$char" <= "9"}
  131. {
  132. #var cnt $cnt$char
  133. };
  134. #elseif {"$cnt" == ""}
  135. {
  136. #send $char
  137. };
  138. #else
  139. {
  140. #$cnt #send $char;
  141. #var cnt {}
  142. }
  143. }
  144. }
  145. #nop -------------------------------------------------------------------------
  146. #nop Targetting script
  147. #nop -------------------------------------------------------------------------
  148. #var targets {}
  149. #alias {target}
  150. {
  151. #if {"%0" == ""}
  152. {
  153. #showme {Current targets: $targets[]}
  154. };
  155. #elseif {&targets[%0]}
  156. {
  157. #unvar targets[%0];
  158. #showme Target '%0' removed.
  159. };
  160. #else
  161. {
  162. #var targets[%0] {};
  163. #showme Target '%0' added.
  164. }
  165. }
  166. #act {%1 arrives}
  167. {
  168. #if {&targets[%1]} {kill %1}
  169. }
  170. #act {%1 is standing here}
  171. {
  172. #if {&targets[%1]} {kill %1}
  173. }
  174. #action {%1 is dead! R.I.P.}
  175. {
  176. #if {&targets[%1]} {target %1}
  177. }
  178. #nop -------------------------------------------------------------------------
  179. #nop Show xterm 256 colors.
  180. #nop -------------------------------------------------------------------------
  181. #var temp {}
  182. #foreach {0;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15} {var1}
  183. {
  184. #showme {$var1 \e[38;5;${var1}m}
  185. }
  186. #foreach {a;b;c;d;e;f} {var1}
  187. {
  188. #foreach {a;b;c;d;e;f} {var2}
  189. {
  190. #foreach {a;b;c;d;e;f} {var3}
  191. {
  192. #var temp {$temp <$var1$var2$var3><<888>$var1$var2$var3>}
  193. };
  194. #showme $temp;
  195. #var temp {}
  196. }
  197. }
  198. #loop 0 23 cnt
  199. {
  200. #format temp {$temp <g%+02s><<888>g%+02s} {$cnt} {$cnt};
  201. }
  202. #showme $temp
  203. #nop -------------------------------------------------------------------------
  204. #nop Draw a health bar.
  205. #nop -------------------------------------------------------------------------
  206. #alias {hpbar}
  207. {
  208. #math {hp_percent}{100 * %1 / %2};
  209. #math {hpbars1} {$hp_percent / 5};
  210. #math {hpbars2} {20 - $hpbars1};
  211. #format {hpbar} {<011>%+${hpbars1}s<099><000>%+${hpbars2}s<099> };
  212. #showme [$hpbar]
  213. }
  214. #alias {test}
  215. {
  216. hpbar 30 100
  217. }
  218. #nop -------------------------------------------------------------------------
  219. #nop Syntax: sleep <seconds to delay> {commands}
  220. #nop
  221. #nop If there is already a pending sleep the delay will be stacked.
  222. #nop -------------------------------------------------------------------------
  223. #var sleeptime 0
  224. #var sleepcurr 0
  225. #alias {sleep %1 %2}
  226. {
  227. #format sleeptime %U;
  228. #if {$sleeptime > $sleepcurr}
  229. {
  230. #math sleepcurr $sleeptime + (%1) * 1000000;
  231. #delay {%1} %2;
  232. };
  233. #else
  234. {
  235. #math sleepcurr $sleepcurr + (%1) * 1000000;
  236. #delay {($sleepcurr - $sleeptime) / 1000000.000} %2
  237. }
  238. }