Guest User

Untitled

a guest
Jan 24th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.49 KB | None | 0 0
  1. <!-- %c game prompt checking code. Much thanks to bast for providing this. -->
  2.  
  3. <aliases>
  4. <!-- Page Size -->
  5. <alias
  6. match="^xset suspend page size$"
  7. enabled="y"
  8. regexp="y"
  9. sequence="100"
  10. ignore_case="y"
  11. script="suspend_page_size"
  12. >
  13. </alias>
  14.  
  15. <alias
  16. match="^xset resume page size$"
  17. enabled="y"
  18. regexp="y"
  19. sequence="100"
  20. ignore_case="y"
  21. script="resume_page_size"
  22. >
  23. </alias>
  24.  
  25. <alias
  26. match="^xset prompt$"
  27. script="cmd_checkprompt"
  28. enabled="y"
  29. regexp="y"
  30. sequence="100"
  31. ignore_case="y"
  32. >
  33. </alias>
  34.  
  35. <alias
  36. script="check_reset"
  37. match="^xset prompt reset$"
  38. enabled="y"
  39. regexp="y"
  40. sequence="99"
  41. ignore_case="y"
  42. >
  43. </alias>
  44.  
  45. </aliases>
  46.  
  47. <triggers>
  48. <trigger
  49. enabled="n"
  50. regexp="y"
  51. match="@cYour game prompt is @w: (?<prompt>.*?)(?:@w)?$"
  52. sequence="10"
  53. name="rprompt"
  54. script="prompt"
  55. group="prompt"
  56. >
  57. </trigger>
  58.  
  59. <trigger
  60. enabled="n"
  61. regexp="y"
  62. match="@cYour battle prompt is@w: (?<prompt>.*?)(?:@w)?$"
  63. sequence="10"
  64. name="bprompt"
  65. script="prompt"
  66. group="prompt"
  67. >
  68. </trigger>
  69.  
  70. <trigger
  71. name="gag_all"
  72. enabled="n"
  73. regexp="y"
  74. match="^.*$"
  75. sequence="990"
  76. send_to="10"
  77. omit_from_output="y"
  78. >
  79. </trigger>
  80.  
  81.  
  82. <!-- page size -->
  83.  
  84. <trigger
  85. match="^You currently display ([0-9]+) lines per page\.|You do not page long messages\.$"
  86. name="trg_page_size"
  87. enabled="n"
  88. regexp="y"
  89. sequence="100"
  90. script="capture_page_size"
  91. omit_from_output = "y"
  92. >
  93. </trigger>
  94. </triggers>
  95.  
  96. <!-- Script -->
  97. <script>
  98. <![CDATA[
  99.  
  100. require "commas"
  101. require 'var'
  102. require 'tprint'
  103.  
  104. local rprompt = ""
  105. local bprompt = ""
  106.  
  107. local stats = nil
  108.  
  109. local prompt_check_1 = GetVariable("prompt_check_1") or "false"
  110.  
  111. function cmd_checkprompt()
  112. if not stats then
  113. print('I could not determine you status')
  114. return
  115. end
  116.  
  117. if stats and stats.status and stats.status.state and not
  118. (tonumber(stats.status.state) == 3 or
  119. tonumber(stats.status.state) == 9 or
  120. tonumber(stats.status.state) == 11) then
  121. print('You are not active or resting or sleeping')
  122. else
  123.  
  124. DoAfterSpecial(.1, "print('*** ONE TIME CHECK ***')", 12)
  125. DoAfterSpecial(.1, "print('*** Checking your prompt terminates with %c *** ')", 12)
  126.  
  127. suspend_page_size(nil, nil, {})
  128.  
  129. DoAfterSpecial(2, "cmd_checkprompt_2()", sendto.script)
  130. end
  131. end
  132.  
  133.  
  134. function cmd_checkprompt_2()
  135.  
  136. --EnableTrigger("gag_all", true)
  137. EnableTriggerGroup('prompt', true)
  138. SendNoEcho('rawcolors')
  139. SendNoEcho('config')
  140. SendNoEcho('rawcolors')
  141. end
  142.  
  143. function pcheck(prompt)
  144. local tprompt = prompt
  145. local c = tprompt:sub(#tprompt - 1,#tprompt)
  146.  
  147. if (c ~= "%c") then
  148. return false
  149. end
  150. return true
  151. end
  152.  
  153. function check_reset(name, line, wildcards)
  154. prompt_check_1 = "false"
  155. SetVariable("prompt_check_1", prompt_check_1)
  156. ColourNote("SteelBlue", "", "Prompt %c check flag reset")
  157. end
  158.  
  159. function prompt (name, line, wildcards)
  160. if name == 'rprompt' then
  161. rprompt = wildcards.prompt
  162. elseif name == 'bprompt' then
  163. bprompt = wildcards.prompt
  164. --EnableTrigger("gag_all", false)
  165.  
  166. EnableTriggerGroup('prompt', false)
  167.  
  168. print('prompt =', rprompt)
  169. print('bprompt =', bprompt)
  170.  
  171. if not pcheck(rprompt) then
  172. DoAfterSpecial(1, "print('Fixing your game prompt.')", 12)
  173. DoAfterSpecial(1, "SendNoEcho('prompt " .. rprompt .. "%c')", 12)
  174. else
  175. DoAfterSpecial(1, "print('Your game prompt is fine')", 12)
  176. end
  177.  
  178. if not pcheck(bprompt) then
  179. DoAfterSpecial(1, "print('Fixing your battle prompt.')", 12)
  180. DoAfterSpecial(1, "SendNoEcho('bprompt " .. bprompt .. "%c')", 12)
  181. else
  182. DoAfterSpecial(1, "print('Your battle prompt is fine')", 12)
  183. end
  184.  
  185. DoAfterSpecial(2, "xset resume page size", sendto.execute)
  186.  
  187. end
  188. end
  189.  
  190. function OnPluginBroadcast_promptfix (msg, id, name, text)
  191. if id == '3e7dedbe37e44942dd46d264' then
  192. if text:find("char") then
  193. res, gmcparg = CallPlugin("3e7dedbe37e44942dd46d264","gmcpval", "char")
  194. stats = assert (loadstring ('return ' .. gmcparg or ""))()
  195. if (prompt_check_1 == "false") then
  196. -- one time only flag
  197. prompt_check_1 = "true"
  198. SetVariable("prompt_check_1", prompt_check_1)
  199.  
  200. ColourNote("SteelBlue", "", " !!! S&D will be performing a prompt check in 20 seconds time")
  201. DoAfterSpecial(20, "xset prompt", sendto.execute)
  202. end
  203. end
  204. end
  205. end
  206.  
  207. function OnPluginEnable ()
  208. if IsConnected() then
  209. res, gmcparg = CallPlugin("3e7dedbe37e44942dd46d264","gmcpval","char")
  210. stats = assert (loadstring ('return ' .. gmcparg or ""))()
  211. end
  212. end
  213.  
  214. ----------- page size functions ---------------------------
  215. local page_size = 0
  216. local page_size_suspended = false
  217.  
  218. function capture_page_size(name, line, wildcards)
  219. EnableTrigger("trg_page_size", false)
  220. local size = tonumber(wildcards[1])
  221.  
  222. if (size == nil) then
  223. page_size = 0
  224. else
  225. page_size = size
  226. Execute("pagesize 0")
  227. end
  228. Note(page_size)
  229. end
  230.  
  231. function suspend_page_size(name, line, wildcards)
  232. if (page_size_suspended == false) then
  233. page_size_suspended = true
  234. ColourNote("DarkGray", "", "--> Suspending paging... if enabled")
  235. EnableTrigger("trg_page_size", true)
  236. Send("pagesize")
  237. end
  238. end
  239.  
  240. function resume_page_size(name, line, wildcards)
  241. ColourNote("DarkGray", "", "--> Resuming paging... if enabled")
  242. EnableTrigger("trg_page_size", false)
  243. if (page_size ~= 0) then
  244. Send("pagesize " .. page_size)
  245. end
  246. page_size_suspended = false
  247. end
  248.  
  249.  
  250. ]]>
  251. </script>
Add Comment
Please, Sign In to add comment