X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fserver%2Fsv_main.qc;h=c8a75032bffa6fbca95ea045ebd089baf1c8dc93;hb=31bf64ba7821ebb5c0aba8a154472810074ed11e;hp=043cb7713d24cc61c91b162efba963ec0dd73065;hpb=bf20397b0c62c9de0335ef9d70d60842fde9d0b2;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/sv_main.qc b/qcsrc/server/sv_main.qc index 043cb7713..c8a75032b 100644 --- a/qcsrc/server/sv_main.qc +++ b/qcsrc/server/sv_main.qc @@ -10,6 +10,7 @@ void CreatureFrame (void) float vehic = (self.vehicle_flags & VHF_ISVEHICLE); float projectile = (self.flags & FL_PROJECTILE); + float monster = (self.flags & FL_MONSTER); if (self.watertype <= CONTENT_WATER && self.waterlevel > 0) // workaround a retarded bug made by id software :P (yes, it's that old of a bug) { @@ -19,7 +20,7 @@ void CreatureFrame (void) self.dmgtime = 0; } - if(!vehic && !projectile) // vehicles and projectiles don't drown + if(!vehic && !projectile && !monster) // vehicles, monsters and projectiles don't drown { if (self.waterlevel != WATERLEVEL_SUBMERGED) { @@ -61,7 +62,7 @@ void CreatureFrame (void) if (self.watersound_finished < time) { self.watersound_finished = time + 0.5; - sound (self, CH_PLAYER, "player/lava.wav", VOL_BASE, ATTEN_NORM); + sound (self, CH_PLAYER_SINGLE, "player/lava.wav", VOL_BASE, ATTEN_NORM); } Damage (self, world, world, autocvar_g_balance_contents_playerdamage_lava * autocvar_g_balance_contents_damagerate * self.waterlevel, DEATH_LAVA, self.origin, '0 0 0'); } @@ -70,7 +71,7 @@ void CreatureFrame (void) if (self.watersound_finished < time) { self.watersound_finished = time + 0.5; - sound (self, CH_PLAYER, "player/slime.wav", VOL_BASE, ATTEN_NORM); + sound (self, CH_PLAYER_SINGLE, "player/slime.wav", VOL_BASE, ATTEN_NORM); } Damage (self, world, world, autocvar_g_balance_contents_playerdamage_slime * autocvar_g_balance_contents_damagerate * self.waterlevel, DEATH_SLIME, self.origin, '0 0 0'); } @@ -93,7 +94,7 @@ void CreatureFrame (void) { // check for falling damage float velocity_len = vlen(self.velocity); - if(!self.hook.state && !(g_cts && !autocvar_g_cts_selfdamage)) + if(!self.hook.state) { dm = vlen(self.oldvelocity) - velocity_len; // dm is now the velocity DECREASE. Velocity INCREASE should never cause a sound or any damage. if (self.deadflag) @@ -219,23 +220,26 @@ void StartFrame (void) game_delay_last = game_delay; + CreatureFrame (); + CheckRules_World (); + // if in warmup stage and limit for warmup is hit start match - if (warmup_stage) - if ((g_warmup_limit > 0 && time >= g_warmup_limit) + if(warmup_stage) + if(!gameover) + if((g_warmup_limit > 0 && time >= g_warmup_limit) || (g_warmup_limit == 0 && autocvar_timelimit != 0 && time >= autocvar_timelimit * 60)) { ReadyRestart(); return; } - CreatureFrame (); - CheckRules_World (); - bot_serverframe(); FOR_EACH_PLAYER(self) self.porto_forbidden = max(0, self.porto_forbidden - 1); + anticheat_startframe(); + MUTATOR_CALLHOOK(SV_StartFrame); }