parent
04a1040919
commit
dc78220122
@ -0,0 +1,913 @@
|
|||||||
|
<?xml version="1.0" encoding="iso-8859-1"?>
|
||||||
|
<!DOCTYPE muclient>
|
||||||
|
<muclient>
|
||||||
|
<plugin
|
||||||
|
name="Adapted_Aardwolf_Group_Monitor"
|
||||||
|
author="Koopa-Fiendish"
|
||||||
|
id="f178e68512c685b3be1e9e07"
|
||||||
|
language="Lua"
|
||||||
|
purpose="Adapted Aardwolf Group Monitor"
|
||||||
|
date_written="2010-12-13 15:35:02"
|
||||||
|
requires="4.73"
|
||||||
|
version="2.0"
|
||||||
|
save_state="y"
|
||||||
|
>
|
||||||
|
|
||||||
|
<description trim="y">
|
||||||
|
|
||||||
|
Aardwolf Group Monitor
|
||||||
|
|
||||||
|
Gives a persistent compressed display of the status of your group members using
|
||||||
|
details captured through GMCP.
|
||||||
|
|
||||||
|
</description>
|
||||||
|
|
||||||
|
</plugin>
|
||||||
|
|
||||||
|
<aliases>
|
||||||
|
|
||||||
|
<alias
|
||||||
|
match="resetaard"
|
||||||
|
enabled="y"
|
||||||
|
sequence="100"
|
||||||
|
ignore_case="y"
|
||||||
|
script="reset_aard"
|
||||||
|
></alias>
|
||||||
|
|
||||||
|
-- show the group window
|
||||||
|
<alias
|
||||||
|
match="ktgroupon"
|
||||||
|
enabled="y"
|
||||||
|
sequence="100"
|
||||||
|
omit_from_output="y"
|
||||||
|
script="ShowIt"
|
||||||
|
></alias>
|
||||||
|
|
||||||
|
-- hide the group window
|
||||||
|
<alias
|
||||||
|
match="ktgroupoff"
|
||||||
|
enabled="y"
|
||||||
|
sequence="100"
|
||||||
|
omit_from_output="y"
|
||||||
|
script="HideIt"
|
||||||
|
></alias>
|
||||||
|
</aliases>
|
||||||
|
|
||||||
|
<triggers>
|
||||||
|
<trigger
|
||||||
|
enabled="y"
|
||||||
|
match="^(\w+) has invited you to join group: (.*)\.$"
|
||||||
|
script="group_invite"
|
||||||
|
regexp="y"
|
||||||
|
sequence="100"
|
||||||
|
custom_colour="17"
|
||||||
|
other_text_colour="#FFFFFF"
|
||||||
|
other_back_colour="#0000FF"
|
||||||
|
></trigger>
|
||||||
|
|
||||||
|
<trigger
|
||||||
|
enabled="y"
|
||||||
|
match="^(\w+) has cancelled your invitation to join group: (.*)\.$"
|
||||||
|
script="group_cancel"
|
||||||
|
regexp="y"
|
||||||
|
sequence="100"
|
||||||
|
custom_colour="17"
|
||||||
|
other_text_colour="#FFFFFF"
|
||||||
|
other_back_colour="#FF0000"
|
||||||
|
></trigger>
|
||||||
|
|
||||||
|
<trigger
|
||||||
|
enabled="y"
|
||||||
|
match="^You have declined the group invitation from (\w+)\.$"
|
||||||
|
script="group_cancel"
|
||||||
|
regexp="y"
|
||||||
|
sequence="100"
|
||||||
|
custom_colour="17"
|
||||||
|
other_text_colour="#FFFFFF"
|
||||||
|
other_back_colour="#FF0000"
|
||||||
|
></trigger>
|
||||||
|
|
||||||
|
<trigger
|
||||||
|
enabled="y"
|
||||||
|
match="^You have no invitation outstanding from (\w+)\.$"
|
||||||
|
script="group_cancel"
|
||||||
|
regexp="y"
|
||||||
|
sequence="100"
|
||||||
|
custom_colour="17"
|
||||||
|
other_text_colour="#FFFFFF"
|
||||||
|
other_back_colour="#FF0000"
|
||||||
|
></trigger>
|
||||||
|
|
||||||
|
<trigger
|
||||||
|
enabled="y"
|
||||||
|
match="^Your group invite from (\w+) is cancelled because the group has been disbanded\.$"
|
||||||
|
script="group_cancel"
|
||||||
|
regexp="y"
|
||||||
|
sequence="100"
|
||||||
|
custom_colour="17"
|
||||||
|
other_text_colour="#FFFFFF"
|
||||||
|
other_back_colour="#FF0000"
|
||||||
|
></trigger>
|
||||||
|
|
||||||
|
<trigger
|
||||||
|
enabled="y"
|
||||||
|
match="^Your group invitation from (\w+) is cancelled because (\w+) has left that group\.$"
|
||||||
|
script="group_cancel"
|
||||||
|
regexp="y"
|
||||||
|
sequence="100"
|
||||||
|
custom_colour="17"
|
||||||
|
other_text_colour="#FFFFFF"
|
||||||
|
other_back_colour="#FF0000"
|
||||||
|
></trigger>
|
||||||
|
|
||||||
|
<trigger
|
||||||
|
enabled="y"
|
||||||
|
match="^Your group invitation from (\w+) is cancelled because (\w+) has left the game\.$"
|
||||||
|
script="group_cancel"
|
||||||
|
regexp="y"
|
||||||
|
sequence="100"
|
||||||
|
custom_colour="17"
|
||||||
|
other_text_colour="#FFFFFF"
|
||||||
|
other_back_colour="#FF0000"
|
||||||
|
></trigger>
|
||||||
|
</triggers>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
<![CDATA[
|
||||||
|
require "aard_register_z_on_create"
|
||||||
|
|
||||||
|
require "mw_theme_base"
|
||||||
|
|
||||||
|
require "gauge"
|
||||||
|
require "movewindow"
|
||||||
|
require "gmcphelper"
|
||||||
|
require "copytable"
|
||||||
|
require "serialize"
|
||||||
|
|
||||||
|
default_x = 868
|
||||||
|
default_y = 336
|
||||||
|
default_height = 215
|
||||||
|
default_width = 269
|
||||||
|
height = tonumber (GetVariable ("height")) or default_height
|
||||||
|
width = tonumber (GetVariable ("width")) or default_width
|
||||||
|
show_self = tonumber (GetVariable ("show_self")) or 1
|
||||||
|
show_hp = tonumber (GetVariable ("show_hp")) or 1
|
||||||
|
show_mn = tonumber (GetVariable ("show_mn")) or 1
|
||||||
|
show_mv = tonumber (GetVariable ("show_mv")) or 1
|
||||||
|
hidden = tonumber (GetVariable ("hidden")) or 0
|
||||||
|
flat_gauges = tonumber (GetVariable("flat_gauges")) or 0
|
||||||
|
overlay_numbers = tonumber (GetVariable("overlay_numbers")) or 0
|
||||||
|
GAP = 2
|
||||||
|
font_size = 8
|
||||||
|
font_name = ""
|
||||||
|
group_members = {}
|
||||||
|
group_info = {}
|
||||||
|
|
||||||
|
local defaultColorVals = {Health={0x00ff00,0x004400}, Mana={0xff5500,0x442200}, Moves={0x00ffff,0x004444}, Align={0x0000ff,0x00ffff}}
|
||||||
|
colorVals = defaultColorVals
|
||||||
|
assert (loadstring (GetVariable ("colorVals") or "")) ()
|
||||||
|
|
||||||
|
thresh1active = tonumber (GetVariable("thresh1active")) or 0
|
||||||
|
thresh2active = tonumber (GetVariable("thresh2active")) or 0
|
||||||
|
thresh1percent = tonumber (GetVariable("thresh1percent")) or 40
|
||||||
|
thresh2percent = tonumber (GetVariable("thresh2percent")) or 20
|
||||||
|
thresh1color = tonumber (GetVariable("thresh1color")) or 0x00ffff
|
||||||
|
thresh2color = tonumber (GetVariable("thresh2color")) or 0x0000ff
|
||||||
|
|
||||||
|
local barIndex = {"Health", "Mana", "Moves", "Align"}
|
||||||
|
|
||||||
|
RESIZE_TAG_SIZE = 10
|
||||||
|
MIN_SIZE = 100
|
||||||
|
|
||||||
|
-- Variables not saved.
|
||||||
|
startx = ""
|
||||||
|
starty = ""
|
||||||
|
posx = ""
|
||||||
|
posy = ""
|
||||||
|
hidden_members = {}
|
||||||
|
|
||||||
|
-- pull in telnet option handling
|
||||||
|
--dofile (GetPluginInfo (GetPluginID(), 20) .. "telnet_options.lua")
|
||||||
|
|
||||||
|
-- functions for handling Aardwolf color codes
|
||||||
|
--dofile (GetPluginInfo (GetPluginID(), 20) .. "aardwolf_colors.lua")
|
||||||
|
|
||||||
|
function reset_aard()
|
||||||
|
font_name = default_font_name
|
||||||
|
font_size = default_font_size
|
||||||
|
WindowPosition(win, default_x, default_y, 0, 18)
|
||||||
|
WindowResize(win, default_width, default_height, Theme.PRIMARY_BODY)
|
||||||
|
Repaint() -- hack because WindowPosition doesn't immediately update coordinates
|
||||||
|
SaveState()
|
||||||
|
OnPluginInstall()
|
||||||
|
end
|
||||||
|
|
||||||
|
function SetUpHotspotsAndDraw(firstTime)
|
||||||
|
-- don't use windowcreate after the first time, because it messes with hotspot handlers
|
||||||
|
if (firstTime == true) then
|
||||||
|
check (WindowCreate (win,
|
||||||
|
windowinfo.window_left, windowinfo.window_top, -- left, top (auto-positions)
|
||||||
|
width, -- width
|
||||||
|
height, -- height
|
||||||
|
windowinfo.window_mode, -- auto-position: middle right
|
||||||
|
windowinfo.window_flags, -- flags
|
||||||
|
Theme.PRIMARY_BODY) )
|
||||||
|
-- Add the drag handler so they can move the window around
|
||||||
|
movewindow.add_drag_handler (win, 0, 0, 0, 0)
|
||||||
|
|
||||||
|
if hidden == 0 then
|
||||||
|
WindowShow (win, true)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
-- everything has already been made
|
||||||
|
-- just move them back into place
|
||||||
|
WindowResize(win, width, height, Theme.PRIMARY_BODY)
|
||||||
|
end
|
||||||
|
DisplayGroupPage()
|
||||||
|
end
|
||||||
|
|
||||||
|
string.lpad = function(str, len, char)
|
||||||
|
if char == nil then char = ' ' end
|
||||||
|
return string.rep(char, len - #str) .. str
|
||||||
|
end
|
||||||
|
|
||||||
|
string.rpad = function(str, len, char)
|
||||||
|
if char == nil then char = ' ' end
|
||||||
|
return str .. string.rep(char, len - #str)
|
||||||
|
end
|
||||||
|
|
||||||
|
function RemoveMembersFromGroupDisplay()
|
||||||
|
group_members = {}
|
||||||
|
if (full_group_data ~= nil) then
|
||||||
|
for i,v in ipairs(full_group_data.members) do
|
||||||
|
if not (hidden_members[v.name] or ((show_self == 0) and (char_data ~= nil) and (v.name == char_data.name))) then
|
||||||
|
table.insert(group_members, v)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
function round(n)
|
||||||
|
return n % 1 >= 0.5 and math.ceil(n) or math.floor(n)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- put all current group members into the hidden_members list
|
||||||
|
function hideAllMembers()
|
||||||
|
hidden_members = {}
|
||||||
|
if full_group_data and full_group_data.members and char_data and char_data.name then
|
||||||
|
for i,v in ipairs(full_group_data.members) do
|
||||||
|
if v.name ~= char_data.name then
|
||||||
|
hidden_members[v.name] = true
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
RemoveMembersFromGroupDisplay()
|
||||||
|
end
|
||||||
|
|
||||||
|
-- build and draw the group display
|
||||||
|
function DisplayGroupPage()
|
||||||
|
WindowRectOp(win, 2, 2, 2,-2,-2, Theme.PRIMARY_BODY) -- blank
|
||||||
|
|
||||||
|
if not group_built then
|
||||||
|
if next(invitations) == nil then
|
||||||
|
txt = "No Group To Display"
|
||||||
|
txtlen = WindowTextWidth(win,font_id, txt)
|
||||||
|
WindowText(win, font_id, txt, (width-txtlen)/2, title_height/4, 0, 0, Theme.BODY_TEXT, utf8)
|
||||||
|
txt = "Group info will appear"
|
||||||
|
txtlen = WindowTextWidth(win,font_id,txt)
|
||||||
|
WindowText (win, font_id, txt, (width-txtlen)/2, height/2, 0, 0, Theme.BODY_TEXT, utf8)
|
||||||
|
txt = "once you create or join one."
|
||||||
|
txtlen = WindowTextWidth(win,font_id,txt)
|
||||||
|
WindowText (win, font_id, txt, (width-txtlen)/2, height/2+line_height, 0, 0, Theme.BODY_TEXT, utf8)
|
||||||
|
else
|
||||||
|
local lines = {}
|
||||||
|
txt = "Pending Group Invitations"
|
||||||
|
txtlen = WindowTextWidth(win, font_id, txt)
|
||||||
|
WindowText(win, font_id, txt, (width-txtlen)/2, title_height/4, 0, 0, Theme.BODY_TEXT, utf8)
|
||||||
|
table.insert(lines, "[ Leader : Group Name ]")
|
||||||
|
table.insert(lines, "---------------------------")
|
||||||
|
for k,v in pairs(invitations) do
|
||||||
|
table.insert(lines, string.rpad(k,12).." : "..v)
|
||||||
|
end
|
||||||
|
for i,v in ipairs(lines) do
|
||||||
|
WindowText(win, font_id, v, GAP*4, (title_height) + (i*line_height), 0, 0, Theme.BODY_TEXT, utf8)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
else
|
||||||
|
y = title_height
|
||||||
|
|
||||||
|
if #group_members > 0 then
|
||||||
|
-- MAIN DISPLAY BODY
|
||||||
|
local baseX = GAP
|
||||||
|
local baseY = y+GAP
|
||||||
|
column_width = WindowTextWidth(win, font_id, "WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW")+GAP*4
|
||||||
|
if overlay_numbers == 0 then
|
||||||
|
column_width = column_width+WindowTextWidth(win, font_id, "WWWW")
|
||||||
|
end
|
||||||
|
num_columns = math.max(math.floor(width / column_width), 1)
|
||||||
|
members_per_col = math.ceil((#group_members)/num_columns)
|
||||||
|
labels_width = math.max(WindowTextWidth(win, font_id, "HP"), WindowTextWidth(win, font_id, "MN"), WindowTextWidth(win, font_id, "MV"))
|
||||||
|
bar_width = column_width - GAP*4 - labels_width
|
||||||
|
if overlay_numbers == 0 then
|
||||||
|
bar_width = bar_width - WindowTextWidth(win, font_id, "88888/88888")
|
||||||
|
end
|
||||||
|
|
||||||
|
-- x=248
|
||||||
|
-- Theme.WindowTextFromStyles(win, font_id, {{text="Align",textcolour=0xFFFFFF}}, 248 , y, 0, 0)
|
||||||
|
-- x=x-24
|
||||||
|
-- Theme.WindowTextFromStyles(win, font_id, {{text="QT",textcolour=0xFFFFFF}}, x, y, 0, 0)
|
||||||
|
-- x=x-40
|
||||||
|
-- Theme.WindowTextFromStyles(win, font_id, {{text="mv",textcolour=0xFFFFFF}}, x, y, 0, 0)
|
||||||
|
-- x=x-40
|
||||||
|
-- Theme.WindowTextFromStyles(win, font_id, {{text="mn",textcolour=0xFFFFFF}}, x, y, 0, 0)
|
||||||
|
-- x=x-40
|
||||||
|
-- Theme.WindowTextFromStyles(win, font_id, {{text="hp",textcolour=0xFFFFFF}}, x, y, 0, 0)
|
||||||
|
-- x=x-14
|
||||||
|
-- Theme.WindowTextFromStyles(win, font_id, {{text="here",textcolour=0xFFFFFF}}, x, y, 0, 0)
|
||||||
|
-- x=x-80
|
||||||
|
-- Theme.WindowTextFromStyles(win, font_id, {{text="Name",textcolour=0xFFFFFF}}, x, y, 0, 0)
|
||||||
|
|
||||||
|
|
||||||
|
table.sort(group_members, function(a,b) return a.name < b.name end)
|
||||||
|
herecount = 0
|
||||||
|
|
||||||
|
for i,v in ipairs(group_members) do
|
||||||
|
if (i ~= 1) and ((i-1) % members_per_col == 0) then
|
||||||
|
baseY = title_height+GAP-1
|
||||||
|
y = baseY
|
||||||
|
baseX = baseX + column_width
|
||||||
|
x = baseX
|
||||||
|
else
|
||||||
|
baseY = y + GAP-1
|
||||||
|
y = baseY
|
||||||
|
x = baseX
|
||||||
|
end
|
||||||
|
-- txt = "["..(("P" and v.info.status.poisoned == true) or "_")..
|
||||||
|
-- (("B" and v.info.status.blind == true) or "_")..
|
||||||
|
-- (("W" and v.info.status.webbed == true) or "_")..
|
||||||
|
-- (("C" and v.info.status.cursed == true) or "_")..
|
||||||
|
-- (("*" and v.info.status.attacked == true) or "_").."]"
|
||||||
|
-- WindowText(win, font_id, txt, x, y, 0, 0, Theme.BODY_TEXT, utf8)
|
||||||
|
-- x = x + math.max(WindowTextWidth(win, font_id, "[PBWC*]"), WindowTextWidth(win, font_id, "[_____]")) + GAP
|
||||||
|
--txt = "["..string.lpad(v.info.lvl, 3, ' ').."]"
|
||||||
|
--x = x + WindowText(win, font_id, txt, x, y, 0, 0, Theme.BODY_TEXT, utf8) + GAP
|
||||||
|
txt = string.rpad(v.name, 12, ' ')
|
||||||
|
zeroed_alignment = v.info.align+2500
|
||||||
|
align_colour = ((zeroed_alignment<=1625 and colorVals.Align[1]) or ((zeroed_alignment>=3375 and colorVals.Align[2]) or Theme.BODY_TEXT))
|
||||||
|
--x = x + WindowText(win, font_id, txt, x, y, 0, 0, name_colour, utf8) + GAP
|
||||||
|
if tonumber(v.info.here) == 1 then
|
||||||
|
here = "##"
|
||||||
|
herecount = herecount + 1
|
||||||
|
else
|
||||||
|
here = " "
|
||||||
|
end
|
||||||
|
|
||||||
|
greythresh = 0
|
||||||
|
whitethresh = 1
|
||||||
|
redthresh = 30
|
||||||
|
yellowthresh = 59
|
||||||
|
dcyanthresh = 74
|
||||||
|
|
||||||
|
|
||||||
|
hpPercent = round(100* (tonumber(v.info.hp) / tonumber(v.info.mhp)),0)
|
||||||
|
if hpPercent <= greythresh then
|
||||||
|
hpcolor = 0xaaaaaa
|
||||||
|
elseif hpPercent <=whitethresh then
|
||||||
|
hpcolor = 0xffffff
|
||||||
|
elseif hpPercent <=redthresh then
|
||||||
|
hpcolor = 0x0000FF
|
||||||
|
elseif hpPercent <=yellowthresh then
|
||||||
|
hpcolor = 0x00FFFF
|
||||||
|
elseif hpPercent <=dcyanthresh then
|
||||||
|
hpcolor = 0x808000
|
||||||
|
else
|
||||||
|
hpcolor = 0x00FF00
|
||||||
|
end
|
||||||
|
mnPercent = round(100* (tonumber(v.info.mn) / tonumber(v.info.mmn)),0)
|
||||||
|
if mnPercent <= greythresh then
|
||||||
|
mncolor = 0xaaaaaa
|
||||||
|
elseif mnPercent <=whitethresh then
|
||||||
|
mncolor = 0xffffff
|
||||||
|
elseif mnPercent <=redthresh then
|
||||||
|
mncolor = 0x0000FF
|
||||||
|
elseif mnPercent <=yellowthresh then
|
||||||
|
mncolor = 0x00FFFF
|
||||||
|
elseif mnPercent <=dcyanthresh then
|
||||||
|
mncolor = 0x808000
|
||||||
|
else
|
||||||
|
mncolor = 0x00FF00
|
||||||
|
end
|
||||||
|
mvPercent = round(100* (tonumber(v.info.mv) / tonumber(v.info.mmv)),0)
|
||||||
|
if mvPercent <= greythresh then
|
||||||
|
mvcolor = 0xaaaaaa
|
||||||
|
elseif mvPercent <=whitethresh then
|
||||||
|
mvcolor = 0xffffff
|
||||||
|
elseif mvPercent <=redthresh then
|
||||||
|
mvcolor = 0x0000FF
|
||||||
|
elseif mvPercent <=yellowthresh then
|
||||||
|
mvcolor = 0x00FFFF
|
||||||
|
elseif mvPercent <=dcyanthresh then
|
||||||
|
mvcolor = 0x808000
|
||||||
|
else
|
||||||
|
mvcolor = 0x00FF00
|
||||||
|
end
|
||||||
|
--txt = v.name ..here.."["..hpPercent.."] ["..mnPercent.."] ["..mvPercent.."] "..v.info.qt
|
||||||
|
if tonumber(v.info.qt) == 0 then
|
||||||
|
qcolor = 0x0000FF
|
||||||
|
elseif tonumber(v.info.qt) <= 5 then
|
||||||
|
qcolor = 0x00FFFF
|
||||||
|
else
|
||||||
|
qcolor = 0xC0C0C0
|
||||||
|
end
|
||||||
|
|
||||||
|
--Left Justified
|
||||||
|
-- x=Theme.WindowTextFromStyles(win, font_id, {{text=v.name,textcolour=hpcolor}}, x, y, 0, 0)
|
||||||
|
-- Theme.WindowTextFromStyles(win, font_id, {{text=here,textcolour=0xffffff}}, x, y, 0, 0)
|
||||||
|
-- x=x+14
|
||||||
|
-- Theme.WindowTextFromStyles(win, font_id, {{text="["..string.lpad(tostring(hpPercent),3,' ').."]",textcolour=hpcolor}}, x, y, 0, 0)
|
||||||
|
-- x=x+40
|
||||||
|
-- Theme.WindowTextFromStyles(win, font_id, {{text="["..string.lpad(tostring(mnPercent),3,' ').."]",textcolour=mncolor}}, x, y, 0, 0)
|
||||||
|
-- x=x+40
|
||||||
|
-- Theme.WindowTextFromStyles(win, font_id, {{text="["..string.lpad(tostring(mvPercent),3,' ').."]",textcolour=mvcolor}}, x, y, 0, 0)
|
||||||
|
-- x=x+40
|
||||||
|
-- Theme.WindowTextFromStyles(win, font_id, {{text=string.lpad(tostring(v.info.qt),2,' '),textcolour=qcolor}}, x, y, 0, 0)
|
||||||
|
-- x=x+24
|
||||||
|
-- Theme.WindowTextFromStyles(win, font_id, {{text="#",textcolour=align_colour}}, x, y, 0, 0)
|
||||||
|
--Right
|
||||||
|
x=248
|
||||||
|
Theme.WindowTextFromStyles(win, font_id, {{text="#",textcolour=align_colour}}, 248 , y, 0, 0)
|
||||||
|
x=x-24
|
||||||
|
Theme.WindowTextFromStyles(win, font_id, {{text=string.lpad(tostring(v.info.qt),2,' '),textcolour=qcolor}}, x, y, 0, 0)
|
||||||
|
x=x-40
|
||||||
|
Theme.WindowTextFromStyles(win, font_id, {{text="["..string.lpad(tostring(mvPercent),3,' ').."]",textcolour=mvcolor}}, x, y, 0, 0)
|
||||||
|
x=x-40
|
||||||
|
Theme.WindowTextFromStyles(win, font_id, {{text="["..string.lpad(tostring(mnPercent),3,' ').."]",textcolour=mncolor}}, x, y, 0, 0)
|
||||||
|
x=x-40
|
||||||
|
Theme.WindowTextFromStyles(win, font_id, {{text="["..string.lpad(tostring(hpPercent),3,' ').."]",textcolour=hpcolor}}, x, y, 0, 0)
|
||||||
|
x=x-14
|
||||||
|
Theme.WindowTextFromStyles(win, font_id, {{text=here,textcolour=0xffffff}}, x, y, 0, 0)
|
||||||
|
x=x-80
|
||||||
|
|
||||||
|
|
||||||
|
Theme.WindowTextFromStyles(win, font_id, {{text=v.name,textcolour=hpcolor}}, x, y, 0, 0)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
y = y + line_height + 1
|
||||||
|
y = y + GAP - 2
|
||||||
|
end
|
||||||
|
else
|
||||||
|
txt = "Your group is empty."
|
||||||
|
txtlen = WindowTextWidth(win,font_id, txt)
|
||||||
|
WindowText(win, font_id, txt, (width-txtlen)/2, (height+line_height)/2, 0, 0, Theme.BODY_TEXT, utf8)
|
||||||
|
end
|
||||||
|
x= Theme.WindowTextFromStyles(win, font_id, {{text="Player Count [",textcolour=0xFFFFFF}}, 8,y,0,0)
|
||||||
|
Theme.WindowTextFromStyles(win, font_id, {{text=#group_members,textcolour=0x00FFFF}}, x,y,0,0)
|
||||||
|
x=x+16
|
||||||
|
Theme.WindowTextFromStyles(win, font_id, {{text="] Here [",textcolour=0xFFFFFF}}, x,y,0,0)
|
||||||
|
x=x+72
|
||||||
|
Theme.WindowTextFromStyles(win, font_id, {{text=herecount,textcolour=0x00FFFF}}, x,y,0,0)
|
||||||
|
x=x+16
|
||||||
|
Theme.WindowTextFromStyles(win, font_id, {{text="]",textcolour=0xFFFFFF}}, x,y,0,0)
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
Theme.DrawBorder(win)
|
||||||
|
Theme.Draw3DRect(win, -1, -1, WindowInfo(win, 3)-1, title_height, false)
|
||||||
|
|
||||||
|
if group_built then
|
||||||
|
styles = ColoursToStyles(full_group_data.groupname)
|
||||||
|
local x = GAP
|
||||||
|
local y = 2
|
||||||
|
local statusBoundary = math.max(GAP, width-WindowTextWidth(win, font_id, full_group_data.status)-3*GAP)
|
||||||
|
WindowRectOp(win, 2, statusBoundary+2*GAP - 2, y , -3, y+line_height, ((full_group_data.status=="Private" and 0x000088) or 0x008800))
|
||||||
|
WindowText(win, font_id, full_group_data.status, statusBoundary+2*GAP, y, 0, 0, 0xffffff)
|
||||||
|
x = x + WindowText(win, font_id, "Group: ", x, y, statusBoundary, 0, Theme.THREE_D_SURFACE_DETAIL, utf8)
|
||||||
|
local group_width = WindowTextWidth(win, font_id, strip_colours_from_styles(styles))
|
||||||
|
WindowRectOp(win, 2, x-3, y, x+group_width + GAP, y+line_height, Theme.PRIMARY_BODY)
|
||||||
|
Theme.WindowTextFromStyles(win, font_id, styles, x, y, statusBoundary, 0)
|
||||||
|
y = y + line_height
|
||||||
|
local xpKillsBoundary = math.max(GAP,width-WindowTextWidth(win, font_id, "XP:"..full_group_data.exp.." K:"..full_group_data.kills)-3*GAP)
|
||||||
|
WindowText(win, font_id, "XP:"..full_group_data.exp.." K:"..full_group_data.kills, xpKillsBoundary+2*GAP, y, 0,0, Theme.THREE_D_SURFACE_DETAIL, utf8)
|
||||||
|
WindowText(win, font_id, "Leader: "..full_group_data.leader, GAP, y, xpKillsBoundary, 0, Theme.THREE_D_SURFACE_DETAIL, utf8)
|
||||||
|
end
|
||||||
|
|
||||||
|
Theme.AddResizeTag(win, 1, nil, nil, "MouseDown", "ResizeMoveCallback", "ResizeReleaseCallback")
|
||||||
|
|
||||||
|
CallPlugin("abc1a0944ae4af7586ce88dc", "BufferedRepaint")
|
||||||
|
end -- Display_Group_Page
|
||||||
|
|
||||||
|
function validate_percent(input)
|
||||||
|
if string.sub(input, -1) == "%" then
|
||||||
|
input = string.sub(input, 1,-2)
|
||||||
|
end
|
||||||
|
local inputNum = tonumber(input)
|
||||||
|
if not inputNum or inputNum < 1 or inputNum > 100 or inputNum % 1 ~= 0 then
|
||||||
|
ColourNote("white","red","'"..input.."' is not a whole number between 1 and 100. Try again.")
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
|
function right_click_menu ()
|
||||||
|
return false
|
||||||
|
-- menustring ="!Change Font|>Show Players|"..((show_self==1 and "+") or "").."Include Self|All Others|No Others|-|"
|
||||||
|
-- local member_count = 0
|
||||||
|
-- local member_names = {}
|
||||||
|
-- if full_group_data and full_group_data.members and char_data and char_data.name then
|
||||||
|
-- for i,v in ipairs(full_group_data.members) do
|
||||||
|
-- if v.name ~= char_data.name then
|
||||||
|
-- menustring = menustring..(((hidden_members[v.name] == nil) and "+") or "")..v.name.."|"
|
||||||
|
-- member_count = member_count + 1
|
||||||
|
-- table.insert(member_names, v.name)
|
||||||
|
-- end
|
||||||
|
-- end
|
||||||
|
-- end
|
||||||
|
-- menustring = menustring.."<|-|>Configure Colors|>Health|Main|Border|<|>Mana|Main|Border|<|>Moves|Main|Border|<|>Align|Evil|Good|<|<|>Show Info|"..((show_hp==1 and "+") or "").."Health|"..((show_mn==1 and "+") or "").."Mana|"..((show_mv==1 and "+") or "").."Moves|<|"..((flat_gauges==1 and "+") or "").."Use Flat Gauges|"..((overlay_numbers==1 and "+") or "").."Overlay Numbers|>HP Thresholds|>First|"..(((thresh1active == 1) and "+") or "").."Activate|Set Percent ("..thresh1percent.."%)|Set Color ("..RGBColourToName(thresh1color)..")|<|>Second|"..(((thresh2active == 1) and "+") or "").."Activate|Set Percent ("..thresh2percent.."%)|Set Color ("..RGBColourToName(thresh2color)..")|<|<|-|Bring To Front|Send To Back|-|Reset Defaults"
|
||||||
|
-- result = WindowMenu (win,
|
||||||
|
-- WindowInfo (win, 14), -- x position
|
||||||
|
-- WindowInfo (win, 15), -- y position
|
||||||
|
-- menustring) -- content
|
||||||
|
|
||||||
|
-- if result ~= "" then
|
||||||
|
-- numResult = tonumber(result)
|
||||||
|
-- if numResult == 1 then
|
||||||
|
-- -- change font
|
||||||
|
-- wanted_font = utils.fontpicker (font_name, font_size) --font dialog
|
||||||
|
-- if wanted_font then
|
||||||
|
-- font_name = wanted_font.name
|
||||||
|
-- font_size = wanted_font.size
|
||||||
|
-- end
|
||||||
|
-- elseif numResult == 2 then
|
||||||
|
-- -- show/hide self
|
||||||
|
-- show_self = (((show_self == 0) and 1) or 0)
|
||||||
|
-- if (show_self == 0) then
|
||||||
|
-- ColourNote("yellow", "", "You will no longer see your own status in the group monitor.")
|
||||||
|
-- else
|
||||||
|
-- ColourNote("yellow", "", "You will now see your own status in the group monitor.")
|
||||||
|
-- end
|
||||||
|
-- elseif numResult == 3 then
|
||||||
|
-- -- remove all from the hidden list
|
||||||
|
-- hidden_members = {}
|
||||||
|
-- elseif numResult == 4 then
|
||||||
|
-- -- add all to the hidden list
|
||||||
|
-- hideAllMembers()
|
||||||
|
-- elseif numResult >= 5 and numResult <= member_count+4 then
|
||||||
|
-- -- add/remove members in the hidden list
|
||||||
|
-- local adjustedNumResult = numResult - 4
|
||||||
|
-- hidden_members[member_names[adjustedNumResult]] = (((hidden_members[member_names[adjustedNumResult]]== nil) and true) or nil)
|
||||||
|
-- elseif numResult >= member_count+5 and numResult <= member_count+12 then
|
||||||
|
-- -- change color settings
|
||||||
|
-- local adjustedNumResult = numResult-member_count-4
|
||||||
|
-- local colourIndex = 2
|
||||||
|
-- if (adjustedNumResult % 2 == 1) then
|
||||||
|
-- colourIndex = 1
|
||||||
|
-- end
|
||||||
|
-- local newcolour = PickColour (colorVals[barIndex[math.ceil(adjustedNumResult/2)]][colourIndex])
|
||||||
|
-- if newcolour ~= -1 then
|
||||||
|
-- colorVals[barIndex[math.ceil(adjustedNumResult/2)]][colourIndex] = newcolour
|
||||||
|
-- end
|
||||||
|
-- elseif numResult == member_count+13 then
|
||||||
|
-- -- show/hide HP info
|
||||||
|
-- show_hp = (((show_hp == 0) and 1) or 0)
|
||||||
|
-- if (show_hp == 0) then
|
||||||
|
-- ColourNote("yellow", "", "You will no longer see HP info in the group monitor.")
|
||||||
|
-- else
|
||||||
|
-- ColourNote("yellow", "", "You will now see HP info in the group monitor.")
|
||||||
|
-- end
|
||||||
|
-- elseif numResult == member_count+14 then
|
||||||
|
-- -- show/hide MANA info
|
||||||
|
-- show_mn = (((show_mn == 0) and 1) or 0)
|
||||||
|
-- if (show_mn == 0) then
|
||||||
|
-- ColourNote("yellow", "", "You will no longer see MN info in the group monitor.")
|
||||||
|
-- else
|
||||||
|
-- ColourNote("yellow", "", "You will now see MN info in the group monitor.")
|
||||||
|
-- end
|
||||||
|
-- elseif numResult == member_count+15 then
|
||||||
|
-- -- show/hide MOVES info
|
||||||
|
-- show_mv = (((show_mv == 0) and 1) or 0)
|
||||||
|
-- if (show_mv == 0) then
|
||||||
|
-- ColourNote("yellow", "", "You will no longer see MV info in the group monitor.")
|
||||||
|
-- else
|
||||||
|
-- ColourNote("yellow", "", "You will now see MV info in the group monitor.")
|
||||||
|
-- end
|
||||||
|
-- elseif numResult == member_count+16 then
|
||||||
|
-- -- use flat/shaded gauges
|
||||||
|
-- flat_gauges = (((flat_gauges == 0) and 1) or 0)
|
||||||
|
-- elseif numResult == member_count+17 then
|
||||||
|
-- -- toggle overlay numbers on top of gauges
|
||||||
|
-- overlay_numbers = (((overlay_numbers == 0) and 1) or 0)
|
||||||
|
-- elseif numResult == member_count+18 then
|
||||||
|
-- thresh1active = (((thresh1active == 0) and 1) or 0)
|
||||||
|
-- elseif numResult == member_count+19 then
|
||||||
|
-- local perc = utils.inputbox( "I want the HP bars to change color when they drop below this percent...\n(enter a whole number between 1 and 100)", "Group Monitor HP Threshold #1", thresh1percent, nil, nil, {validate=validate_percent})
|
||||||
|
-- if perc then
|
||||||
|
-- if string.sub(perc, -1) == "%" then
|
||||||
|
-- perc = string.sub(perc, 1,-2)
|
||||||
|
-- end
|
||||||
|
-- thresh1percent = tonumber(perc)
|
||||||
|
-- end
|
||||||
|
-- elseif numResult == member_count+20 then
|
||||||
|
-- local newColor = PickColour (thresh1color)
|
||||||
|
-- if newcolor ~= -1 then
|
||||||
|
-- thresh1color = newColor
|
||||||
|
-- end
|
||||||
|
-- elseif numResult == member_count+21 then
|
||||||
|
-- thresh2active = (((thresh2active == 0) and 1) or 0)
|
||||||
|
-- elseif numResult == member_count+22 then
|
||||||
|
-- local perc = utils.inputbox( "I want the HP bars to change color when they drop below this percent...\n(enter a whole number between 1 and 100)", "Group Monitor HP Threshold #2", thresh2percent, nil, nil, {validate=validate_percent})
|
||||||
|
-- if perc then
|
||||||
|
-- if string.sub(perc, -1) == "%" then
|
||||||
|
-- perc = string.sub(perc, 1,-2)
|
||||||
|
-- end
|
||||||
|
-- thresh2percent = tonumber(perc)
|
||||||
|
-- end
|
||||||
|
-- elseif numResult == member_count+23 then
|
||||||
|
-- local newColor = PickColour (thresh2color)
|
||||||
|
-- if newcolor ~= -1 then
|
||||||
|
-- thresh2color = newColor
|
||||||
|
-- end
|
||||||
|
-- elseif numResult == member_count+24 then
|
||||||
|
-- -- bring to front
|
||||||
|
-- CallPlugin("462b665ecb569efbf261422f","boostMe", win)
|
||||||
|
-- elseif numResult == member_count+25 then
|
||||||
|
-- -- send to back
|
||||||
|
-- CallPlugin("462b665ecb569efbf261422f","dropMe", win)
|
||||||
|
-- elseif numResult == member_count+26 then
|
||||||
|
-- -- reset
|
||||||
|
-- font_name = default_font_name
|
||||||
|
-- font_size = default_font_size
|
||||||
|
-- height = default_height
|
||||||
|
-- width = default_width
|
||||||
|
-- show_coords = 0
|
||||||
|
-- end -- if
|
||||||
|
|
||||||
|
-- RemoveMembersFromGroupDisplay()
|
||||||
|
-- -- save and reload
|
||||||
|
-- SaveState()
|
||||||
|
-- OnPluginInstall()
|
||||||
|
-- end
|
||||||
|
end -- right_click_menu
|
||||||
|
|
||||||
|
invitations = {}
|
||||||
|
|
||||||
|
function group_invite(name, line, wildcards, styles)
|
||||||
|
invitations[wildcards[1]]=wildcards[2]
|
||||||
|
DisplayGroupPage()
|
||||||
|
end
|
||||||
|
|
||||||
|
function group_cancel(name, line, wildcards, styles)
|
||||||
|
invitations[wildcards[1]] = nil
|
||||||
|
DisplayGroupPage()
|
||||||
|
end
|
||||||
|
|
||||||
|
--=================================================================================
|
||||||
|
-- Called when plugin receives telnet data - main entry point for actually running
|
||||||
|
-- the plugin.
|
||||||
|
--=================================================================================
|
||||||
|
function OnPluginBroadcast (msg, id, name, text)
|
||||||
|
-- Look for GMCP handler.
|
||||||
|
if (id == '3e7dedbe37e44942dd46d264') then
|
||||||
|
if (text == 'reload') then
|
||||||
|
-- invalidate current data
|
||||||
|
group_built = false
|
||||||
|
self_built = false
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
if (text=="char.base") then
|
||||||
|
char_data = gmcp("char.base")
|
||||||
|
self_built = true
|
||||||
|
if group_built then
|
||||||
|
RemoveMembersFromGroupDisplay()
|
||||||
|
DisplayGroupPage()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
if (text == "group") then
|
||||||
|
full_group_data = gmcp("group")
|
||||||
|
if (full_group_data.groupname == "") then
|
||||||
|
leaveGroup()
|
||||||
|
else
|
||||||
|
group_built = true
|
||||||
|
if self_built then
|
||||||
|
RemoveMembersFromGroupDisplay()
|
||||||
|
DisplayGroupPage()
|
||||||
|
else
|
||||||
|
Send_GMCP_Packet("request char")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
elseif (id == "462b665ecb569efbf261422f" and msg==996 and text == "re-register z") then
|
||||||
|
CallPlugin("462b665ecb569efbf261422f", "registerMiniwindow", win)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function ResizeMoveCallback()
|
||||||
|
if GetPluginVariable("c293f9e7f04dde889f65cb90", "lock_down_miniwindows") == "1" then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
posx, posy = WindowInfo (win, 17), WindowInfo (win, 18)
|
||||||
|
width = width + posx - startx
|
||||||
|
startx = posx
|
||||||
|
if (width < MIN_SIZE) then
|
||||||
|
width = MIN_SIZE
|
||||||
|
startx = windowinfo.window_left+width
|
||||||
|
elseif (windowinfo.window_left+width > GetInfo(281)) then
|
||||||
|
width = GetInfo(281)-windowinfo.window_left
|
||||||
|
startx = GetInfo(281)
|
||||||
|
end
|
||||||
|
|
||||||
|
height = height + posy - starty
|
||||||
|
starty = posy
|
||||||
|
local min_lines = 1
|
||||||
|
if show_hp == 1 then
|
||||||
|
min_lines = min_lines + 1
|
||||||
|
end
|
||||||
|
if show_mn == 1 then
|
||||||
|
min_lines = min_lines + 1
|
||||||
|
end
|
||||||
|
if show_mv == 1 then
|
||||||
|
min_lines = min_lines + 1
|
||||||
|
end
|
||||||
|
if (height < title_height+(min_lines*line_height)+(2*GAP)+min_lines-1) then
|
||||||
|
height = title_height+(min_lines*line_height)+(2*GAP)+min_lines-1
|
||||||
|
starty = windowinfo.window_top+height
|
||||||
|
elseif (windowinfo.window_top+height > GetInfo(280)) then
|
||||||
|
height = GetInfo(280)-windowinfo.window_top
|
||||||
|
starty = GetInfo(280)
|
||||||
|
end
|
||||||
|
if (utils.timer() - lastRefresh > 0.0333) then
|
||||||
|
SetUpHotspotsAndDraw(false)
|
||||||
|
lastRefresh = utils.timer()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
lastRefresh = 0
|
||||||
|
|
||||||
|
function ResizeReleaseCallback()
|
||||||
|
SetUpHotspotsAndDraw(true)
|
||||||
|
end
|
||||||
|
|
||||||
|
function MouseDown(flags, hotspot_id)
|
||||||
|
if (hotspot_id == "resize") then
|
||||||
|
startx, starty = WindowInfo (win, 17), WindowInfo (win, 18)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
function CancelMouseOver (flags, hotspotid)
|
||||||
|
end -- cancelmouseover
|
||||||
|
|
||||||
|
function CancelMouseDown(flags, hotspot_id)
|
||||||
|
end
|
||||||
|
|
||||||
|
function MouseUp(flags, hotspot_id, win)
|
||||||
|
if bit.band (flags, miniwin.hotspot_got_rh_mouse) ~= 0 then
|
||||||
|
right_click_menu()
|
||||||
|
end
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
|
||||||
|
function LeftClickOnly(flags, hotspot_id, win)
|
||||||
|
if bit.band (flags, miniwin.hotspot_got_rh_mouse) ~= 0 then
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
|
function leaveGroup ()
|
||||||
|
invitations = {}
|
||||||
|
group_built = false
|
||||||
|
full_group_data = nil
|
||||||
|
SetUpHotspotsAndDraw(true)
|
||||||
|
end
|
||||||
|
|
||||||
|
function OnPluginConnect()
|
||||||
|
Send_GMCP_Packet("rawcolor on")
|
||||||
|
Send_GMCP_Packet("group on")
|
||||||
|
end
|
||||||
|
|
||||||
|
function OnPluginSaveState()
|
||||||
|
-- save window current location for next time
|
||||||
|
movewindow.save_state(win)
|
||||||
|
|
||||||
|
SetVariable("enabled", tostring(GetPluginInfo(GetPluginID (), 17)))
|
||||||
|
if WindowInfo(win, 3) and WindowInfo(win, 4) then
|
||||||
|
width = WindowInfo(win, 3)
|
||||||
|
height = WindowInfo(win, 4)
|
||||||
|
end
|
||||||
|
SetVariable("width", width)
|
||||||
|
SetVariable("height", height)
|
||||||
|
SetVariable("font_name", font_name)
|
||||||
|
SetVariable("font_size", font_size)
|
||||||
|
SetVariable("show_self", show_self)
|
||||||
|
SetVariable("show_hp", show_hp)
|
||||||
|
SetVariable("show_mn", show_mn)
|
||||||
|
SetVariable("show_mv", show_mv)
|
||||||
|
SetVariable("hidden", hidden)
|
||||||
|
SetVariable("colorVals", serialize.save ("colorVals"))
|
||||||
|
SetVariable("flat_gauges", flat_gauges)
|
||||||
|
SetVariable("overlay_numbers", overlay_numbers)
|
||||||
|
SetVariable("thresh1active", thresh1active)
|
||||||
|
SetVariable("thresh2active", thresh2active)
|
||||||
|
SetVariable("thresh1percent", thresh1percent)
|
||||||
|
SetVariable("thresh2percent", thresh2percent)
|
||||||
|
SetVariable("thresh1color", thresh1color)
|
||||||
|
SetVariable("thresh2color", thresh2color)
|
||||||
|
end -- OnPluginSaveState
|
||||||
|
|
||||||
|
function OnPluginClose()
|
||||||
|
OnPluginDisable()
|
||||||
|
WindowDelete(win)
|
||||||
|
end
|
||||||
|
|
||||||
|
function HideIt()
|
||||||
|
WindowShow( win, false )
|
||||||
|
hidden = 1
|
||||||
|
SaveState()
|
||||||
|
end
|
||||||
|
|
||||||
|
function ShowIt()
|
||||||
|
WindowShow (win, true)
|
||||||
|
hidden = 0
|
||||||
|
SaveState()
|
||||||
|
end
|
||||||
|
|
||||||
|
function OnPluginDisable ()
|
||||||
|
SaveState()
|
||||||
|
WindowShow(win, false)
|
||||||
|
end -- OnPluginDisable
|
||||||
|
|
||||||
|
function OnPluginEnable ()
|
||||||
|
if hidden == 0 then
|
||||||
|
WindowShow (win, true)
|
||||||
|
end
|
||||||
|
if IsConnected() then
|
||||||
|
OnPluginConnect()
|
||||||
|
end
|
||||||
|
SaveState()
|
||||||
|
end -- OnPluginEnable
|
||||||
|
|
||||||
|
win = GetPluginID()
|
||||||
|
function OnPluginListChanged ()
|
||||||
|
dofile "lua/aard_requirements.lua"
|
||||||
|
end
|
||||||
|
|
||||||
|
function OnPluginInstall()
|
||||||
|
|
||||||
|
local fonts = utils.getfontfamilies ()
|
||||||
|
|
||||||
|
-- if Dina not there already, add it
|
||||||
|
if not fonts.Dina then
|
||||||
|
AddFont (GetInfo (66) .. "\\Dina.fon")
|
||||||
|
fonts = utils.getfontfamilies ()
|
||||||
|
end
|
||||||
|
|
||||||
|
if fonts ["Dina"] then
|
||||||
|
default_font_size = 8
|
||||||
|
default_font_name = "Dina"
|
||||||
|
elseif fonts["Courier New"] then
|
||||||
|
default_font_size = 9
|
||||||
|
default_font_name = "Courier New"
|
||||||
|
else
|
||||||
|
default_font_size = 9
|
||||||
|
default_font_name = "Lucida Console"
|
||||||
|
end
|
||||||
|
|
||||||
|
font_id = "font"
|
||||||
|
font_name = GetVariable("font_name") or default_font_name
|
||||||
|
font_size = tonumber(GetVariable("font_size")) or default_font_size
|
||||||
|
|
||||||
|
windowinfo = movewindow.install(win, miniwin.pos_center, miniwin.create_absolute_location, false, nil, {mouseup=MouseUp, mousedown=LeftClickOnly, dragmove=LeftClickOnly, dragrelease=LeftClickOnly},{x=default_x, y=default_y})
|
||||||
|
WindowCreate(win, windowinfo.window_left, windowinfo.window_top, width, height, windowinfo.window_mode, windowinfo.window_flags, Theme.SECONDARY_BODY)
|
||||||
|
WindowFont(win, font_id, font_name, font_size, false, false, false, false, 0) -- normal font
|
||||||
|
|
||||||
|
--- Grab font size settings.
|
||||||
|
line_height = WindowFontInfo (win, font_id, 1) - WindowFontInfo (win, font_id, 4) + 2
|
||||||
|
title_height = line_height*2+4
|
||||||
|
|
||||||
|
if IsConnected() then
|
||||||
|
OnPluginConnect()
|
||||||
|
Send_GMCP_Packet("request group")
|
||||||
|
end
|
||||||
|
|
||||||
|
-- if disabled last time, stay disabled
|
||||||
|
if GetVariable ("enabled") == "false" then
|
||||||
|
ColourNote ("yellow", "", "Warning: Plugin " .. GetPluginName ().. " is currently disabled.")
|
||||||
|
check (EnablePlugin(GetPluginID (), false))
|
||||||
|
return
|
||||||
|
end -- they didn't enable us last time
|
||||||
|
|
||||||
|
-- Draw the initial group window
|
||||||
|
SetUpHotspotsAndDraw(true)
|
||||||
|
end
|
||||||
|
|
||||||
|
function getmemoryusage()
|
||||||
|
collectgarbage('collect')
|
||||||
|
return collectgarbage('count')
|
||||||
|
end
|
||||||
|
|
||||||
|
]]>
|
||||||
|
|
||||||
|
</script>
|
||||||
|
</muclient>
|
Loading…
Reference in new issue