X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fcommand%2Fvote.qc;h=90073beaaa2273e33a876264a85358aa71ac1b4e;hb=65300efb8c410cbbec3fbdd13329b9777d3af8a7;hp=a5cc7383404d0f3bc4d179f2be0e1ad4631dfa49;hpb=139a594d29f65508e5d6001e90d4ee4fad82ca66;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/command/vote.qc b/qcsrc/server/command/vote.qc index a5cc738340..90073beaaa 100644 --- a/qcsrc/server/command/vote.qc +++ b/qcsrc/server/command/vote.qc @@ -477,7 +477,7 @@ void ReadyRestart_force() void ReadyRestart() { if (MUTATOR_CALLHOOK(ReadyRestart_Deny) || game_stopped || race_completing) localcmd("restart\n"); - else localcmd("\nsv_hook_gamerestart\n"); + else localcmd("\nsv_hook_readyrestart\n"); // Reset ALL scores, but only do that at the beginning of the countdown if sv_ready_restart_after_countdown is off! // Otherwise scores could be manipulated during the countdown. @@ -711,7 +711,9 @@ int VoteCommand_parse(entity caller, string vote_command, string vote_list, floa break; } - case "nextmap": // TODO: replicate the old behaviour of being able to vote for maps from different modes on multimode servers (possibly support it in gotomap too), maybe fallback instead of aborting if map name is invalid? + // TODO: replicate the old behaviour of being able to vote for maps from different modes on multimode servers (possibly support it in gotomap too) + // maybe fallback instead of aborting if map name is invalid? + case "nextmap": { vote_command = ValidateMap(argv(startpos + 1), caller); if (!vote_command) return -1; @@ -721,6 +723,21 @@ int VoteCommand_parse(entity caller, string vote_command, string vote_list, floa break; } + case "timelimit": // include restrictions on the maximum votable time limit + { + float timelimit_vote = stof(argv(startpos + 1)); + if(timelimit_vote > autocvar_timelimit_max || timelimit_vote < autocvar_timelimit_min) + { + print_to(caller, strcat("Invalid timelimit vote, accepted values are between ", ftos(autocvar_timelimit_min), " and ", ftos(autocvar_timelimit_max), ".")); + return -1; + } + timelimit_vote = bound(autocvar_timelimit_min, timelimit_vote, autocvar_timelimit_max); + vote_parsed_command = strcat("timelimit ", ftos(timelimit_vote)); + vote_parsed_display = strzone(strcat("^1", vote_parsed_command)); + + break; + } + case "restart": { // add a delay so that vote result can be seen and announcer can be heard