X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fcl_client.qc;h=276a0e887a9e704e3799d18aeef19da99b2eda81;hb=c2ada41d4d1a6b626dcd056ed1e46fe23aa6b3e1;hp=a1047ea9d07595dae83fcb3fd49953b5b24062c7;hpb=f29e68af08dbc7444da0ac9fc0f3d1c7dea174d8;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/cl_client.qc b/qcsrc/server/cl_client.qc index a1047ea9d..276a0e887 100644 --- a/qcsrc/server/cl_client.qc +++ b/qcsrc/server/cl_client.qc @@ -1547,7 +1547,7 @@ void ClientConnect (void) playerdemo_init(); anticheat_init(); - + race_PreSpawnObserver(); //if(g_domination) @@ -1766,6 +1766,15 @@ Called when a client disconnects from the server void ReadyCount(); void ClientDisconnect (void) { + if(self.vehicle) + { + entity oldself; + oldself = self; + self = self.vehicle; + self.vehicle_exit(VHEF_RELESE); + self = oldself; + } + if not(self.flags & FL_CLIENT) { print("Warning: ClientDisconnect without ClientConnect\n"); @@ -2042,7 +2051,7 @@ void player_powerups (void) { // add a way to see what the items were BEFORE all of these checks for the mutator hook olditems = self.items; - + if((self.items & IT_USING_JETPACK) && !self.deadflag) { SoundEntity_StartSound(self, CHAN_PLAYER, "misc/jetpack_fly.wav", VOL_BASE, autocvar_g_jetpack_attenuation); @@ -2058,7 +2067,7 @@ void player_powerups (void) if(!self.modelindex || self.deadflag) // don't apply the flags if the player is gibbed return; - + Fire_ApplyDamage(self); Fire_ApplyEffect(self); @@ -2164,7 +2173,7 @@ void player_powerups (void) if (time < self.spawnshieldtime) self.effects = self.effects | (EF_ADDITIVE | EF_FULLBRIGHT); } - + MUTATOR_CALLHOOK(PlayerPowerups); } @@ -2384,6 +2393,23 @@ void SpectateCopy(entity spectatee) { SetZoomState(spectatee.zoomstate); anticheat_spectatecopy(spectatee); + + //self.vehicle = spectatee.vehicle; + + self.hud = spectatee.hud; + if(spectatee.vehicle) + { + self.vehicle_health = spectatee.vehicle_health; + self.vehicle_shield = spectatee.vehicle_shield; + self.vehicle_energy = spectatee.vehicle_energy; + self.vehicle_ammo1 = spectatee.vehicle_ammo1; + self.vehicle_ammo2 = spectatee.vehicle_ammo2; + self.vehicle_reload1 = spectatee.vehicle_reload1; + self.vehicle_reload2 = spectatee.vehicle_reload2; + msg_entity = self; + WriteByte (MSG_ONE, SVC_SETVIEWPORT); + WriteEntity(MSG_ONE, spectatee.vehicle.vehicle_viewport); + } } float SpectateUpdate() { @@ -3093,7 +3119,7 @@ void PlayerPostThink (void) if(self.waypointsprite_attachedforcarrier) WaypointSprite_UpdateHealth(self.waypointsprite_attachedforcarrier, '1 0 0' * healtharmor_maxdamage(self.health, self.armorvalue, autocvar_g_balance_armor_blockpercent)); - + if(self.classname == "player" && self.deadflag == DEAD_NO && autocvar_r_showbboxes) { if(!self.showheadshotbbox)