• 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.