• Fretta error
    12 replies, posted
Hello, I have a error in prophunt, the error is : gamemodes/fretta/gamemode/sv_gmchanger.lua:37: attempt to index a nil value 1. GetNumberOfGamemodeMaps - gamemodes/fretta/gamemode/sv_gmchanger.lua:37 2. StartMapVote - gamemodes/fretta/gamemode/sv_gmchanger.lua:263 3. unknown - gamemodes/fretta/gamemode/sv_gmchanger.lua:327 code for sv_gmchanger.lua [CODE]/* sv_gmchanger.lua - Gamemode Changer (server side) ----------------------------------------------------- Most of the internal stuff for the votes is here and contains stuff you really don't want to override. */ local g_PlayableGamemodes = {} fretta_votesneeded = CreateConVar( "fretta_votesneeded", "0.75", { FCVAR_ARCHIVE } ) fretta_votetime = CreateConVar( "fretta_votetime", "20", { FCVAR_ARCHIVE } ) fretta_votegraceperiod = CreateConVar( "fretta_votegraceperiod", "30", { FCVAR_ARCHIVE } ) local function SendAvailableGamemodes( ply ) net.Start("PlayableGamemodes") net.WriteTable(g_PlayableGamemodes) net.Send(ply) end function GetRandomGamemodeName() return table.Random( g_PlayableGamemodes ).name end function GetRandomGamemodeMap( gm ) return table.Random( g_PlayableGamemodes[ gm or GAMEMODE.FolderName ].maps ) end function GetNumberOfGamemodeMaps( gm ) return table.Count( g_PlayableGamemodes[ gm or GAMEMODE.FolderName ].maps ) end hook.Add( "PlayerInitialSpawn", "SendAvailableGamemodes", SendAvailableGamemodes ) local AllMaps = file.Find( "maps/*.bsp", "GAME" ) for key, map in pairs( AllMaps ) do AllMaps[ key ] = string.gsub( map, ".bsp", "" ) end local GameModes = engine.GetGamemodes() for _, gm in pairs( engine.GetGamemodes() ) do local info = file.Read( "gamemodes/"..gm.name.."/"..gm.name..".txt", "MOD" ) if ( info ) then local info = util.KeyValuesToTable( info ) if ( info.selectable == 1 ) then g_PlayableGamemodes[ gm.name ] = {} g_PlayableGamemodes[ gm.name ].name = gm.title g_PlayableGamemodes[ gm.name ].label = info.title g_PlayableGamemodes[ gm.name ].description = info.description g_PlayableGamemodes[ gm.name ].author = info.author_name g_PlayableGamemodes[ gm.name ].authorurl = info.author_url g_PlayableGamemodes[ gm.name ].maps = {} if ( info.fretta_maps ) then for _, mapname in pairs( AllMaps ) do mapname = string.lower(mapname) for _, p in pairs( info.fretta_maps ) do if ( string.sub( mapname, 1, #p ) == p ) then table.insert( g_PlayableGamemodes[ gm.name ].maps, mapname ) end end end else g_PlayableGamemodes[ gm.name ].maps = AllMaps end if ( info.fretta_maps_disallow ) then for key, mapname in pairs( g_PlayableGamemodes[ gm.name ].maps ) do mapname = string.lower(mapname) for _, p in pairs( info.fretta_maps_disallow ) do if ( string.sub( mapname, 1, #p ) == p ) then g_PlayableGamemodes[ gm.name ].maps[ key ] = nil end end end end end end end GameModes = nil function GM:IsValidGamemode( gamemode, map ) if ( g_PlayableGamemodes[ gamemode ] == nil ) then return false end if ( map == nil ) then return true end for _, mapname in pairs( g_PlayableGamemodes[ gamemode ].maps ) do if ( mapname == map ) then return true end end return false end local gVotes = {} function GM:VotePlayGamemode( ply, gamemode ) if ( !gamemode ) then return end if ( GAMEMODE.WinningGamemode ) then return end if ( !GAMEMODE:InGamemodeVote() ) then return end if ( !GAMEMODE:IsValidGamemode( gamemode ) ) then return end ply:SetNWString( "Wants", gamemode ) end concommand.Add( "votegamemode", function( pl, cmd, args ) GAMEMODE:VotePlayGamemode( pl, args[1] ) end ) function GM:VotePlayMap( ply, map ) if ( !map ) then return end if ( !GAMEMODE.WinningGamemode ) then return end if ( !GAMEMODE:InGamemodeVote() ) then return end if ( !GAMEMODE:IsValidGamemode( GAMEMODE.WinningGamemode, map ) ) then return end ply:SetNWString( "Wants", map ) end concommand.Add( "votemap", function( pl, cmd, args ) GAMEMODE:VotePlayMap( pl, args[1] ) end ) function GM:GetFractionOfPlayersThatWantChange() local Humans = player.GetHumans() local NumHumans = #Humans local WantsChange = 0 for k, player in pairs( Humans ) do if ( player:GetNWBool( "WantsVote" ) ) then WantsChange = WantsChange + 1 end // Don't count players that aren't connected yet if ( !player:IsConnected() ) then NumHumans = NumHumans - 1 end end local fraction = WantsChange / NumHumans return fraction, NumHumans, WantsChange end function GM:GetVotesNeededForChange() local Fraction, NumHumans, WantsChange = GAMEMODE:GetFractionOfPlayersThatWantChange() local FractionNeeded = fretta_votesneeded:GetFloat() local VotesNeeded = math.ceil( FractionNeeded * NumHumans ) return VotesNeeded - WantsChange end function GM:CountVotesForChange() if ( CurTime() >= GetConVarNumber( "fretta_votegraceperiod" ) ) then // can't vote too early on if ( GAMEMODE:InGamemodeVote() ) then return end fraction = GAMEMODE:GetFractionOfPlayersThatWantChange() if ( fraction > fretta_votesneeded:GetFloat() ) then GAMEMODE:StartGamemodeVote() return false end end return true end function GM:VoteForChange( ply ) if ( GetConVarNumber( "fretta_voting" ) == 0 ) then return end if ( ply:GetNWBool( "WantsVote" ) ) then return end ply:SetNWBool( "WantsVote", true ) local VotesNeeded = GAMEMODE:GetVotesNeededForChange() local NeedTxt = "" if ( VotesNeeded > 0 ) then NeedTxt = ", Color( 80, 255, 50 ), [[ (need "..VotesNeeded.." more) ]] " end if ( CurTime() < GetConVarNumber( "fretta_votegraceperiod" ) ) then // can't vote too early on local timediff = math.Round( GetConVarNumber( "fretta_votegraceperiod" ) - CurTime() ); BroadcastLua( "chat.AddText( Entity("..ply:EntIndex().."), Color( 255, 255, 255 ), [[ voted to change the gamemode]] )" ) else BroadcastLua( "chat.AddText( Entity("..ply:EntIndex().."), Color( 255, 255, 255 ), [[ voted to change the gamemode]] "..NeedTxt.." )" ) end Msg( ply:Nick() .. " voted to change the gamemode\n" ) timer.Simple( 5, function() GAMEMODE:CountVotesForChange() end ) end concommand.Add( "VoteForChange", function( pl, cmd, args ) GAMEMODE:VoteForChange( pl ) end ) timer.Create( "VoteForChangeThink", 10, 0, function() if ( GAMEMODE ) then GAMEMODE.CountVotesForChange( GAMEMODE ) end end ) function GM:ClearPlayerWants() for k, ply in pairs( player.GetAll() ) do ply:SetNWString( "Wants", "" ) end end function GM:StartGamemodeVote() if( !GAMEMODE.m_bVotingStarted ) then if ( fretta_voting:GetBool() ) then GAMEMODE:ClearPlayerWants() BroadcastLua( "GAMEMODE:ShowGamemodeChooser()" ); SetGlobalBool( "InGamemodeVote", true ) else GAMEMODE.WinningGamemode = GAMEMODE.FolderName return GAMEMODE:StartMapVote() end timer.Simple( fretta_votetime:GetFloat(), function() GAMEMODE:FinishGamemodeVote( true ) end ) SetGlobalFloat( "VoteEndTime", CurTime() + fretta_votetime:GetFloat() ) GAMEMODE.m_bVotingStarted = true; end end function GM:StartMapVote() // If there's only one map, let the 'random map' thing choose it if ( GetNumberOfGamemodeMaps( GAMEMODE.WinningGamemode ) == 1 ) then return GAMEMODE:FinishMapVote( true ) end BroadcastLua( "GAMEMODE:ShowMapChooserForGamemode( \""..GAMEMODE.WinningGamemode.."\" )" ); timer.Simple( fretta_votetime:GetFloat(), function() GAMEMODE:FinishMapVote() end ) SetGlobalFloat( "VoteEndTime", CurTime() + fretta_votetime:GetFloat() ) end function GM:GetWinningWant() local Votes = {} for k, ply in pairs( player.GetAll() ) do local want = ply:GetNWString( "Wants", nil ) if ( want && want != "" ) then Votes[ want ] = Votes[ want ] or 0 Votes[ want ] = Votes[ want ] + 1 end end return table.GetWinningKey( Votes
Up
Up
Remove the C-Style block-comments; they shift the error-line. If you remove it, it'll give you the line where the error is.
What the line ?
Use [CODE]-- comment[/CODE] [CODE]--[[ Multi line comment ]]-- [/CODE]
How to place this line ? In the lua file ? In the game, precise please, i'm french, and it's very difficult for me
Up
Well, you open the lua file with a any text editor (Notepad++ or Sublime, but Notepad will do), and use your keyboard to type those magical characters.
[CODE]/* sv_gmchanger.lua - Gamemode Changer (server side) ----------------------------------------------------- Most of the internal stuff for the votes is here and contains stuff you really don't want to override. */ -- comment --[[ Multi line comment ]]-- local g_PlayableGamemodes = {} fretta_votesneeded = CreateConVar( "fretta_votesneeded", "0.75", { FCVAR_ARCHIVE } ) fretta_votetime = CreateConVar( "fretta_votetime", "20", { FCVAR_ARCHIVE } ) fretta_votegraceperiod = CreateConVar( "fretta_votegraceperiod", "30", { FCVAR_ARCHIVE } ) local function SendAvailableGamemodes( ply ) net.Start("PlayableGamemodes") net.WriteTable(g_PlayableGamemodes) net.Send(ply) end function GetRandomGamemodeName() return table.Random( g_PlayableGamemodes ).name end function GetRandomGamemodeMap( gm ) return table.Random( g_PlayableGamemodes[ gm or GAMEMODE.FolderName ].maps ) end function GetNumberOfGamemodeMaps( gm ) return table.Count( g_PlayableGamemodes[ gm or GAMEMODE.FolderName ].maps ) end hook.Add( "PlayerInitialSpawn", "SendAvailableGamemodes", SendAvailableGamemodes ) local AllMaps = file.Find( "maps/*.bsp", "GAME" ) for key, map in pairs( AllMaps ) do AllMaps[ key ] = string.gsub( map, ".bsp", "" ) end local GameModes = engine.GetGamemodes() for _, gm in pairs( engine.GetGamemodes() ) do local info = file.Read( "gamemodes/"..gm.name.."/"..gm.name..".txt", "MOD" ) if ( info ) then local info = util.KeyValuesToTable( info ) if ( info.selectable == 1 ) then g_PlayableGamemodes[ gm.name ] = {} g_PlayableGamemodes[ gm.name ].name = gm.title g_PlayableGamemodes[ gm.name ].label = info.title g_PlayableGamemodes[ gm.name ].description = info.description g_PlayableGamemodes[ gm.name ].author = info.author_name g_PlayableGamemodes[ gm.name ].authorurl = info.author_url g_PlayableGamemodes[ gm.name ].maps = {} if ( info.fretta_maps ) then for _, mapname in pairs( AllMaps ) do mapname = string.lower(mapname) for _, p in pairs( info.fretta_maps ) do if ( string.sub( mapname, 1, #p ) == p ) then table.insert( g_PlayableGamemodes[ gm.name ].maps, mapname ) end end end else g_PlayableGamemodes[ gm.name ].maps = AllMaps end if ( info.fretta_maps_disallow ) then for key, mapname in pairs( g_PlayableGamemodes[ gm.name ].maps ) do mapname = string.lower(mapname) for _, p in pairs( info.fretta_maps_disallow ) do if ( string.sub( mapname, 1, #p ) == p ) then g_PlayableGamemodes[ gm.name ].maps[ key ] = nil end end end end end end end GameModes = nil function GM:IsValidGamemode( gamemode, map ) if ( g_PlayableGamemodes[ gamemode ] == nil ) then return false end if ( map == nil ) then return true end for _, mapname in pairs( g_PlayableGamemodes[ gamemode ].maps ) do if ( mapname == map ) then return true end end return false end local gVotes = {} function GM:VotePlayGamemode( ply, gamemode ) if ( !gamemode ) then return end if ( GAMEMODE.WinningGamemode ) then return end if ( !GAMEMODE:InGamemodeVote() ) then return end if ( !GAMEMODE:IsValidGamemode( gamemode ) ) then return end ply:SetNWString( "Wants", gamemode ) end concommand.Add( "votegamemode", function( pl, cmd, args ) GAMEMODE:VotePlayGamemode( pl, args[1] ) end ) function GM:VotePlayMap( ply, map ) if ( !map ) then return end if ( !GAMEMODE.WinningGamemode ) then return end if ( !GAMEMODE:InGamemodeVote() ) then return end if ( !GAMEMODE:IsValidGamemode( GAMEMODE.WinningGamemode, map ) ) then return end ply:SetNWString( "Wants", map ) end concommand.Add( "votemap", function( pl, cmd, args ) GAMEMODE:VotePlayMap( pl, args[1] ) end ) function GM:GetFractionOfPlayersThatWantChange() local Humans = player.GetHumans() local NumHumans = #Humans local WantsChange = 0 for k, player in pairs( Humans ) do if ( player:GetNWBool( "WantsVote" ) ) then WantsChange = WantsChange + 1 end // Don't count players that aren't connected yet if ( !player:IsConnected() ) then NumHumans = NumHumans - 1 end end local fraction = WantsChange / NumHumans return fraction, NumHumans, WantsChange end function GM:GetVotesNeededForChange() local Fraction, NumHumans, WantsChange = GAMEMODE:GetFractionOfPlayersThatWantChange() local FractionNeeded = fretta_votesneeded:GetFloat() local VotesNeeded = math.ceil( FractionNeeded * NumHumans ) return VotesNeeded - WantsChange end function GM:CountVotesForChange() if ( CurTime() >= GetConVarNumber( "fretta_votegraceperiod" ) ) then // can't vote too early on if ( GAMEMODE:InGamemodeVote() ) then return end fraction = GAMEMODE:GetFractionOfPlayersThatWantChange() if ( fraction > fretta_votesneeded:GetFloat() ) then GAMEMODE:StartGamemodeVote() return false end end return true end function GM:VoteForChange( ply ) if ( GetConVarNumber( "fretta_voting" ) == 0 ) then return end if ( ply:GetNWBool( "WantsVote" ) ) then return end ply:SetNWBool( "WantsVote", true ) local VotesNeeded = GAMEMODE:GetVotesNeededForChange() local NeedTxt = "" if ( VotesNeeded > 0 ) then NeedTxt = ", Color( 80, 255, 50 ), [[ (need "..VotesNeeded.." more) ]] " end if ( CurTime() < GetConVarNumber( "fretta_votegraceperiod" ) ) then // can't vote too early on local timediff = math.Round( GetConVarNumber( "fretta_votegraceperiod" ) - CurTime() ); BroadcastLua( "chat.AddText( Entity("..ply:EntIndex().."), Color( 255, 255, 255 ), [[ voted to change the gamemode]] )" ) else BroadcastLua( "chat.AddText( Entity("..ply:EntIndex().."), Color( 255, 255, 255 ), [[ voted to change the gamemode]] "..NeedTxt.." )" ) end Msg( ply:Nick() .. " voted to change the gamemode\n" ) timer.Simple( 5, function() GAMEMODE:CountVotesForChange() end ) end concommand.Add( "VoteForChange", function( pl, cmd, args ) GAMEMODE:VoteForChange( pl ) end ) timer.Create( "VoteForChangeThink", 10, 0, function() if ( GAMEMODE ) then GAMEMODE.CountVotesForChange( GAMEMODE ) end end ) function GM:ClearPlayerWants() for k, ply in pairs( player.GetAll() ) do ply:SetNWString( "Wants", "" ) end end function GM:StartGamemodeVote() if( !GAMEMODE.m_bVotingStarted ) then if ( fretta_voting:GetBool() ) then GAMEMODE:ClearPlayerWants() BroadcastLua( "GAMEMODE:ShowGamemodeChooser()" ); SetGlobalBool( "InGamemodeVote", true ) else GAMEMODE.WinningGamemode = GAMEMODE.FolderName return GAMEMODE:StartMapVote() end timer.Simple( fretta_votetime:GetFloat(), function() GAMEMODE:FinishGamemodeVote( true ) end ) SetGlobalFloat( "VoteEndTime", CurTime() + fretta_votetime:GetFloat() ) GAMEMODE.m_bVotingStarted = true; end end function GM:StartMapVote() // If there's only one map, let the 'random map' thing choose it if ( GetNumberOfGamemodeMaps( GAMEMODE.WinningGamemode ) == 1 ) then return GAMEMODE:FinishMapVote( true ) end BroadcastLua( "GAMEMODE:ShowMapChooserForGamemode( \""..GAMEMODE.WinningGamemode.."\" )" ); timer.Simple( fretta_votetime:GetFloat(), function() GAMEMODE:FinishMapVote() end ) SetGlobalFloat( "VoteEndTime", CurTime() + fretta_votetime:GetFloat() ) end function GM:GetWinningWant() local Votes = {} for k, ply in pairs( player.GetAll() ) do local want = ply:GetNWString( "Wants", nil ) if ( want && want != "" ) then Votes[ want ] = Votes[ want ] or 0 Votes[ want ] = Votes[ want ] + 1 end end return table.GetWinningKey( Votes ) end function GM:WorkOutWinningGamemode() if ( GAMEMODE.WinningGamemode ) then return GAMEMODE.WinningGamemode end // Gamemode Voting disabled, return current gamemode if ( !fretta_voting:GetBool() ) then return GAMEMODE.FolderName end local winner = GAMEMODE:GetWinningWant() if ( !winner
[code] --[[ sv_gmchanger.lua - Gamemode Changer (server side) ----------------------------------------------------- Most of the internal stuff for the votes is here and contains stuff you really don't want to override. ]]-- local g_PlayableGamemodes = {} fretta_votesneeded = CreateConVar( "fretta_votesneeded", "0.75", { FCVAR_ARCHIVE } ) fretta_votetime = CreateConVar( "fretta_votetime", "20", { FCVAR_ARCHIVE } ) fretta_votegraceperiod = CreateConVar( "fretta_votegraceperiod", "30", { FCVAR_ARCHIVE } ) local function SendAvailableGamemodes( ply ) net.Start("PlayableGamemodes") net.WriteTable(g_PlayableGamemodes) net.Send(ply) end function GetRandomGamemodeName() return table.Random( g_PlayableGamemodes ).name end function GetRandomGamemodeMap( gm ) return table.Random( g_PlayableGamemodes[ gm or GAMEMODE.FolderName ].maps ) end function GetNumberOfGamemodeMaps( gm ) return table.Count( g_PlayableGamemodes[ gm or GAMEMODE.FolderName ].maps ) end hook.Add( "PlayerInitialSpawn", "SendAvailableGamemodes", SendAvailableGamemodes ) local AllMaps = file.Find( "maps/*.bsp", "GAME" ) for key, map in pairs( AllMaps ) do AllMaps[ key ] = string.gsub( map, ".bsp", "" ) end local GameModes = engine.GetGamemodes() for _, gm in pairs( engine.GetGamemodes() ) do local info = file.Read( "gamemodes/"..gm.name.."/"..gm.name..".txt", "MOD" ) if ( info ) then local info = util.KeyValuesToTable( info ) if ( info.selectable == 1 ) then g_PlayableGamemodes[ gm.name ] = {} g_PlayableGamemodes[ gm.name ].name = gm.title g_PlayableGamemodes[ gm.name ].label = info.title g_PlayableGamemodes[ gm.name ].description = info.description g_PlayableGamemodes[ gm.name ].author = info.author_name g_PlayableGamemodes[ gm.name ].authorurl = info.author_url g_PlayableGamemodes[ gm.name ].maps = {} if ( info.fretta_maps ) then for _, mapname in pairs( AllMaps ) do mapname = string.lower(mapname) for _, p in pairs( info.fretta_maps ) do if ( string.sub( mapname, 1, #p ) == p ) then table.insert( g_PlayableGamemodes[ gm.name ].maps, mapname ) end end end else g_PlayableGamemodes[ gm.name ].maps = AllMaps end if ( info.fretta_maps_disallow ) then for key, mapname in pairs( g_PlayableGamemodes[ gm.name ].maps ) do mapname = string.lower(mapname) for _, p in pairs( info.fretta_maps_disallow ) do if ( string.sub( mapname, 1, #p ) == p ) then g_PlayableGamemodes[ gm.name ].maps[ key ] = nil end end end end end end end GameModes = nil function GM:IsValidGamemode( gamemode, map ) if ( g_PlayableGamemodes[ gamemode ] == nil ) then return false end if ( map == nil ) then return true end for _, mapname in pairs( g_PlayableGamemodes[ gamemode ].maps ) do if ( mapname == map ) then return true end end return false end local gVotes = {} function GM:VotePlayGamemode( ply, gamemode ) if ( !gamemode ) then return end if ( GAMEMODE.WinningGamemode ) then return end if ( !GAMEMODE:InGamemodeVote() ) then return end if ( !GAMEMODE:IsValidGamemode( gamemode ) ) then return end ply:SetNWString( "Wants", gamemode ) end concommand.Add( "votegamemode", function( pl, cmd, args ) GAMEMODE:VotePlayGamemode( pl, args[1] ) end ) function GM:VotePlayMap( ply, map ) if ( !map ) then return end if ( !GAMEMODE.WinningGamemode ) then return end if ( !GAMEMODE:InGamemodeVote() ) then return end if ( !GAMEMODE:IsValidGamemode( GAMEMODE.WinningGamemode, map ) ) then return end ply:SetNWString( "Wants", map ) end concommand.Add( "votemap", function( pl, cmd, args ) GAMEMODE:VotePlayMap( pl, args[1] ) end ) function GM:GetFractionOfPlayersThatWantChange() local Humans = player.GetHumans() local NumHumans = #Humans local WantsChange = 0 for k, player in pairs( Humans ) do if ( player:GetNWBool( "WantsVote" ) ) then WantsChange = WantsChange + 1 end // Don't count players that aren't connected yet if ( !player:IsConnected() ) then NumHumans = NumHumans - 1 end end local fraction = WantsChange / NumHumans return fraction, NumHumans, WantsChange end function GM:GetVotesNeededForChange() local Fraction, NumHumans, WantsChange = GAMEMODE:GetFractionOfPlayersThatWantChange() local FractionNeeded = fretta_votesneeded:GetFloat() local VotesNeeded = math.ceil( FractionNeeded * NumHumans ) return VotesNeeded - WantsChange end function GM:CountVotesForChange() if ( CurTime() >= GetConVarNumber( "fretta_votegraceperiod" ) ) then // can't vote too early on if ( GAMEMODE:InGamemodeVote() ) then return end fraction = GAMEMODE:GetFractionOfPlayersThatWantChange() if ( fraction > fretta_votesneeded:GetFloat() ) then GAMEMODE:StartGamemodeVote() return false end end return true end function GM:VoteForChange( ply ) if ( GetConVarNumber( "fretta_voting" ) == 0 ) then return end if ( ply:GetNWBool( "WantsVote" ) ) then return end ply:SetNWBool( "WantsVote", true ) local VotesNeeded = GAMEMODE:GetVotesNeededForChange() local NeedTxt = "" if ( VotesNeeded > 0 ) then NeedTxt = ", Color( 80, 255, 50 ), [[ (need "..VotesNeeded.." more) ]] " end if ( CurTime() < GetConVarNumber( "fretta_votegraceperiod" ) ) then // can't vote too early on local timediff = math.Round( GetConVarNumber( "fretta_votegraceperiod" ) - CurTime() ); BroadcastLua( "chat.AddText( Entity("..ply:EntIndex().."), Color( 255, 255, 255 ), [[ voted to change the gamemode]] )" ) else BroadcastLua( "chat.AddText( Entity("..ply:EntIndex().."), Color( 255, 255, 255 ), [[ voted to change the gamemode]] "..NeedTxt.." )" ) end Msg( ply:Nick() .. " voted to change the gamemode\n" ) timer.Simple( 5, function() GAMEMODE:CountVotesForChange() end ) end concommand.Add( "VoteForChange", function( pl, cmd, args ) GAMEMODE:VoteForChange( pl ) end ) timer.Create( "VoteForChangeThink", 10, 0, function() if ( GAMEMODE ) then GAMEMODE.CountVotesForChange( GAMEMODE ) end end ) function GM:ClearPlayerWants() for k, ply in pairs( player.GetAll() ) do ply:SetNWString( "Wants", "" ) end end function GM:StartGamemodeVote() if( !GAMEMODE.m_bVotingStarted ) then if ( fretta_voting:GetBool() ) then GAMEMODE:ClearPlayerWants() BroadcastLua( "GAMEMODE:ShowGamemodeChooser()" ); SetGlobalBool( "InGamemodeVote", true ) else GAMEMODE.WinningGamemode = GAMEMODE.FolderName return GAMEMODE:StartMapVote() end timer.Simple( fretta_votetime:GetFloat(), function() GAMEMODE:FinishGamemodeVote( true ) end ) SetGlobalFloat( "VoteEndTime", CurTime() + fretta_votetime:GetFloat() ) GAMEMODE.m_bVotingStarted = true; end end function GM:StartMapVote() // If there's only one map, let the 'random map' thing choose it if ( GetNumberOfGamemodeMaps( GAMEMODE.WinningGamemode ) == 1 ) then return GAMEMODE:FinishMapVote( true ) end BroadcastLua( "GAMEMODE:ShowMapChooserForGamemode( \""..GAMEMODE.WinningGamemode.."\" )" ); timer.Simple( fretta_votetime:GetFloat(), function() GAMEMODE:FinishMapVote() end ) SetGlobalFloat( "VoteEndTime", CurTime() + fretta_votetime:GetFloat() ) end function GM:GetWinningWant() local Votes = {} for k, ply in pairs( player.GetAll() ) do local want = ply:GetNWString( "Wants", nil ) if ( want && want != "" ) then Votes[ want ] = Votes[ want ] or 0 Votes[ want ] = Votes[ want ] + 1 end end return table.GetWinningKey( Votes ) end function GM:WorkOutWinningGamemode() if ( GAMEMODE.WinningGamemode ) then return GAMEMODE.WinningGamemode end // Gamemode Voting disabled, return current gamemode if ( !fretta_voting:GetBool() ) then return GAMEMODE.FolderName end local winner = GAMEMODE:GetWinningWant() if ( !winner ) then return GetRandomGamemodeName(
Thanks it work ! But, How do we choose that map directly, not the gamemode ?
[QUOTE=warblack31;45391881]Thanks it work ! But, How do we choose that map directly, not the gamemode ?[/QUOTE] You know, I didn't edit any of the code, I just fixed your commenting...
Sorry, you need to Log In to post a reply to this thread.