X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fcl_client.qc;h=432fa7c503a517303d8af692235c1e335e4c5ecb;hb=231cfd5ae54a9611a07c5cdbe6fd3bed02f19fb5;hp=1f141244fdb513585e7f5636ee0ab659aed42c62;hpb=4a4ba337c74b96b8b5efb8cec73b2400255c7b95;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/cl_client.qc b/qcsrc/server/cl_client.qc index 1f141244f..432fa7c50 100644 --- a/qcsrc/server/cl_client.qc +++ b/qcsrc/server/cl_client.qc @@ -1343,9 +1343,11 @@ void KillIndicator_Think() } } +float clientkilltime; void ClientKill_TeamChange (float targetteam) // 0 = don't change, -1 = auto, -2 = spec { float killtime; + float starttime; entity e; if (gameover) @@ -1381,13 +1383,16 @@ void ClientKill_TeamChange (float targetteam) // 0 = don't change, -1 = auto, -2 } else { + starttime = max(time, clientkilltime); + self.killindicator = spawn(); self.killindicator.owner = self; self.killindicator.scale = 0.5; setattachment(self.killindicator, self, ""); setorigin(self.killindicator, '0 0 52'); self.killindicator.think = KillIndicator_Think; - self.killindicator.nextthink = time + (self.lip) * 0.05; + self.killindicator.nextthink = starttime + (self.lip) * 0.05; + clientkilltime = max(clientkilltime, self.killindicator.nextthink + 0.05); self.killindicator.cnt = ceil(killtime); self.killindicator.count = bound(0, ceil(killtime), 10); //sprint(self, strcat("^1You'll be dead in ", ftos(self.killindicator.cnt), " seconds\n")); @@ -1402,7 +1407,8 @@ void ClientKill_TeamChange (float targetteam) // 0 = don't change, -1 = auto, -2 setattachment(e.killindicator, e, ""); setorigin(e.killindicator, '0 0 52'); e.killindicator.think = KillIndicator_Think; - e.killindicator.nextthink = time + (e.lip) * 0.05; + e.killindicator.nextthink = starttime + (e.lip) * 0.05; + clientkilltime = max(clientkilltime, e.killindicator.nextthink + 0.05); e.killindicator.cnt = ceil(killtime); } self.lip = 0; @@ -2460,6 +2466,7 @@ void ShowRespawnCountdown() } } +.float prevent_join_msgtime; void LeaveSpectatorMode() { if(nJoinAllowed(1)) { @@ -2481,6 +2488,12 @@ void LeaveSpectatorMode() if (time < self.jointime + autocvar_welcome_message_time) Send_CSQC_Centerprint_Generic_Expire(self, CPID_MOTD); // clear MOTD + if (self.prevent_join_msgtime) + { + Send_CSQC_Centerprint_Generic_Expire(self, CPID_PREVENT_JOIN); + self.prevent_join_msgtime = 0; + } + return; } else { if (g_ca && self.caplayer) { @@ -2492,7 +2505,11 @@ void LeaveSpectatorMode() } else { //player may not join because of g_maxplayers is set - centerprint(self, PREVENT_JOIN_TEXT); + if (time - self.prevent_join_msgtime > 2) + { + Send_CSQC_Centerprint_Generic(self, CPID_PREVENT_JOIN, PREVENT_JOIN_TEXT, 0, 0); + self.prevent_join_msgtime = time; + } } } @@ -2603,7 +2620,7 @@ void ObserverThink() } } } - + PrintWelcomeMessage(); } @@ -2762,7 +2779,7 @@ void PlayerPreThink (void) self.usekeypressed = self.BUTTON_USE; PrintWelcomeMessage(); - + if(self.classname == "player") { // if(self.netname == "Wazat") // bprint(self.classname, "\n"); @@ -3152,7 +3169,7 @@ void PlayerPostThink (void) CheatFrame(); - CheckPlayerJump(); + //CheckPlayerJump(); if(self.classname == "player") { CheckRules_Player();