wrtlprnft wrote:Anything i missed?
Since you're adding some scripting support in there with GAME_TIME. How about
WAIT_FOR_EXTERNAL_SCRIPT 1|0
if 1, holds the server in a paused state at the beginning of each round just before everytime.cfg is read, until the script writes back to the server:
WAIT_FOR_EXTERNAL_SCRIPT 0
During the "paused time", the following is then written:
NUM_PLAYERS n (only active players, NUM_HUMANS includes spectators)
ROUND_COMMENCING 2 10 (where 2 is the round commencing, and 10 is the max_rounds)
This allows the script to prepare the next round based on the number of active players and the round number, both to the server directly and to everytime.cfg.
WAIT_FOR_EXTERNAL_SCRIPT must then be changed by the script back to 1 to ensure it is paused again next round.
The main drawback is that if the script crashes the server can hang at the black screen indefinately. This is purely down to poorly written scripts, not the server. We've talked about adding another setting:
WAIT_FOR_EXTERNAL_SCRIPT_TIMEOUT n
being the number of seconds before the server automatically kickstarts itself. This should also be noted in ladderlog.txt so it can be dealt with to kickstart the script that crashed.
Once this was in place, I found tightening up scripts, rounds, players etc so much more managable.
And then there's the moving zones