Having some problems hooking this to a usermessage
3 replies, posted
Here's a snip of the code
[code]
function votemap()
vmF = vgui.Create("DFrame")
vmF:SetPos(50, 50)
vmF:SetSize(400, 250)
vmF:SetTitle("Votemap")
vmF:MakePopup()
vmF.Paint = function( self )
draw.RoundedBox(6, 0, 0, self:GetWide(), self:GetTall(), Color(158, 0, 22))
end
vmP = vgui.Create("DPanelList", vmF)
vmP:SetPos(5, 25)
vmP:SetSize( vmF:GetWide() - 10, vmF:GetTall() - 30)
vmP:SetPadding( 4 )
vmP:EnableHorizontal( true )
vmP:EnableVerticalScrollbar( true )
vmP.Paint = function( self )
draw.RoundedBox(6, 0, 0, self:GetWide(), self:GetTall(), Color(0, 0, 0))
end
for k, v in pairs( file.Find("maps/rd_*.bsp", true) ) do
table.insert(allmaps, CorrectString( v ))
end
for k, v in pairs( allmaps ) do
if( k <= 4 ) then
table.insert(votemaps, table.Random(allmaps))
else
break
end
end
for k, v in pairs( votemaps ) do
local lab = vgui.Create("DButton", vmF)
lab:SetText( v )
lab:SetPos(9, 5 + (k * 20))
lab:SetSize(surface.GetTextSize( v ) + 5, lab:GetTall())
lab.Paint = function( self )
draw.RoundedBox(6, 0, 0, self:GetWide(), self:GetTall(), Color(0, 0, 0, 0))
end
lab.OnCursorEntered = function()
lab:SetTextColor( Color(158, 0, 22) )
end
lab.OnCursorExited = function()
lab:SetTextColor( Color(255, 255, 255) )
end
lab.DoClick = function()
RunConsoleCommand("votemap", v)
vmF:Remove()
end
end
end end
if GAMEMODE:EndGame( TEAM_ZOMBIES ) or GAMEMODE:EndGame( TEAM_ARMY ) then
usermessage.Hook("Nextmap", votemap)
end end[/code]
Basically when the gamemode ends, whether the humans or zombies win, the votemap will trigger. The votemap itself works, as I've tested it when it's tied to a concommand but I can't get it to function with a usermessage.
Can you show us where you're calling the hook?
[QUOTE=jrj996;30836019]Can you show us where you're calling the hook?[/QUOTE]
You mean where he is sending the usermessage.
[editline]2nd July 2011[/editline]
Wait, have you ever checked if this ever got run
[lua]
if GAMEMODE:EndGame( TEAM_ZOMBIES ) or GAMEMODE:EndGame( TEAM_ARMY ) then
usermessage.Hook("Nextmap", votemap)
end
[/lua]
[lua]
if( SERVER) then
//if( round is over ) then
for k, v in pairs( player.GetAll() ) do
umsg.Start("nextmap", v)
umsg.End()
end
end
else
function votemap()
vmF = vgui.Create("DFrame")
vmF:SetPos(50, 50)
vmF:SetSize(400, 250)
vmF:SetTitle("Votemap")
vmF:MakePopup()
vmF.Paint = function( self )
draw.RoundedBox(6, 0, 0, self:GetWide(), self:GetTall(), Color(158, 0, 22))
end
vmP = vgui.Create("DPanelList", vmF)
vmP:SetPos(5, 25)
vmP:SetSize( vmF:GetWide() - 10, vmF:GetTall() - 30)
vmP:SetPadding( 4 )
vmP:EnableHorizontal( true )
vmP:EnableVerticalScrollbar( true )
vmP.Paint = function( self )
draw.RoundedBox(6, 0, 0, self:GetWide(), self:GetTall(), Color(0, 0, 0))
end
for k, v in pairs( file.Find("maps/rd_*.bsp", true) ) do
table.insert(allmaps, CorrectString( v ))
end
for k, v in pairs( allmaps ) do
if( k <= 4 ) then
table.insert(votemaps, table.Random(allmaps))
else
break
end
end
for k, v in pairs( votemaps ) do
local lab = vgui.Create("DButton", vmF)
lab:SetText( v )
lab:SetPos(9, 5 + (k * 20))
lab:SetSize(surface.GetTextSize( v ) + 5, lab:GetTall())
lab.Paint = function( self )
draw.RoundedBox(6, 0, 0, self:GetWide(), self:GetTall(), Color(0, 0, 0, 0))
end
lab.OnCursorEntered = function()
lab:SetTextColor( Color(158, 0, 22) )
end
lab.OnCursorExited = function()
lab:SetTextColor( Color(255, 255, 255) )
end
lab.DoClick = function()
RunConsoleCommand("votemap", v)
vmF:Remove()
end
end
end
usermessage.Hook("nextmap", votemap)
end
[/lua]
you should have asked me on steam
Sorry, you need to Log In to post a reply to this thread.