Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!-- %c game prompt checking code. Much thanks to bast for providing this. -->
- <aliases>
- <!-- Page Size -->
- <alias
- match="^xset suspend page size$"
- enabled="y"
- regexp="y"
- sequence="100"
- ignore_case="y"
- script="suspend_page_size"
- >
- </alias>
- <alias
- match="^xset resume page size$"
- enabled="y"
- regexp="y"
- sequence="100"
- ignore_case="y"
- script="resume_page_size"
- >
- </alias>
- <alias
- match="^xset prompt$"
- script="cmd_checkprompt"
- enabled="y"
- regexp="y"
- sequence="100"
- ignore_case="y"
- >
- </alias>
- <alias
- script="check_reset"
- match="^xset prompt reset$"
- enabled="y"
- regexp="y"
- sequence="99"
- ignore_case="y"
- >
- </alias>
- </aliases>
- <triggers>
- <trigger
- enabled="n"
- regexp="y"
- match="@cYour game prompt is @w: (?<prompt>.*?)(?:@w)?$"
- sequence="10"
- name="rprompt"
- script="prompt"
- group="prompt"
- >
- </trigger>
- <trigger
- enabled="n"
- regexp="y"
- match="@cYour battle prompt is@w: (?<prompt>.*?)(?:@w)?$"
- sequence="10"
- name="bprompt"
- script="prompt"
- group="prompt"
- >
- </trigger>
- <trigger
- name="gag_all"
- enabled="n"
- regexp="y"
- match="^.*$"
- sequence="990"
- send_to="10"
- omit_from_output="y"
- >
- </trigger>
- <!-- page size -->
- <trigger
- match="^You currently display ([0-9]+) lines per page\.|You do not page long messages\.$"
- name="trg_page_size"
- enabled="n"
- regexp="y"
- sequence="100"
- script="capture_page_size"
- omit_from_output = "y"
- >
- </trigger>
- </triggers>
- <!-- Script -->
- <script>
- <![CDATA[
- require "commas"
- require 'var'
- require 'tprint'
- local rprompt = ""
- local bprompt = ""
- local stats = nil
- local prompt_check_1 = GetVariable("prompt_check_1") or "false"
- function cmd_checkprompt()
- if not stats then
- print('I could not determine you status')
- return
- end
- if stats and stats.status and stats.status.state and not
- (tonumber(stats.status.state) == 3 or
- tonumber(stats.status.state) == 9 or
- tonumber(stats.status.state) == 11) then
- print('You are not active or resting or sleeping')
- else
- DoAfterSpecial(.1, "print('*** ONE TIME CHECK ***')", 12)
- DoAfterSpecial(.1, "print('*** Checking your prompt terminates with %c *** ')", 12)
- suspend_page_size(nil, nil, {})
- DoAfterSpecial(2, "cmd_checkprompt_2()", sendto.script)
- end
- end
- function cmd_checkprompt_2()
- --EnableTrigger("gag_all", true)
- EnableTriggerGroup('prompt', true)
- SendNoEcho('rawcolors')
- SendNoEcho('config')
- SendNoEcho('rawcolors')
- end
- function pcheck(prompt)
- local tprompt = prompt
- local c = tprompt:sub(#tprompt - 1,#tprompt)
- if (c ~= "%c") then
- return false
- end
- return true
- end
- function check_reset(name, line, wildcards)
- prompt_check_1 = "false"
- SetVariable("prompt_check_1", prompt_check_1)
- ColourNote("SteelBlue", "", "Prompt %c check flag reset")
- end
- function prompt (name, line, wildcards)
- if name == 'rprompt' then
- rprompt = wildcards.prompt
- elseif name == 'bprompt' then
- bprompt = wildcards.prompt
- --EnableTrigger("gag_all", false)
- EnableTriggerGroup('prompt', false)
- print('prompt =', rprompt)
- print('bprompt =', bprompt)
- if not pcheck(rprompt) then
- DoAfterSpecial(1, "print('Fixing your game prompt.')", 12)
- DoAfterSpecial(1, "SendNoEcho('prompt " .. rprompt .. "%c')", 12)
- else
- DoAfterSpecial(1, "print('Your game prompt is fine')", 12)
- end
- if not pcheck(bprompt) then
- DoAfterSpecial(1, "print('Fixing your battle prompt.')", 12)
- DoAfterSpecial(1, "SendNoEcho('bprompt " .. bprompt .. "%c')", 12)
- else
- DoAfterSpecial(1, "print('Your battle prompt is fine')", 12)
- end
- DoAfterSpecial(2, "xset resume page size", sendto.execute)
- end
- end
- function OnPluginBroadcast_promptfix (msg, id, name, text)
- if id == '3e7dedbe37e44942dd46d264' then
- if text:find("char") then
- res, gmcparg = CallPlugin("3e7dedbe37e44942dd46d264","gmcpval", "char")
- stats = assert (loadstring ('return ' .. gmcparg or ""))()
- if (prompt_check_1 == "false") then
- -- one time only flag
- prompt_check_1 = "true"
- SetVariable("prompt_check_1", prompt_check_1)
- ColourNote("SteelBlue", "", " !!! S&D will be performing a prompt check in 20 seconds time")
- DoAfterSpecial(20, "xset prompt", sendto.execute)
- end
- end
- end
- end
- function OnPluginEnable ()
- if IsConnected() then
- res, gmcparg = CallPlugin("3e7dedbe37e44942dd46d264","gmcpval","char")
- stats = assert (loadstring ('return ' .. gmcparg or ""))()
- end
- end
- ----------- page size functions ---------------------------
- local page_size = 0
- local page_size_suspended = false
- function capture_page_size(name, line, wildcards)
- EnableTrigger("trg_page_size", false)
- local size = tonumber(wildcards[1])
- if (size == nil) then
- page_size = 0
- else
- page_size = size
- Execute("pagesize 0")
- end
- Note(page_size)
- end
- function suspend_page_size(name, line, wildcards)
- if (page_size_suspended == false) then
- page_size_suspended = true
- ColourNote("DarkGray", "", "--> Suspending paging... if enabled")
- EnableTrigger("trg_page_size", true)
- Send("pagesize")
- end
- end
- function resume_page_size(name, line, wildcards)
- ColourNote("DarkGray", "", "--> Resuming paging... if enabled")
- EnableTrigger("trg_page_size", false)
- if (page_size ~= 0) then
- Send("pagesize " .. page_size)
- end
- page_size_suspended = false
- end
- ]]>
- </script>
Add Comment
Please, Sign In to add comment