【发布时间】:2015-05-23 23:46:57
【问题描述】:
function Team_Swap()
local Backg = vgui.Create( "DFrame" )
Backg:SetSize( ScrW() / 2, ScrH() / 2 )
Backg:SetPos ( ScrW() / 2, ScrH() / 2 )
Backg:SetTitle( "Swap Teams" )
Backg:SetVisible ( true )
Backg:SetDraggable ( true )
Backg:ShowCloseButton ( true )
Backg:MakePopup()
local DColorButton = vgui.Create ( "DColorButton", Backg )
DColorButton:SetPos( 40, 40 )
DColorButton:Paint( 100, 40 )
DColorButton:SetSize( 100, 40 )
DColorButton:SetText( "Join Red Team", Color( 221,78,76 ) )
DColorButton:SetColor( Color( 221,78,76 )
function DColorButton:DoClick(player)
player:Kill()
player:SetTeam(1)
player:Spawn()
end
end
concommand.Add( "set_team", Team_Swap )
这段代码运行良好......直到你完成它的唯一目的点击按钮 单击按钮时在控制台中返回以下文本
newrecycle]set_team
[错误] gamemodes/capturetheflag/gamemode/cl_init.lua:32: 尝试索引本地“玩家”(零值) 1. DoClick - gamemodes/capturetheflag/gamemode/cl_init.lua:32 2. 未知 - lua/vgui/dlabel.lua:218
[n3wr3cycl3|20|STEAM_0:1:59994487] Lua 错误:
[ERROR] gamemodes/capturetheflag/gamemode/cl_init.lua:32: 尝试索引本地“玩家”(零值) 1. DoClick - gamemodes/capturetheflag/gamemode/cl_init.lua:32 2. 未知 - lua/vgui/dlabel.lua:218
请帮忙!
【问题讨论】:
-
在我看到调用 DoClick 的函数之前,我只能推测
player在单击时没有作为参数传递。除此之外,一切看起来都很好。 -
调用
DoClick的函数是原生C++代码。
标签: lua garrys-mod