Lua 错误:尝试索引全局变量 'concommand' (值为 nil)。

我想用Lua制作一个简单的网页浏览器。我有以下脚本。但是它不能编译并且出现错误:尝试索引全局变量'concommand'(一个空值)。有人能告诉我我的脚本有什么问题吗?

    --醉人的简单网页浏览器

如果SERVER然后AddCSLuaFile("web_browser.lua")返回end

concommand.Add("OpenWebBrowser", function()

local homepage = "http://www.google.com"

local frame = vgui.Create("DFrame")
frame:SetSize(ScrW()*0.8, ScrH()*0.8)
frame:SetTitle("")
frame:SetDraggable(false)
frame:Center()
frame:MakePopup()
frame.Paint = function()
    surface.SetDrawColor(0, 0, 0, 150)
    surface.DrawRect(0, 0, frame:GetWide(), frame:GetTall())
end

local lbl_loading = vgui.Create("DLabel", frame)
lbl_loading:SetText("加载中. . .")
surface.CreateFont("coolvetica", 64, 400, true, false, "LoadFont")
lbl_loading:SetFont("LoadFont")
lbl_loading:SetColor(Color(255, 255, 255))
lbl_loading:SizeToContents()
lbl_loading:Center()

local html_pos = { 12, 48 }
local html_size = { frame:GetWide()-html_pos[1]*2, frame:GetTall()-html_pos[2]-html_pos[1] }
local html_frame = vgui.Create("HTML", frame)
html_frame:SetPos(html_pos[1], html_pos[2])
html_frame:SetSize(html_size[1], html_size[2])
html_frame:OpenURL(homepage)

local lbl_goto = vgui.Create("DLabel", frame)
lbl_goto:SetText("转到:")
surface.CreateFont("coolvetica", 24, 400, true, false, "GotoFont")
lbl_goto:SetFont("GotoFont")
lbl_goto:SetColor(Color(255, 255, 255))
lbl_goto:SetPos(12, 16)
lbl_goto:SizeToContents()

local txt_goto = vgui.Create("DTextEntry", frame)
txt_goto:SetSize(frame:GetWide()-96, 24)
txt_goto:SetPos(64, 14)
txt_goto:SetText(homepage)
txt_goto.OnEnter = function()
    local site = string.lower(txt_goto:GetValue())
  --      if string.Left( site, 7 ) != "http://" then
  --         site = "http://" .. site
  --      txt_goto:SetText( site )
  --  end
    html_frame:OpenURL(site)
end

end)
点赞
用户869951
用户869951

我无法访问你的 wiremod 链接(需要登录才能下载)。但看起来这个脚本应该是在某个嵌入了 Lua 的应用程序中运行的,以使其可编程(我想是 gmod http://www.garrysmod.com/)。你不能仅仅运行这个脚本:你在这个脚本中看到的其中几个变量都与主机应用程序中的数据相关联。

如果要创建一个像这个脚本一样的 Web 浏览器,你将需要安装该应用程序。或者,放弃这种方法,从更简单、更有趣的东西开始,比如使用 Lua 的 Corona,它将被更好地记录并得到更多社区支持。

2014-01-08 07:06:21
用户646619
用户646619

那个脚本是2010年的,而Garry在2012/13年对Garry's Mod进行了一些API更改。这个脚本很可能不能正常工作。

此外,我同意Schollii的意见,不要从Garry's Mod开始编程。它的API并不是很好。

2014-01-08 23:31:44