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.

262 lines
5.9 KiB

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE muclient>
<!-- Saved on Sunday, October 25, 2015, 12:03 PM -->
<!-- MuClient version 4.98 -->
<!-- Plugin "Epic_Not_Here_Counter" generated by Plugin Wizard -->
<muclient>
<plugin
name="Epic_Not_Here_Counter"
author="Arcidayne"
id="e6cd5104e883a1dd9c4362e2"
language="Lua"
purpose="Identifies players not in your current room. Useful for leaders on Epics."
save_state="y"
date_written="2015-10-25 12:00:38"
requires="4.00"
version="2"
>
<description trim="y">
<![CDATA[
Simple command. Use 'grhere' to identify people missing from your group in the room, or 'grarea' to find people missing in the area.
]]>
</description>
</plugin>
<!-- Triggers -->
<triggers>
<trigger
group="Epic_Not_Here"
keep_evaluating="y"
match="^Lvl\/Gld\s+Name\s+Hp\s+Mana\s+Moves\s+Align\s+TNL\s+Qt\s+Here\?$"
name="Start_Group"
regexp="y"
send_to="12"
sequence="100"
>
<send>epic_group_not_in_room = {}
EnableTrigger("In_Room",true)
EnableTrigger("End_Group",true)
EnableTrigger("Start_Group",false)</send>
</trigger>
<trigger
group="Epic_Not_Here"
keep_evaluating="y"
match="^(?:200|201)\s.{3}\s+\*?(\w+)\s+\d+/\d+\s+\d+/\d+\s+\d+/\d+\s+-?\d+\s+\d+\s+\d+\*?\s+[\W]$"
name="In_Room"
regexp="y"
send_to="12"
sequence="100"
>
<send>table.insert(epic_group_not_in_room,"%1")</send>
</trigger>
<trigger
group="Epic_Not_Here"
keep_evaluating="y"
match="^$"
name="End_Group"
regexp="y"
send_to="12"
sequence="100"
>
<send>EnableTrigger("In_Room",false)
Send("gt @Y" .. #epic_group_not_in_room .. " @CPlayer(s) Missing: @W" .. table.concat(epic_group_not_in_room, ", ") .. "$C")
EnableTrigger("End_Group",false)</send>
</trigger>
<trigger
group="Epic_Not_Here"
match="^$"
name="End_Area"
regexp="y"
send_to="12"
sequence="100"
>
<send>local not_in_area = {}
EnableTrigger("Get_Names", false)
for k,v in pairs(group_table) do
if v == 0 then
table.insert(not_in_area, k)
end
end
EnableTrigger("End_Area", false)
if SetCounterDebug == 0 then
Send("gt @W" .. #not_in_area .. " @Ymember(s) not in the area: @W" .. table.concat(not_in_area, ", ") .. "$C")
else
ColourNote("white", "darkcyan", "Epic Not Here debugging information!")
print("Epic Group")
for _,v in ipairs(epicgroup.members) do
print(v.name)
end
print("Group Table")
for k,v in pairs(group_table) do
print(k, v)
end
print("Not in Area")
print(table.concat(not_in_area, ", "))
end</send>
</trigger>
<trigger
group="Epic_Not_Here"
match="^(\w+)\s"
name="Get_Names"
regexp="y"
send_to="12"
sequence="100"
>
<send>if group_table["%1"] then
group_table["%1"] = 1
end
</send>
</trigger>
<trigger
group="Epic_Not_Here"
match="^Players near you\:$"
name="PlayersNear"
regexp="y"
send_to="12"
sequence="100"
>
<send>EnableTrigger("Get_Names", true)
EnableTrigger("PlayersNear", false)
EnableTrigger("End_Area", true)</send>
</trigger>
</triggers>
<!-- Aliases -->
<aliases>
<alias
match="^grhere$"
enabled="y"
group="Epic_Not_Here"
regexp="y"
send_to="12"
sequence="100"
>
<send>EnableTrigger("Start_Group",true)
9 years ago
Send("group")
Send("echo ")</send>
</alias>
<alias
match="^grupdate$"
enabled="y"
group="Epic_Not_Here"
regexp="y"
script="UpdatePlugin"
sequence="100"
>
</alias>
<alias
match="^grarea$"
enabled="y"
group="Epic_Not_Here"
regexp="y"
send_to="12"
sequence="100"
>
<send>group_table = {}
for _,v in ipairs(epicgroup.members) do
group_table[v.name] = 0
print(v.name)
end
EnableTrigger("PlayersNear", true)
Send("where")
Send("echo")</send>
</alias>
<alias
match="^grdebug (on|off)$"
enabled="y"
group="Epic_Not_Here"
regexp="y"
send_to="12"
sequence="100"
>
<send>if "%1" == "on" then
SetCounterDebug = 1
ColourNote("white", "darkcyan", "Epic Not Here debugging on!")
else
SetCounterDebug = 0
ColourNote("white", "darkcyan", "Epic Not Here debugging off!")
end
</send>
</alias>
</aliases>
<!-- Plugin help -->
<aliases>
<alias
script="OnHelp"
match="^(?:enh|gr)help$"
enabled="y"
regexp="y"
>
</alias>
</aliases>
<script>
<![CDATA[
function OnHelp ()
world.Note (world.GetPluginInfo (world.GetPluginID (), 3))
end
function OnPluginBroadcast(msg, id, name, text)
if (id == '3e7dedbe37e44942dd46d264') and (text == 'group') then
local res, group = CallPlugin("3e7dedbe37e44942dd46d264", "gmcpval", "group")
if group then
assert( loadstring( "epicgroup = " .. group or "")) ()
else
epicgroup = {}
end
end
end
function OnPluginInstall()
SetCounterDebug = 0
end
function UpdatePlugin()
async_ok, async = pcall (require, "async")
local raw_page = "https://raw.githubusercontent.com/Arcidayne/Aardwolf-Scripts/master/Epic_Not_Here_Counter/Epic_Not_Here_Counter.xml"
local plugin_file = GetPluginInfo(GetPluginID(), 20) .. GetPluginInfo(GetPluginID(), 1) .. ".xml"
local plugin_version = GetPluginInfo(GetPluginID(), 19)
if async_ok then
raw_return = async.request(raw_page, "HTTPS")
end
retval, page, status, headers, full_status = raw_return:join()
raw_return = nil
if status == 200 then
raw_version = string.match(page, '%s%s+version="([0-9%.]+)"')
print("Raw version: " .. raw_version)
print("Plugin version: " .. plugin_version)
end
if tonumber(raw_version) == tonumber(plugin_version) then
ColourNote("white", "blue", "You currently have the latest version!")
elseif tonumber(raw_version) > tonumber(plugin_version) then
ColourNote("white", "blue", "Updating from " .. plugin_version .. " to " .. raw_version .. "!")
local file = io.open(plugin_file, "w")
file:write(page)
file:close()
ReloadPlugin(GetPluginID())
end
raw_version = nil
end
]]>
</script>
</muclient>