X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fserver%2Fcl_client.qc;h=0206cde6ab53dbcf8463b6d18fc5cca03e80d111;hp=d53fe2082309958f83602af3d5556a42285367ee;hb=410ff5f6cc4f7d5d8282ba9d93fe6a65d1c74489;hpb=7ca9f7048fbb405c0c814bcf58648049424cee22 diff --git a/qcsrc/server/cl_client.qc b/qcsrc/server/cl_client.qc index d53fe2082..0206cde6a 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) @@ -439,11 +441,7 @@ void PutClientInServer (void) self.ammo_fuel = warmup_start_ammo_fuel; self.health = warmup_start_health; self.armorvalue = warmup_start_armorvalue; - - if(g_warmup_allguns == 2) - self.weapons = warmup_start_weapons; - else if(g_warmup_allguns == 1) - self.weapons = (warmup_start_weapons & (weaponsInMap | start_weapons)); + self.weapons = WARMUP_START_WEAPONS; } else { @@ -542,6 +540,9 @@ void PutClientInServer (void) self.event_damage = PlayerDamage; self.bot_attack = TRUE; + self.monster_attack = TRUE; + + self.spider_slowness = 0; self.statdraintime = time + 5; self.BUTTON_ATCK = self.BUTTON_JUMP = self.BUTTON_ATCK2 = 0; @@ -587,6 +588,8 @@ void PutClientInServer (void) self.target = s; activator = world; self = oldself; + + Unfreeze(self); spawn_spot = spot; MUTATOR_CALLHOOK(PlayerSpawn); @@ -937,7 +940,7 @@ void ClientKill (void) { if(gameover) return; if(self.player_blocked) return; - if(self.freezetag_frozen) return; + if(self.frozen) return; ClientKill_TeamChange(0); } @@ -1287,6 +1290,8 @@ void ClientDisconnect (void) MUTATOR_CALLHOOK(ClientDisconnect); Portal_ClearAll(self); + + Unfreeze(self); RemoveGrapplingHook(self); @@ -1604,10 +1609,10 @@ void player_regen (void) limita = limita * limit_mod; //limitf = limitf * limit_mod; - if(g_ca) + if(g_ca || g_invasion) rot_mod = 0; - if (!g_minstagib && !g_ca && (!g_lms || autocvar_g_lms_regenerate)) + if (!g_minstagib && !g_ca && !g_invasion && (!g_lms || autocvar_g_lms_regenerate)) { self.armorvalue = CalcRotRegen(self.armorvalue, mina, autocvar_g_balance_armor_regen, autocvar_g_balance_armor_regenlinear, regen_mod * frametime * (time > self.pauseregen_finished), maxa, autocvar_g_balance_armor_rot, autocvar_g_balance_armor_rotlinear, rot_mod * frametime * (time > self.pauserotarmor_finished), limita); self.health = CalcRotRegen(self.health, minh, autocvar_g_balance_health_regen, autocvar_g_balance_health_regenlinear, regen_mod * frametime * (time > self.pauseregen_finished), maxh, autocvar_g_balance_health_rot, autocvar_g_balance_health_rotlinear, rot_mod * frametime * (time > self.pauserothealth_finished), limith); @@ -1729,6 +1734,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); @@ -2239,6 +2246,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 @@ -2358,7 +2375,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; @@ -2418,6 +2435,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