X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fcl_client.qc;h=0c27100fe99ac49e044f82e741d11ca44213646b;hb=2c0e35d3ee9fe6652c9c56f29dbbf546da0043b0;hp=baf696f6ef60804bbce60aa81aeaf8dffc173cd0;hpb=e2d636eb8c05657a447aaec494ae580d1c31a4ba;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/cl_client.qc b/qcsrc/server/cl_client.qc index baf696f6e..0c27100fe 100644 --- a/qcsrc/server/cl_client.qc +++ b/qcsrc/server/cl_client.qc @@ -168,6 +168,8 @@ void PutObserverInServer (void) Portal_ClearAll(self); + Unfreeze(self); + if(self.alivetime) { if(!warmup_stage) @@ -532,6 +534,7 @@ void PutClientInServer (void) self.event_damage = PlayerDamage; self.bot_attack = TRUE; + self.monster_attack = TRUE; self.statdraintime = time + 5; self.BUTTON_ATCK = self.BUTTON_JUMP = self.BUTTON_ATCK2 = 0; @@ -577,6 +580,8 @@ void PutClientInServer (void) self.target = s; activator = world; self = oldself; + + Unfreeze(self); spawn_spot = spot; MUTATOR_CALLHOOK(PlayerSpawn); @@ -927,7 +932,7 @@ void ClientKill (void) { if(gameover) return; if(self.player_blocked) return; - if(self.freezetag_frozen) return; + if(self.frozen) return; ClientKill_TeamChange(0); } @@ -1277,6 +1282,8 @@ void ClientDisconnect (void) MUTATOR_CALLHOOK(ClientDisconnect); Portal_ClearAll(self); + + Unfreeze(self); RemoveGrapplingHook(self); @@ -1719,6 +1726,8 @@ void SpectateCopy(entity spectatee) { self.dmg_inflictor = spectatee.dmg_inflictor; self.v_angle = spectatee.v_angle; self.angles = spectatee.v_angle; + self.frozen = spectatee.frozen; + self.revive_progress = spectatee.revive_progress; if(!self.BUTTON_USE) self.fixangle = TRUE; setorigin(self, spectatee.origin); @@ -2229,6 +2238,16 @@ void PlayerPreThink (void) return; #endif + if(self.frozen == 2) + { + self.revive_progress = bound(0, self.revive_progress + frametime * self.revive_speed, 1); + self.health = max(1, self.revive_progress * autocvar_g_balance_health_start); + self.iceblock.alpha = 1 - self.revive_progress; + + if(self.revive_progress >= 1) + Unfreeze(self); + } + MUTATOR_CALLHOOK(PlayerPreThink); if(!self.cvar_cl_newusekeysupported) // FIXME remove this - it was a stupid idea to begin with, we can JUST use the button @@ -2348,7 +2367,7 @@ void PlayerPreThink (void) do_crouch = 0; if(self.vehicle) do_crouch = 0; - if(self.freezetag_frozen) + if(self.frozen) do_crouch = 0; if(self.weapon == WEP_SHOTGUN && self.weaponentity.wframe == WFRAME_FIRE2 && time < self.weapon_nextthink) do_crouch = 0; @@ -2408,6 +2427,9 @@ void PlayerPreThink (void) // secret status secrets_setstatus(); + // monsters status + monsters_setstatus(); + self.dmg_team = max(0, self.dmg_team - autocvar_g_teamdamage_resetspeed * frametime); //self.angles_y=self.v_angle_y + 90; // temp