[HELP] Inventory Miniwindow

Posted by Roundcircle on Fri 04 Jun 2010 09:01 PM — 3 posts, 12,549 views.

USA #0
My inventory miniwindow won't popup I think it has something to do with "You are carrying:". It sends inventory to Aardwolf and Aardwolf shows me what is in my inventory, but the inventory miniwindow doesn't popup and after 10 seconds it says "Inventory Timeout".


require "wait"

wait.make(function () -- coroutine start

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

local x = wait.match ("You are carrying:", 10)
if not x then
  ColourNote ("white", "blue", "Inventory Timeout")
  return
end -- if

local inv = {}
local max_width = WindowTextWidth (win, font, "Inventory")

-- inventory loop

while true do
  local line, wildcards, styles = wait.match ("*")

  --check 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 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 inventory lines

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

WindowShow (win, true)

end) -- coroutine end


Thanks for your help
Australia Forum Administrator #1
I just pasted what you had into an alias and it worked. Do you actually see "You are carrying:" appear on the screen, like this? ...


You are carrying:
     Gueldar's crafted leather cap (1)
     Gueldar's crafted leather jerkin (1)
     Gueldar's crafted leather belt (1)
     Gueldar's crafted leather bracer (1)


If so, it should work. But if you see this, it won't:


{inventory}
     Gueldar's crafted leather cap (1)
     Gueldar's crafted leather jerkin (1)
     Gueldar's crafted leather belt (1)
     Gueldar's crafted leather bracer (1)
{/inventory}


If you see the latter, type "tag inv off" to go back to the original display, or change the alias to look for "{inventory}" instead of "You are carrying:".
USA #2
I did a little change and now it's working. I changed this

--wait for inventory

local x = wait.match ("You are carrying:", 10)
if not x then
  ColourNote ("white", "blue", "Inventory Timeout")
  return
end -- if


to this


--wait for inventory

local x = wait.match ("You are carrying:", 10)

if not x then
  ColourNote ("white", "blue", "Inventory Timeout")
  return
end -- if


I don't think it likes me.