I finished the sv_timeout feature!!
Description:
If set, players (
not observers) are allowed to call a timeout, using the "calltimeout" command. "Timeout" means that the game is paused for a while, which is useful when a player runs into problems he needs to fix before he continues playing. Only one timeout can be active at a time. The length of the timeout is given in seconds in
sv_timeout_length. The number of timeouts allowed per player is set in
sv_timeout_number (2 by default). While the timeout is active the remaining time is shown to everyone (also spectators/observers), and at that moment when the timeout was called you will also see by whom and how many timeouts this player is still allowed to call. Only the player who initiated the timeout can manually cancel it, using the command "resumegame". No matter whether a timeout is running or not, the same (or another) player can always call another timeout which makes old running timeout invalid (useful when a player wants to extend the length of his timeout). If someone calls the "resumegame" command (e.g. useful if you want to resume it because you just needed a pause of 20 seconds of a timeout which has a length of 120 seconds) the timeout isn't ended immediately, but is shortened to the amount of seconds specified in
sv_timeout_resumetime (3 by default).
When someone calles a timeout while no other timeout was active before the game won't be immediately paused, but there is a lead time of xx seconds, which is configurable in
sv_timeout_leadtime (4 seconds by default). While this leadtime is active the game still goes on, but the information about this upcoming timeout is already centerprinted to everyone. After the leadtime is over the game is paused (timeout is active now).
Another important thing is that, during timeout, players can not turn around, their view stays fixed.
There's another detail about the "resumegame" command: if you call it very quickly after your "calltimeout" command ( = if you call it before the game really gets paused) the countdown for the timeout will simply be aborted and the game will never be paused. This is useful if someone accidentally called a timeout.
I compiled a new progs.dat for you guys, which includes all the features from the previous file and the sv_timeout feature!
You can download it
here