Simple Change map code?

I have this script that creates a timer and then once the timer reaches 0, restarts the server. I was wondering if I could replace this with a block of code that tells the server to change to a different map provided. Anyone know the code I would have to replace this restart block with? I assume I would need to change the “game.ConsoleCommand”.

// Restarts the server if the timer reaches SPECIFIC TIME
timer.Create(“OfficialCountDownTimer”,1,0, function()
if tonumber(file.Read(“TDM/Timer/Timer.txt”,“DATA”)) == 1 then
umsg.Start(“TDMGETIFTIMER”)
umsg.Short(tonumber(file.Read(“TDM/Timer/Timer.txt”,“DATA”)))
umsg.Short(tonumber(file.Read(“TDM/Timer/TimerLimit.txt”,“DATA”)))
umsg.End()
if tonumber(file.Read(“TDM/Timer/TimerLimit.txt”,“DATA”) - math.Round(CurTime())) <= 0 then
game.ConsoleCommand("changelevel “…game.GetMap( )…”
")
end
else
umsg.Start(“TDMGETIFTIMER”)
umsg.Short(tonumber(file.Read(“TDM/Timer/Timer.txt”,“DATA”)))
umsg.Short(tonumber(file.Read(“TDM/Timer/TimerLimit.txt”,“DATA”)))
umsg.End()
end

-snip- missed a part

any help?

Instead of using game.ConsoleCommand("changelevel “…game.GetMap( )…”
")

the " … game.GetMap( ) … " part should be changed to " … selectedMap … ", and selectedMap variable should be set to some map name… You could do local selectedMap = args[ 1 ] || game.GetMap( ) — If you use a concommand to start the timer, this would be one way so it’d either use the first argument or the current map.

This is the most worst timer I have ever seen, I suggest you re-write it.

Your post adds nothing to this thread, you should ask yourself why you posted.

I suggested he should re-write it and not use that system.
I know it isn’t that helpful, but it still adds something to the thread, he should re-write it differently, this method is inefficient and just silly.

I agree. Fileio is expensive, you’re doing 3 to 4 file reads every second… You could improve it by storing the values in a variable and reduce it to 2, or rewrite it into something like this:

Countdown example: https://dl.dropboxusercontent.com/u/26074909/tutoring/vgui/sh_hud_countdown.lua.html

The countdown is the standard way of doing it. It gives time elapsed, time remaining, percent, etc. You could do it uses 1 timer and just using timer.TimeLeft to accomplish the exact same goal, but this shows how it is typically done. When the timer reaches the end ( notices the timer was started on server and clients so that they execute at the same time ), the shared hook fires.

Basic concept of a round-system: https://dl.dropboxusercontent.com/u/26074909/tutoring/_systems/round_system/basic_concept_of_round_systems.lua.html

Tracking players: https://dl.dropboxusercontent.com/u/26074909/tutoring/tracking_players/player_connect_and_disconnect_with_list_example.lua.html