|
楼主 |
发表于 2013-7-21 21:57:30
|
显示全部楼层
官網原始link
http://www.mushclient.com/forum/bbshowpost.php?id=9965&page=1
抱歉,忘了貼上來
-
- match="inv"
- enabled="y"
- send_to="12"
- sequence="100"
- >
-
- require "wait"
- wait.make (function () -- coroutine starts here
- local win = GetPluginID () .. ":inventory"
- local font = "f"
- if not WindowInfo (win, 1) then
- WindowCreate (win, 0, 0, 0, 0, 6, 0, 0)
- WindowFont (win, font, "Lucida Console", 9)
- end -- if
- -- request inventory
- Send "inventory"
- -- wait for inventory to start
- local x = wait.match ("You are carrying:", 10)
- if not x then
- ColourNote ("white", "blue", "No inventory received within 10 seconds")
- return
- end -- if
- local inv = {}
- local max_width = WindowTextWidth (win, font, "Inventory")
- -- loop until end of inventory
- while true do
- local line, wildcards, styles = wait.match ("*")
- -- see if end of inventory
- if not string.match (line, "^ ") then
- break
- end -- if
- -- save inventory line
- table.insert (inv, styles)
- -- work out max width
- max_width = math.max (max_width, WindowTextWidth (win, font, line))
- end -- while loop
- local font_height = WindowFontInfo (win, font, 1)
- local window_width = max_width + 10
- local window_height = font_height * (#inv + 2) + 10
- -- make window correct size
- WindowCreate (win, 0, 0, window_width, window_height, 6, 0, ColourNameToRGB "#373737")
- WindowRectOp (win, 5, 0, 0, 0, 0, 5, 15 + 0x1000)
- -- heading line
- WindowText (win, font, "Inventory", 5, 5, 0, 0, ColourNameToRGB "yellow")
- -- draw each inventory line
- local y = font_height * 2 + 5
- for i, styles in ipairs (inv) do
- local x = 5
- for _, style in ipairs (styles) do
- x = x + WindowText (win, font, style.text, x, y, 0, 0, style.textcolour)
- end -- for
- y = y + font_height
- end -- for each inventory item
- WindowShow (win, true)
- end) -- end of coroutine
-
复制代码 |
|