Lua错误:尝试索引全局'concommand'(零值)

时间:2014-01-08 05:53:22

标签: lua

我想在lua中创建一个简单的Web浏览器。我得到了以下脚本。但它没有编译并给出错误:尝试索引全局'concommand'(零值) 任何人都可以告诉我的剧本有什么问题吗?

    -- Simple Web Browser by Drunkie

if SERVER then AddCSLuaFile("web_browser.lua") return 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( "Loading . . ." )
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( "Goto:" )
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 )

2 个答案:

答案 0 :(得分:2)

我无法关注您的wiremod链接(需要登录才能下载)。但看起来这个脚本应该是从一些嵌入Lua的应用程序中运行以使其自身可编写脚本(我认为gmod http://www.garrysmod.com/)。您不能单独运行脚本:您在此脚本中看到的几个变量链接到主机应用程序中的数据。

要创建类似于Web浏览器的脚本,您必须安装该应用程序。或者,放弃这种方法,从更简单,更有趣的事情开始,例如使用Lua的Corona,它将更好地记录并获得更多社区支持。

答案 1 :(得分:0)

该脚本是从2010年开始的,而Garry在2012/13赛季对Garry的Mod进行了一些API更改。脚本不太可能按原样运行。

另外,我同意Schollii不要开始使用Garry的Mod编程。 API不是很好。