X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fserver%2Fcommand%2Fcmd.qc;h=c70ffb43e0213296a5dfbf0317e2cd7dcd21641b;hp=36567b4986af079bc7a7a9270afef42fe0f90ec0;hb=97e94ea0a05686d60a6f5de8d369d040005b8eb1;hpb=b8c629df9a66ec47cbef42054b958d6a2363aa6a diff --git a/qcsrc/server/command/cmd.qc b/qcsrc/server/command/cmd.qc index 36567b498..c70ffb43e 100644 --- a/qcsrc/server/command/cmd.qc +++ b/qcsrc/server/command/cmd.qc @@ -81,7 +81,7 @@ void ClientCommand_clientversion(float request, float argc) // internal command, { if(argv(1) != "") { - if(self.flags & FL_CLIENT) + if(IS_CLIENT(self)) { self.version = ((argv(1) == "$gameversion") ? 1 : stof(argv(1))); @@ -148,17 +148,17 @@ void ClientCommand_join(float request) { case CMD_REQUEST_COMMAND: { - if(self.flags & FL_CLIENT) + if(IS_CLIENT(self)) { - if(self.classname != "player" && !lockteams && !g_arena) + if(!IS_PLAYER(self) && !lockteams) { if(nJoinAllowed(self)) { - if(g_ca) { self.caplayer = 1; } if(autocvar_g_campaign) { campaign_bots_may_start = 1; } - + self.classname = "player"; PlayerScore_Clear(self); + Kill_Notification(NOTIF_ONE_ONLY, self, MSG_CENTER_CPID, CPID_PREVENT_JOIN); Send_Notification(NOTIF_ALL, world, MSG_INFO, INFO_JOIN_PLAY, self.netname); PutClientInServer(); } @@ -188,12 +188,14 @@ void ClientCommand_ready(float request) // todo: anti-spam for toggling readynes { case CMD_REQUEST_COMMAND: { - if(self.flags & FL_CLIENT) + if(IS_CLIENT(self)) { - if(inWarmupStage || autocvar_sv_ready_restart || g_race_qualifying == 2) + if(warmup_stage || autocvar_sv_ready_restart || g_race_qualifying == 2) { if(!readyrestart_happened || autocvar_sv_ready_restart_repeatable) { + if(time < game_starttime) // game is already restarting + return; if (self.ready) // toggle { self.ready = FALSE; @@ -274,7 +276,7 @@ void ClientCommand_selectteam(float request, float argc) { if(argv(1) != "") { - if(self.flags & FL_CLIENT) + if(IS_CLIENT(self)) { if(teamplay) if not(self.team_forced > 0) @@ -390,9 +392,8 @@ void ClientCommand_spectate(float request) { case CMD_REQUEST_COMMAND: { - if(self.flags & FL_CLIENT) + if(IS_CLIENT(self)) { - if(g_arena) { return; } if(g_lms) { if(self.lms_spectate_warning) @@ -410,12 +411,12 @@ void ClientCommand_spectate(float request) } } - if(self.classname == "player" && autocvar_sv_spectate == 1) + if(IS_PLAYER(self) && autocvar_sv_spectate == 1) ClientKill_TeamChange(-2); // observe - + // in CA, allow a dead player to move to spectators (without that, caplayer!=0 will be moved back to the player list) // note: if arena game mode is ever done properly, this needs to be removed. - if(g_ca && self.caplayer && (self.classname == "spectator" || self.classname == "observer")) + if(self.caplayer && (IS_SPEC(self) || IS_OBSERVER(self))) { sprint(self, "WARNING: you will spectate in the next round.\n"); self.caplayer = 0;