TinTin++ Configs for DiscworldMUD
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

609 lines
18 KiB

6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
  1. #CLASS {xptimers} {kill};
  2. #CLASS {xptimers} {open};
  3. #VARIABLE {xptimer_file} {logs/xptimers.log};
  4. #VARIABLE {killtimers} {
  5. {Delbert}{
  6. {time}{0}
  7. {name}{delbert}
  8. {group}{false}
  9. {respawn}{30}
  10. }
  11. {the Triad boss}{
  12. {time}{0}
  13. {name}{medina boss}
  14. {group}{false}
  15. {respawn}{30}
  16. }
  17. {the bandit leader}{
  18. {time}{0}
  19. {name}{bandit leader}
  20. {group}{false}
  21. {respawn}{30}
  22. }
  23. {Hlakket the Bartender}{
  24. {time}{0}
  25. {name}{hlakket}
  26. {group}{false}
  27. {respawn}{30}
  28. }
  29. {the Zoon Liar}{
  30. {time}{0}
  31. {name}{zoon liar}
  32. {group}{false}
  33. {respawn}{30}
  34. }
  35. {Slim Stevie}{
  36. {time}{0}
  37. {name}{rogues}
  38. {group}{false}
  39. {respawn}{30}
  40. }
  41. {the %* grflx worker}{
  42. {time}{0}
  43. {name}{grflx}
  44. {group}{false}
  45. {respawn}{30}
  46. }
  47. {the %* student}{
  48. {time}{0}
  49. {name}{dojo}
  50. {group}{false}
  51. {respawn}{30}
  52. }
  53. {the ceremonial guard}{
  54. {time}{0}
  55. {name}{cguards}
  56. {group}{false}
  57. {respawn}{30}
  58. }
  59. {the smuggler captain}{
  60. {time}{0}
  61. {name}{smug captain}
  62. {group}{false}
  63. {respawn}{30}
  64. }
  65. {the giant leader}{
  66. {time}{0}
  67. {name}{giants}
  68. {group}{false}
  69. {respawn}{30}
  70. }
  71. {the %* rujona}{
  72. {time}{0}
  73. {name}{snail}
  74. {group}{true}
  75. {respawn}{30}
  76. }
  77. {the %* nitsuni}{
  78. {time}{0}
  79. {name}{snail}
  80. {group}{true}
  81. {respawn}{30}
  82. }
  83. {the Ome outlaw}{
  84. {time}{0}
  85. {name}{snail}
  86. {group}{true}
  87. {respawn}{30}
  88. }
  89. {the %* lion}{
  90. {time}{0}
  91. {name}{shaker lions}
  92. {group}{false}
  93. {respawn}{30}
  94. }
  95. {Louis Accardo}{
  96. {time}{0}
  97. {name}{stables}
  98. {group}{true}
  99. {respawn}{30}
  100. }
  101. {Samuel Casso}{
  102. {time}{0}
  103. {name}{stables}
  104. {group}{true}
  105. {respawn}{30}
  106. }
  107. {Enrico Persuica}{
  108. {time}{0}
  109. {name}{stables}
  110. {group}{true}
  111. {respawn}{30}
  112. }
  113. {Joe Corrola}{
  114. {time}{0}
  115. {name}{stables}
  116. {group}{true}
  117. {respawn}{30}
  118. }
  119. {Marlon Gumboni}{
  120. {time}{0}
  121. {name}{casino}
  122. {group}{true}
  123. {respawn}{30}
  124. }
  125. {Frankie Harvard}{
  126. {time}{0}
  127. {name}{casino}
  128. {group}{true}
  129. {respawn}{30}
  130. }
  131. {Geraldo Ciaco}{
  132. {time}{0}
  133. {name}{casino}
  134. {group}{true}
  135. {respawn}{30}
  136. }
  137. {Charles Marchella}{
  138. {time}{0}
  139. {name}{casino}
  140. {group}{true}
  141. {respawn}{30}
  142. }
  143. }
  144. #VARIABLE {visittimers} {
  145. {AMShades}{
  146. {time}{0}
  147. {name}{shades}
  148. {group}{false}
  149. {respawn}{12}
  150. }
  151. {ebff897af2b8bb6800a9a8636143099d0714be07}{
  152. {time}{0}
  153. {name}{smugglers}
  154. {group}{false}
  155. {respawn}{12}
  156. }
  157. {70546ec71867645ab5c51e9ce6087b75dcf4176f}{
  158. {time}{0}
  159. {name}{offler}
  160. {group}{false}
  161. {respawn}{30}
  162. }
  163. {f6c60dd36ed38707eb954c3a670f2f9370a79399}{
  164. {time}{0}
  165. {name}{black market}
  166. {group}{true}
  167. {respawn}{30}
  168. }
  169. {e4646eab906aef1187a9dd3e980441b8f6b8d68c}{
  170. {time}{0}
  171. {name}{black market}
  172. {group}{true}
  173. {respawn}{30}
  174. }
  175. {0ae9d8c4f2b48f4fcc4cb57fd85443399be2ecc5}{
  176. {time}{0}
  177. {name}{black market}
  178. {group}{true}
  179. {respawn}{30}
  180. }
  181. {c7c6f5720d2c587f80696b6f0ec7f9ac0f084b06}{
  182. {time}{0}
  183. {name}{black market}
  184. {group}{true}
  185. {respawn}{30}
  186. }
  187. {3862c5fd0fe83f4080bdb9b94519bf8da89d5015}{
  188. {time}{0}
  189. {name}{parades}
  190. {group}{true}
  191. {respawn}{30}
  192. }
  193. {cca9645565f2bb0d017ea9b1dcc9d1b3e9fcfe72}{
  194. {time}{0}
  195. {name}{cabbage}
  196. {group}{false}
  197. {respawn}{30}
  198. }
  199. }
  200. #ALIAS {dtreset} {
  201. #regex {%1} {all} {
  202. #foreach {$killtimers[]} {spot} {
  203. #format {killtimers[$spot][time]} {0};
  204. }
  205. #foreach {$visittimers[]} {spot} {
  206. #format {visittimers[$spot][time]} {0};
  207. }
  208. #format {xptimer_message} {%c[XPTimer] %c*%c Resetting all spots to Unseen.} {bold blue} {bold yellow} {bold blue};
  209. #echo {$xptimer_message};
  210. #variable {dtreset_all} {1};
  211. };
  212. #if {$dtreset_all < 1} {
  213. #foreach {$killtimers[]} {spot} {
  214. #regex {%1 %2} {$killtimers[$spot][name]} {
  215. #format {killtimers[$spot][time]} {%T};
  216. #if {"$killtimers[$spot][group]" == "true"} {
  217. #format {xptimer_message} {%c[XPTimer] %c*%c Resetting death timer for%c $killtimers[$spot][name] ($spot)%c.} {bold blue} {bold yellow} {bold blue} {bold green} {bold blue};
  218. };
  219. #else {
  220. #format {xptimer_message} {%c[XPTimer] %c*%c Resetting death timer for%c $killtimers[$spot][name]%c.} {bold blue} {bold yellow} {bold blue} {bold green} {bold blue};
  221. };
  222. #echo {$xptimer_message};
  223. };
  224. }
  225. #foreach {$visittimers[]} {spot} {
  226. #regex {%1 %2} {$visittimers[$spot][name]} {
  227. #format {visittimers[$spot][time]} {%T};
  228. #if {"$visittimers[$spot][group]" == "true"} {
  229. #format {xptimer_message} {%c[XPTimer] %c*%c Resetting visit timer for%c $visittimers[$spot][name] ($spot)%c.} {bold blue} {bold yellow} {bold blue} {bold green} {bold blue};
  230. };
  231. #else {
  232. #format {xptimer_message} {%c[XPTimer] %c*%c Resetting visit timer for%c $visittimers[$spot][name]%c.} {bold blue} {bold yellow} {bold blue} {bold green} {bold blue};
  233. };
  234. #echo {$xptimer_message};
  235. };
  236. }
  237. }
  238. #unvariable {dtreset_all};
  239. }
  240. #ACTION {%1 deals the death blow to %2.} {
  241. #foreach {$killtimers[]} {spot} {
  242. #regex {%2} {$spot} {
  243. #format {killtimers[$spot][time]} {%T};
  244. };
  245. }
  246. }
  247. #ACTION {You kill %1.} {
  248. #foreach {$killtimers[]} {spot} {
  249. #regex {%1} {$spot} {
  250. #format {killtimers[$spot][time]} {%T};
  251. };
  252. }
  253. }
  254. #FUNCTION {write_spot} {
  255. #var {spotname} {%1};
  256. #var {spottime} {%2};
  257. #var {spotrespawn} {%3};
  258. #format {current_time} {%T};
  259. #if {$spottime == 0} {
  260. #format {spotstring} { - (???) %s } {$spotname};
  261. };
  262. #else {
  263. #math {mins} {$current_time - $spottime};
  264. #math {mins} {($mins - (60 - 1)) / 60};
  265. #nop Choose a color-code based on downtime;
  266. #if {$mins > ($spotrespawn + 40)} {
  267. #var {current_spot_color} {<099>};
  268. };
  269. #elseif {$mins > ($spotrespawn + 20)} {
  270. #var {current_spot_color} {<119>};
  271. };
  272. #elseif {$mins > $spotrespawn} {
  273. #var {current_spot_color} {<139>};
  274. };
  275. #else {
  276. #var {current_spot_color} {<099>};
  277. }
  278. #if {$mins > 99} { #var {mins} {99} };
  279. #nop Format the line to print;
  280. #if {$mins >= 10} {
  281. #format {spotstring} { - (%dm) %c%s<099> } {$mins} {$current_spot_color} {$spotname};
  282. };
  283. #else {
  284. #nop Zero pad under 10 mins;
  285. #format {spotstring} { - (0%dm) %c%s<099> } {$mins} {$current_spot_color} {$spotname};
  286. }
  287. };
  288. #return {$spotstring};
  289. }
  290. #ALIAS {dt} {
  291. #format {current_time} {%T};
  292. #var {spot_groups} {};
  293. #var {spot_groups_respawn} {};
  294. #echo {.:: Death Timers ::.};
  295. #foreach {$killtimers[]} {spot} {
  296. #if {"$killtimers[$spot][group]" == "true"} {
  297. #if {&spot_groups[$killtimers[$spot][name]] == 0} {
  298. #var {spot_groups[$killtimers[$spot][name]]} {$killtimers[$spot][time]};
  299. #var {spot_groups_respawn[$killtimers[$spot][name]]} {$killtimers[$spot][respawn]};
  300. };
  301. #if {$killtimers[$spot][time] < $spot_groups[$killtimers[$spot][name]]} {
  302. #var {spot_groups[$killtimers[$spot][name]]} {$killtimers[$spot][time]};
  303. #var {spot_groups_respawn[$killtimers[$spot][name]]} {$killtimers[$spot][respawn]};
  304. };
  305. #continue;
  306. };
  307. #var {spotstring} {@write_spot{$killtimers[$spot][name];$killtimers[$spot][time];$killtimers[$spot][respawn]}};
  308. #echo {$spotstring};
  309. }
  310. #foreach {$spot_groups[]} {spot} {
  311. #var {spotstring} {@write_spot{$spot;$spot_groups[$spot];$spot_groups_respawn[$spot]}};
  312. #echo {$spotstring};
  313. }
  314. #echo {\n};
  315. #var {spot_groups} {};
  316. #var {spot_groups_respawn} {};
  317. #echo {.:: Visit Timers ::.};
  318. #format {current_time} {%T};
  319. #foreach {$visittimers[]} {spot} {
  320. #if {"$visittimers[$spot][group]" == "true"} {
  321. #if {&spot_groups[$visittimers[$spot][name]] == 0} {
  322. #var {spot_groups[$visittimers[$spot][name]]} {$visittimers[$spot][time]};
  323. #var {spot_groups_respawn[$visittimers[$spot][name]]} {$visittimers[$spot][respawn]};
  324. };
  325. #if {$visittimers[$spot][time] < $spot_groups[$visittimers[$spot][name]]} {
  326. #var {spot_groups[$visittimers[$spot][name]]} {$visittimers[$spot][time]};
  327. #var {spot_groups_respawn[$visittimers[$spot][name]]} {$visittimers[$spot][respawn]};
  328. };
  329. #continue;
  330. };
  331. #var {spotstring} {@write_spot{$visittimers[$spot][name];$visittimers[$spot][time];$visittimers[$spot][respawn]}};
  332. #echo {$spotstring};
  333. }
  334. #foreach {$spot_groups[]} {spot} {
  335. #var {spotstring} {@write_spot{$spot;$spot_groups[$spot];$spot_groups_respawn[$spot]}};
  336. #echo {$spotstring};
  337. }
  338. #echo {\n};
  339. }
  340. #ALIAS {writetimerstofile} {
  341. #system {> $xptimer_file};
  342. #format {current_time} {%T};
  343. #var {spot_groups} {};
  344. #var {spot_groups_respawn} {};
  345. #line {log} {$xptimer_file} {.:: Death Timers ::. };
  346. #foreach {$killtimers[]} {spot} {
  347. #if {"$killtimers[$spot][group]" == "true"} {
  348. #if {&spot_groups[$killtimers[$spot][name]] == 0} {
  349. #var {spot_groups[$killtimers[$spot][name]]} {$killtimers[$spot][time]};
  350. #var {spot_groups_respawn[$killtimers[$spot][name]]} {$killtimers[$spot][respawn]};
  351. };
  352. #if {$killtimers[$spot][time] != 0 && $killtimers[$spot][time] < $spot_groups[$killtimers[$spot][name]]} {
  353. #var {spot_groups[$killtimers[$spot][name]]} {$killtimers[$spot][time]};
  354. #var {spot_groups_respawn[$killtimers[$spot][name]]} {$killtimers[$spot][respawn]};
  355. };
  356. #continue;
  357. };
  358. #var {spotstring} {@write_spot{$killtimers[$spot][name];$killtimers[$spot][time];$killtimers[$spot][respawn]}};
  359. #line {log} {$xptimer_file} {$spotstring};
  360. }
  361. #foreach {$spot_groups[]} {spot} {
  362. #var {spotstring} {@write_spot{$spot;$spot_groups[$spot];$spot_groups_respawn[$spot]}};
  363. #line {log} {$xptimer_file} {$spotstring};
  364. }
  365. #line {log} {$xptimer_file} {\n\r\n\r.:: Visit Timers ::. };
  366. #var {spot_groups} {};
  367. #var {spot_groups_respawn} {};
  368. #foreach {$visittimers[]} {spot} {
  369. #if {"$visittimers[$spot][group]" == "true"} {
  370. #if {&spot_groups[$visittimers[$spot][name]] == 0} {
  371. #var {spot_groups[$visittimers[$spot][name]]} {$visittimers[$spot][time]};
  372. #var {spot_groups_respawn[$visittimers[$spot][name]]} {$visittimers[$spot][respawn]};
  373. };
  374. #if {$visittimers[$spot][time] != 0 && $visittimers[$spot][time] < $spot_groups[$visittimers[$spot][name]]} {
  375. #var {spot_groups[$visittimers[$spot][name]]} {$visittimers[$spot][time]};
  376. #var {spot_groups_respawn[$visittimers[$spot][name]]} {$visittimers[$spot][respawn]};
  377. };
  378. #continue;
  379. };
  380. #var {spotstring} {@write_spot{$visittimers[$spot][name];$visittimers[$spot][time];$visittimers[spot][respawn]}};
  381. #line {log} {$xptimer_file} {$spotstring};
  382. }
  383. #foreach {$spot_groups[]} {spot} {
  384. #var {spotstring} {@write_spot{$spot;$spot_groups[$spot];$spot_groups_respawn[$spot]}};
  385. #line {log} {$xptimer_file} {$spotstring};
  386. }
  387. }
  388. #EVENT {SEND OUTPUT} {writetimerstofile};
  389. #FUNCTION {parse_spot} {
  390. #var {spot_sync_raw} {%0};
  391. #replace {spot_sync_raw} {=} {;};
  392. #list {spot_sync} {create} {${spot_sync_raw}};
  393. #return {$spot_sync};
  394. }
  395. #ACTION {%1 tells you: ruhs_dtsync=[%2] | ruhs_vtsync=[%3]} {
  396. #var {synccount} {0};
  397. #var {dtsync} {%2};
  398. #var {vtsync} {%3};
  399. #replace {dtsync} {,} {;};
  400. #replace {vtsync} {,} {;};
  401. #list dtsync_list create {${dtsync}};
  402. #list vtsync_list create {${vtsync}};
  403. #foreach {$dtsync_list[]} {spot} {
  404. #var {syncitem} {@parse_spot{$dtsync_list[$spot]}};
  405. #var {syncname} {$syncitem[1]};
  406. #var {synctime} {$syncitem[2]};
  407. #foreach {$killtimers[]} {spotident} {
  408. #var {spotname} {$killtimers[$spotident][name]};
  409. #if {"$spotname" == "$syncname"} {
  410. #var {killtimers[$spotident][time]} {$synctime};
  411. #math {synccount} {$synccount + 1};
  412. };
  413. }
  414. }
  415. #foreach {$vtsync_list[]} {spot} {
  416. #var {syncitem} {@parse_spot{$vtsync_list[$spot]}};
  417. #var {syncname} {$syncitem[1]};
  418. #var {synctime} {$syncitem[2]};
  419. #foreach {$visittimers[]} {spotident} {
  420. #var {spotname} {$killtimers[$spotident][name]};
  421. #if {"$spotname" == "$syncname"} {
  422. #var {visittimers[$spotident][time]} {$synctime};
  423. #math {synccount} {$synccount + 1};
  424. };
  425. }
  426. }
  427. #format {dtsync_message} {%c[XPTimer] %c*%c Synced %c%d%c spots from %c%s%c.} {bold blue}{yellow}{bold blue}{orange}{$synccount}{bold blue}{green}{%1}{bold blue};
  428. #echo {$dtsync_message};
  429. }
  430. #ALIAS {dtsync %1} {
  431. #var {dtsync_msg} {};
  432. #var {vtsync_msg} {};
  433. #foreach {$killtimers[]} {spotident} {
  434. #if {$killtimers[$spotident][time] > 0} {
  435. #format {dtsync_msg} {%s,%s=%d} {$dtsync_msg}{$killtimers[$spotident][name]}{$killtimers[$spotident][time]};
  436. };
  437. }
  438. #regex {$dtsync_msg} {^,{(.+)}$} { #var {dtsync_msg} {&1}; };
  439. #foreach {$visittimers[]} {spotident} {
  440. #if {$visittimers[$spotident][time] > 0} {
  441. #format {vtsync_msg} {%s,%s=%d} {$vtsync_msg}{$visittimers[$spotident][name]}{$visittimers[$spotident][time]};
  442. };
  443. }
  444. #regex {$vtsync_msg} {^,{(.+)}$} { #var {vtsync_msg} {&1}; };
  445. #format {sync_message} {tell %s ruhs_dtsync=[%s] | ruhs_vtsync=[%s]} {%1} {$dtsync_msg} {$vtsync_msg};
  446. #send {$sync_message};
  447. }
  448. #nop #EVENT {IAC SB GMCP room.info IAC SE}
  449. #ALIAS {/spottimercheckroomid %1} {
  450. #var {room_info} {%1};
  451. #foreach {$visittimers[]} {spot} {
  452. #regex {$room_info} {$spot} {
  453. #format {visittimers[$spot][time]} {%T};
  454. }
  455. }
  456. }
  457. #ALIAS {gsdt} {
  458. #var {gsdt_string} {};
  459. #var {spot_groups} {};
  460. #var {group_spot_label} {};
  461. #foreach {$killtimers[]} {spot} {
  462. #format {spotname} {$killtimers[$spot][name]};
  463. #var {mins} {???};
  464. #if {$killtimers[$spot][time] == 0} {
  465. #format {spotstring} {%s: ??? |} {$spotname};
  466. };
  467. #else {
  468. #math {mins} {$current_time - $killtimers[$spot][time]};
  469. #math {mins} {($mins - (60 - 1)) / 60};
  470. #if {$mins > 99} { #var {mins} {99} };
  471. #if {$mins < 10} {
  472. #format {spotstring} {%s: 0%dm |} {$spotname} {$mins} ;
  473. };
  474. #else {
  475. #format {spotstring} {%s: %dm |} {$spotname} {$mins} ;
  476. };
  477. }
  478. #if {"$killtimers[$spot][group]" == "true"} {
  479. #if {&spot_groups[$killtimers[$spot][name]] == 0} {
  480. #var {spot_groups[$killtimers[$spot][name]]} {$killtimers[$spot][time]};
  481. #var {group_spot_label[$killtimers[$spot][name]]} {$spotstring};
  482. };
  483. #if {$killtimers[$spot][time] < $spot_groups[$killtimers[$spot][name]]} {
  484. #var {spot_groups[$killtimers[$spot][name]]} {$killtimers[$spot][time]};
  485. #var {group_spot_label[$killtimers[$spot][name]]} {$spotstring};
  486. };
  487. #continue;
  488. };
  489. #format {gsdt_string} {%s %s} {$gsdt_string} {$spotstring};
  490. }
  491. #foreach {$spot_groups} {spot} {
  492. #format {gsdt_string} {%s %s} {$gsdt_string} {$group_spot_label[$spot]};
  493. };
  494. #var {spot_groups} {};
  495. #var {group_spot_label} {};
  496. #foreach {$visittimers[]} {spot} {
  497. #format {spotname} {$visittimers[$spot][name]};
  498. #var {mins} {???};
  499. #if {$visittimers[$spot][time] == 0} {
  500. #format {spotstring} {%s: ??? |} {$spotname};
  501. };
  502. #else {
  503. #math {mins} {$current_time - $visittimers[$spot][time]};
  504. #math {mins} {($mins - (60 - 1)) / 60};
  505. #if {$mins > 99} { #var {mins} {99} };
  506. #if {$mins < 10} {
  507. #format {spotstring} {%s: 0%dm |} {$spotname} {$mins} ;
  508. };
  509. #else {
  510. #format {spotstring} {%s: %dm |} {$spotname} {$mins} ;
  511. };
  512. }
  513. #if {"$visittimers[$spot][group]" == "true"} {
  514. #if {&spot_groups[$visittimers[$spot][name]] == 0} {
  515. #var {spot_groups[$visittimers[$spot][name]]} {$visittimers[$spot][time]};
  516. #var {group_spot_label[$visittimers[$spot][name]]} {$spotstring};
  517. };
  518. #if {$visittimers[$spot][time] < $spot_groups[$visittimers[$spot][name]]} {
  519. #var {spot_groups[$visittimers[$spot][name]]} {$visittimers[$spot][time]};
  520. #var {group_spot_label[$visittimers[$spot][name]]} {$spotstring};
  521. };
  522. #continue;
  523. };
  524. #format {gsdt_string} {%s %s} {$gsdt_string} {$spotstring};
  525. }
  526. #foreach {$spot_groups} {spot} {
  527. #format {gsdt_string} {%s %s} {$gsdt_string} {$group_spot_label[$spot]};
  528. };
  529. #regex {$gsdt_string} {^{(.+)} \|$} {#var {gsdt_string} {&1}; };
  530. #send {group say $gsdt_string};
  531. }
  532. #CLASS {xptimers} {close};