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.

329 lines
15 KiB

5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
  1. #CLASS {group} {kill};
  2. #CLASS {group} {open};
  3. #VARIABLE {group_shields} {};
  4. #VARIABLE {group_shields_current} {};
  5. #VARIABLE {groupshield_file} {logs/groupshields.log};
  6. #ACTION {^Arcane protection for %1:-} {
  7. #var {group_shields_current} {%1};
  8. }
  9. #nop ======================================================;
  10. #nop ===[ Detect shield printouts from 'group shields' ]===;
  11. #nop ======================================================;
  12. #nop EFF
  13. #ACTION {^ * %1 is floating around {him|her|it}:$} {
  14. #variable {group_shields[$group_shields_current][eff]} {1};
  15. /writegroupshieldstofile
  16. }
  17. #nop TPA
  18. #ACTION {^ * {She|He|It} is surrounded by a {(dull red |bright red |wobbling orange |flickering yellow |)?}magical impact shield\.$} {
  19. #variable {group_shields[$group_shields_current][tpa]} {1};
  20. /writegroupshieldstofile
  21. }
  22. #nop CCC
  23. #ACTION {^ * {Her|His|Its} skin has been {hardened|covered} {with|to}{a?} %4, although {the \w+|it} seems {weaker|not to be}} {
  24. #variable {group_shields[$group_shields_current][ccc]} {1};
  25. /writegroupshieldstofile
  26. }
  27. #ACTION {^ * Tiny threads of metal run criss-cross all over {her|his|its} skin, although it seems weaker} {
  28. #variable {group_shields[$group_shields_current][ccc]} {1};
  29. /writegroupshieldstofile
  30. }
  31. #nop MS
  32. #ACTION {^ * {She|He|It} is {(really )?}protected by the power of {Pishe|Gufnork|Gapp|Sandelfon|Fish|Hat|Sek|Aegadon|Cubal|Reebox}} {
  33. #variable {group_shields[$group_shields_current][ms]} {1};
  34. /writegroupshieldstofile
  35. }
  36. #nop KII
  37. #ACTION {^ * {She|He|It} is surrounded by a {handful|cloud|small swarm|large swarm|vast sawrm|plague} of} {
  38. #variable {group_shields[$group_shields_current][kii]} {1};
  39. /writegroupshieldstofile
  40. };
  41. #nop No shields at all
  42. #ACTION {^{(\w+\b\W*?){1,8}} has no arcane protection.$} {
  43. #variable {group_shields[$group_shields_current][ccc]} {0};
  44. #variable {group_shields[$group_shields_current][tpa]} {0};
  45. #variable {group_shields[$group_shields_current][eff]} {0};
  46. #variable {group_shields[$group_shields_current][kii]} {0};
  47. #variable {group_shields[$group_shields_current][ms]} {0};
  48. /writegroupshieldstofile
  49. };
  50. #nop =========================================;
  51. #nop ===[ Detect group join/leave actions ]===;
  52. #nop =========================================;
  53. #ACTION {[%1] {[A-Za-z]+} has left the group.} {
  54. #if {&group_shields[%2]} {
  55. #unvariable {group_shields[%2]};
  56. /writegroupshieldstofile
  57. };
  58. };
  59. #ACTION {[%1] {[A-Za-z]+} has joined the group.} {
  60. #variable {group_shields[%2]} {{tpa}{0}{ccc}{0}{eff}{0}{ms}{0}{kii}{0}};
  61. /writegroupshieldstofile
  62. };
  63. #ACTION {[%1] You have left the group.} {
  64. #var {group_shields} {};
  65. /writegroupshieldstofile
  66. };
  67. #ACTION {[%1] You have joined the group.} {
  68. #var {group_shields} {};
  69. #variable {group_shields[$GMCP[charinfo][capname]]} {{tpa}{0}{ccc}{0}{eff}{0}{ms}{0}{kii}{0}};
  70. };
  71. #nop =================================================;
  72. #nop ===[ Detect shield drops/adds 'in the field' ]===;
  73. #nop =================================================;
  74. #nop EFF
  75. #ACTION {{(?:\w+\b\w*?){1,6}} floating around {(?:\w+\b\W*?){1,8}} breaks!$} {
  76. #variable {gs_dropname} {%2};
  77. #replace {gs_dropname} { } {;};
  78. #foreach {$gs_dropname} {name} {
  79. #if {&group_shields[$name]} {
  80. #variable {group_shields[$name][eff]} {0};
  81. /writegroupshieldstofile
  82. };
  83. };
  84. };
  85. #ACTION {^In blocking the attack {(?:.+)} floating around {(?:\w+\b\W*?){1,8}} is knocked out of orbit.$} {
  86. #variable {gs_dropname} {%2};
  87. #replace {gs_dropname} { } {;};
  88. #foreach {$gs_dropname} {name} {
  89. #if {&group_shields[$name]} {
  90. #variable {group_shields[$name][eff]} {0};
  91. /writegroupshieldstofile
  92. };
  93. };
  94. };
  95. #ACTION {{(?:\w+\b\w*?){1,6}} begins to float around {(?:\w+\b\W*?){1,8}}.$} {
  96. #variable {gs_dropname} {%2};
  97. #replace {gs_dropname} { } {;};
  98. #foreach {$gs_dropname} {name} {
  99. #if {&group_shields[$name]} {
  100. #variable {group_shields[$name][eff]} {1};
  101. /writegroupshieldstofile
  102. };
  103. };
  104. };
  105. #nop TPA
  106. #ACTION {^There is a sudden white flash around {(?!a passing wizard)(\w+\b\W*?){1,8}}.$} {
  107. #showme {\a};
  108. #line {log} {$chat_file};
  109. #variable {gs_dropname} {%1};
  110. #replace {gs_dropname} { } {;};
  111. #foreach {$gs_dropname} {name} {
  112. #if {&group_shields[$name]} {
  113. #variable {group_shields[$name][tpa]} {0};
  114. /writegroupshieldstofile
  115. };
  116. };
  117. };
  118. #ACTION {^With a noise that sounds like "Plink!", the air around {(\w+\b\W*?){1,8}} flashes {yellow|red} for a moment.$} {
  119. #variable {gs_dropname} {%1};
  120. #replace {gs_dropname} { } {;};
  121. #foreach {$gs_dropname} {name} {
  122. #if {&group_shields[$name]} {
  123. #variable {group_shields[$name][tpa]} {1};
  124. /writegroupshieldstofile
  125. };
  126. };
  127. };
  128. #nop CCC
  129. #ACTION {^There is a brief flash of magic, and something falls away from {(\w+\b\W*?){1,8}}'s skin.$} {
  130. #variable {gs_dropname} {%1};
  131. #replace {gs_dropname} { } {;};
  132. #foreach {$gs_dropname} {name} {
  133. #if {&group_shields[$name]} {
  134. #variable {group_shields[$name][ccc]} {0};
  135. /writegroupshieldstofile
  136. };
  137. };
  138. };
  139. #ACTION {^{(\w+\b\W*?){1,8}} scratches {himself|herself|itself}, and large pieces of skin flake off.$} {
  140. #variable {gs_dropname} {%1};
  141. #replace {gs_dropname} { } {;};
  142. #foreach {$gs_dropname} {name} {
  143. #if {&group_shields[$name]} {
  144. #variable {group_shields[$name][ccc]} {0};
  145. /writegroupshieldstofile
  146. };
  147. };
  148. };
  149. #ACTION {^{(\w+\b\W*?){1,8}}'s skin is now as {elastic|thicky covered|hard} as it can get.$} {
  150. #variable {gs_dropname} {%1};
  151. #replace {gs_dropname} { } {;};
  152. #foreach {$gs_dropname} {name} {
  153. #if {&group_shields[$name]} {
  154. #variable {group_shields[$name][ccc]} {1};
  155. /writegroupshieldstofile
  156. };
  157. };
  158. };
  159. #ACTION {^The metal powder fuses together into metal bands on {(\w+\b\W*?){1,8}}'s skin.$} {
  160. #variable {gs_dropname} {%1};
  161. #replace {gs_dropname} { } {;};
  162. #foreach {$gs_dropname} {name} {
  163. #if {&group_shields[$name]} {
  164. #variable {group_shields[$name][ccc]} {1};
  165. /writegroupshieldstofile
  166. };
  167. };
  168. };
  169. #ACTION {^{(\w+\b\W*?){1,8}}'s skin becomes {elastic as rubber|rock hard}.$} {
  170. #variable {gs_dropname} {%1};
  171. #replace {gs_dropname} { } {;};
  172. #foreach {$gs_dropname} {name} {
  173. #if {&group_shields[$name]} {
  174. #variable {group_shields[$name][ccc]} {1};
  175. /writegroupshieldstofile
  176. };
  177. };
  178. };
  179. #nop KII
  180. #ACTION {^The last of the injured {lacewings|stick insects|mayflies|praying mantids|butterflies|ladybirds|dragonflies|damselflies|moths|grasshoppers|winged termites|sandflies|mosquitoes|gnats|crickets|flying ants|locusts|horseflies|cicadas|bees|wasps|hornets|elephant beetles|assassin bugs} surrounding {(\w+\b\W*?){1,8}} crash to the ground.$} {
  181. #variable {gs_dropname} {%1};
  182. #replace {gs_dropname} { } {;};
  183. #foreach {$gs_dropname} {name} {
  184. #if {&group_shields[$name]} {
  185. #variable {group_shields[$name][kii]} {1};
  186. /writegroupshieldstofile
  187. };
  188. };
  189. };
  190. #ACTION {^The {lacewings|stick insects|mayflies|praying mantids|butterflies|ladybirds|dragonflies|damselflies|moths|grasshoppers|winged termites|sandflies|mosquitoes|gnats|crickets|flying ants|locusts|horseflies|cicadas|bees|wasps|hornets|elephant beetles|assassin bugs} surrounding {(\w+\b\W*?){1,8}} scatter } {
  191. #variable {gs_dropname} {%1};
  192. #replace {gs_dropname} { } {;};
  193. #foreach {$gs_dropname} {name} {
  194. #if {&group_shields[$name]} {
  195. #variable {group_shields[$name][kii]} {1};
  196. /writegroupshieldstofile
  197. };
  198. };
  199. };
  200. #ACTION {^{Buzzing drowsily, t|Buzzing loudly, t|Buzzing threateningly, t|Clicking and buzzing, t|Whirring gently, t|Rather clumsily, t|With a rasping noise, t|With a high-pitched whining noise, t|With a low, menacing buzzing, t|With a buzzing sound so loud and meaty it's almost like a dog growling, t|T}he {handful|cloud|small swarm|large swarm|vast swarm|plague} of {lacewings|stick insects|mayflies|praying mantids|butterflies|ladybirds|dragonflies|damselflies|moths|grasshoppers|winged termites|sandflies|mosquitoes|gnats|crickets|flying ants|locusts|horseflies|cicadas|bees|wasps|hornets|elephant beetles|assassin bugs} {flutters into a loosely-formed orbit around |forms a chaotic web of small white bodies around |starts to hover near |begins to circle |begins to circle around |begins to orbit |begins to cluster around |begins to buzz erratically around |begins to buzz around |flutters into a chaotic formation around }{(\w+\b\W*?){1,8}}{| happily| slowly|, chirping gently|, buzzing hungrily}.$} {
  201. #variable {gs_dropname} {%1};
  202. #replace {gs_dropname} { } {;};
  203. #foreach {$gs_dropname} {name} {
  204. #if {&group_shields[$name]} {
  205. #variable {group_shields[$name][kii]} {1};
  206. /writegroupshieldstofile
  207. };
  208. };
  209. };
  210. #nop ======================================;
  211. #nop ===[ Aliases to show the data etc ]===;
  212. #nop ======================================;
  213. #ALIAS {rgs} {
  214. #variable {group_shields} {};
  215. #variable {group_shields_current} {};
  216. #send {group shields};
  217. /writegroupshieldstofile
  218. };
  219. #ALIAS {sgs} {
  220. #foreach {$group_shields[]} {name} {
  221. #format {gs_namelength} {%L} {$name};
  222. #math {gs_namelength} {9 - $gs_namelength};
  223. #if {$gs_namelength < 0} { #var {gs_namelength} {0}; };
  224. #format {gs_displayline} { * %.9s:%+${gs_namelength}s } {$name};
  225. #foreach {tpa;ccc;eff;ms;kii} {shield} {
  226. #if {&group_shields[$name][$shield] && "$group_shields[$name][$shield]" == "1"} {
  227. #format {gs_displayline} {%s <fef>%s<099>} {$gs_displayline} {$shield};
  228. } {
  229. #format {gs_displayline} {%s <aaa>%s<099>} {$gs_displayline} {$shield};
  230. };
  231. };
  232. #showme {$gs_displayline};
  233. };
  234. };
  235. #ALIAS {/writegroupshieldstofile} {
  236. #system {rm $groupshield_file && touch $groupshield_file};
  237. #line {log} {$groupshield_file} {.:: Group Shields ::. \n\r};
  238. #foreach {$group_shields[]} {name} {
  239. #format {gs_namelength} {%L} {$name};
  240. #math {gs_namelength} {6 - $gs_namelength};
  241. #nop #if {$gs_namelength < 0} { #var {gs_namelength} {0}; };
  242. #format {gs_displayline} { %.6s:%+${gs_namelength}s } {$name};
  243. #foreach {tpa;ccc;eff;kii} {shield} {
  244. #if {&group_shields[$name][$shield] && "$group_shields[$name][$shield]" == "1"} {
  245. #format {gs_displayline} {%s <fef>%u<099>} {$gs_displayline} {$shield};
  246. } {
  247. #format {gs_displayline} {%s <aaa>%u<099>} {$gs_displayline} {$shield};
  248. };
  249. };
  250. #line {log} {$groupshield_file} {$gs_displayline};
  251. };
  252. #return;
  253. };
  254. #CLASS {group} {close};
  255. #nop EFF for you;
  256. #nop ^(?:> )?(?P<effitem>(?:\w+\b\W*?){1,6}) floating around you breaks!$
  257. #nop ^(?:> )?You realise that (?P<effitem>(?:\w+\b\W*?){1,6}) is no longer floating around you\.$
  258. #nop ^(?:> )?In blocking the attack (?P<effitem>(?:\w+\b\W*?){1,6}) floating around you is knocked out of orbit\.$
  259. #nop ^(?:> )?(?P<effitem>(?:\w+\b\W*?){1,6}) begins to float around you\.$
  260. #nop ^ \* (?P<effitem>(?:\w+\b\W*?){1,6}) is floating around you\:$
  261. #nop TPA for you
  262. #nop ^(?:> )?There is a sudden white flash\. Your magical shield has broken\.$
  263. #nop ^(?:> )?With a noise that sounds like "Plink!", everything around you flashes (?>yellow|red) for a moment\.$
  264. #nop ^ \* You are surrounded by a (?P<colour>|dull red |bright red |wobbling orange |flickering yellow )magical impact shield\.$
  265. #nop CCC for you
  266. #nop ^(?:> )?With a brief flash of magic, your (?>metallic|stony|elastic) skin falls away\.$
  267. #nop ^(?:> )?Your skin feels itchy<semicolon> large pieces flake off as you scratch it\.$
  268. #nop ^(?:> )?The metallic network on your skin feels a fair bit stronger now\.$
  269. #nop ^(?:> )?Your? (?>feel your skin become (?>rock hard|elastic as rubber)|skin (?>feels (?>even harder now|much more elastic now)|is now as (?>hard|elastic|thickly covered) as it can get))\.$
  270. #nop ^ \* Tiny threads of metal run criss-cross all over your skin, although
  271. #nop ^ \* Your skin (?>has been|has|is) (?>hardened to a rock-like form|hardened with numerous layers of a mineral-like substance|hardened with a chalk-like substance|covered with several layers of a chalk-like substance|covered with a thin layer of chalk|covered with a thick metal net|metal bands running all over it, forming a kind of net|covered with a thin metal net|covered with a thin, net-like metal coating|solidified into a rubberous form|made elastic with numerous layers of a rubber-like substance|treated with a latex-like substance|covered with several layers of a latex-like substance|covered with a thin layer of latex), although
  272. #nop Major for you;
  273. #nop ^(?:> )?Your divine protection expires\.$
  274. #nop ^(?:> )?You are protected by the power of (?>Pishe|Gufnork|Gapp|Sandelfon|Fish|Hat|Sek|Aegadon|Cubal|Reebox)\.$
  275. #nop ^ \* You are (?>(?>barely |really |perfectly )?protected|shielded) by the (?>power |protective armour |grace )of (?>Pishe|Gufnork|Gapp|Sandelfon|Fish|Hat|Sek|Aegadon|Cubal|Reebox)\. You will be protected for
  276. #nop Bug shield for you;
  277. #nop ^(?:> )?The last of the injured (?>lacewings|stick insects|mayflies|praying mantids|butterflies|ladybirds|dragonflies|damselflies|moths|grasshoppers|winged termites|sandflies|mosquitoes|gnats|crickets|flying ants|locusts|horseflies|cicadas|bees|wasps|hornets|elephant beetles|assassin bugs) surrounding you crash to the ground\.$
  278. #nop ^(?:> )?The (?>lacewings|stick insects|mayflies|praying mantids|butterflies|ladybirds|dragonflies|damselflies|moths|grasshoppers|winged termites|sandflies|mosquitoes|gnats|crickets|flying ants|locusts|horseflies|cicadas|bees|wasps|hornets|elephant beetles|assassin bugs) surrounding you scatter in different directions and fly off\.$
  279. #nop ^(?:> )?(?>Buzzing drowsily, t|Buzzing loudly, t|Buzzing threateningly, t|Clicking and buzzing, t|Whirring gently, t|Rather clumsily, t|With a rasping noise, t|With a high-pitched whining noise, t|With a low, menacing buzzing, t|With a buzzing sound so loud and meaty it's almost like a dog growling, t|T)he (?>handful|cloud|small swarm|large swarm|vast swarm|plague) of (?>lacewings|stick insects|mayflies|praying mantids|butterflies|ladybirds|dragonflies|damselflies|moths|grasshoppers|winged termites|sandflies|mosquitoes|gnats|crickets|flying ants|locusts|horseflies|cicadas|bees|wasps|hornets|elephant beetles|assassin bugs) (?>flutters into a loosely-formed orbit around |forms a chaotic web of small white bodies around |starts to hover near |begins to circle |begins to circle around |begins to orbit |begins to cluster around |begins to buzz erratically around |begins to buzz around |flutters into a chaotic formation around )you
  280. #nop ^ \* You are surrounded by a (?>handful|cloud|small swarm|large swarm|vast swarm|plague) of
  281. #nop Arcane statuses
  282. #nop ^(?:> )?Arcane protection status:$;