PDA

View Full Version : [Tutorial] Time Left Script



EvoloZz
22nd January 2013, 18:12
Hey lads, this is my tutorial about time left showing in the server's name, its super easy, but many people need it on their servers
Lets start by calling the thread, call only on start of gametype.
So go and find Callback_StartGameType() and add new line

thread maps\mp\gametypes\_time::TimeLeft();
Then make new .gsc file, and add something like this:

TimeLeft()
{
level.timeleft = 30; // change this to how long is one map, for example scr_tdm_timelimit "30", its really important

setCvar("sv_hostname", "My Server Time Left: " + level.timeleft + " minutes");

while(1)
{

wait 60;
level.timeleft = level.timeleft - 1; // probably easier just level.timeleft--;
setCvar("sv_hostname", "My Server Time Left " + level.timeleft + " minutes");
}
}

Explanation:
level.timeleft = 30 / defines that counter starts from 30
setCvar / changes the stuff in your config
while(1) / infinite loop, so it never breaks, can also use for(;;)
wait 60 / waits 1 minute (in seconds)
level.timeleft--; / just -1 every minute :>

Thats it for my first tut :P

IzNoGoD
22nd January 2013, 19:30
while(1)
{
servername = "IzNoGoD's awesome scripted server ";
timeleft = level.timelimit - int((gettime() - level.starttime) / 60000 + 0.5);
setcvar("sv_hostname", servername + " Time left: " + timeleft + " mins");
wait 10;
}
Use built-in functions so it also works when you change scr_tdm_timelimit etc.

Earliboy
22nd January 2013, 20:31
TimeLeft()
{
servername = getCvar("sv_hostname");

while(1)
{
timeleft = level.timelimit - int((gettime() - level.starttime) / 60000 + 0.5);
setcvar("sv_hostname", servername + " || Time left: " + timeleft + " mins");
wait 10;
}
}


This would be a littlebit easier, cause you can still set the servername via cfg file.

STAUFFi
23rd January 2013, 04:27
http://upload.wikimedia.org/wikipedia/commons/4/4f/Facebook-like-button.png
xD STAUFFii likedEvolozz's Tutorial:D

EvoloZz
23rd January 2013, 12:42
"Thank you-button" has been implented :D

IzNoGoD
23rd January 2013, 16:31
TimeLeft()
{
servername = getCvar("sv_hostname");

while(1)
{
timeleft = level.timelimit - int((gettime() - level.starttime) / 60000 + 0.5);
setcvar("sv_hostname", servername + " || Time left: " + timeleft + " mins");
wait 10;
}
}


This would be a littlebit easier, cause you can still set the servername via cfg file.

Would not. Would fuck up the name at map_rotate, as it would say "IzNoGoD's awesome server Time left: 0 mins Time left: 30 mins", as you get the new sv_hostname from the var you just wrote the time_left to.

Use a second cvar to store the original name plox.

Earliboy
23rd January 2013, 19:31
Ah ye, i remember to that :D That was the prob i had

TimeLeft()
{
servername = getCvar("sv_hostname");
level.oldHostname = servername;

while(1)
{
timeleft = level.timelimit - int((gettime() - level.starttime) / 60000 + 0.5);
setcvar("sv_hostname", servername + " || Time left: " + timeleft + " mins");
wait 10;
}
}
Just add at GT.gsc (gametype) at the thread endmap()


if(isDefined(level.oldHostname))
setCvar("sv_hostname",level.oldHostname);

Mitch
24th January 2013, 07:43
Ah ye, i remember to that :D That was the prob i had

TimeLeft()
{
servername = getCvar("sv_hostname");
level.oldHostname = servername;

while(1)
{
timeleft = level.timelimit - int((gettime() - level.starttime) / 60000 + 0.5);
setcvar("sv_hostname", servername + " || Time left: " + timeleft + " mins");
wait 10;
}
}
Just add at GT.gsc (gametype) at the thread endmap()


if(isDefined(level.oldHostname))
setCvar("sv_hostname",level.oldHostname);

or set your default hostname in a new cvar and load this one at start of the map or each loop.

And btw use this for endMap to make a script global (this will be after map vote)


onEndMap()
{
level waittill("intermission");
iprintlnbold("The map has ended");
}