X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=qcsrc%2Fserver%2Fsv_main.qc;h=8b8f8efe85bcb26bf6bd81487bcb0c09feffb2b9;hp=63d91f6070ca3ecee2ecb56527f7a0c6710c9a98;hb=6a28c11c8abd729c7f95ad7050d204aa2453d2ff;hpb=e332988cce112231a09d8c9c8c88d889a5fbea83 diff --git a/qcsrc/server/sv_main.qc b/qcsrc/server/sv_main.qc index 63d91f607..8b8f8efe8 100644 --- a/qcsrc/server/sv_main.qc +++ b/qcsrc/server/sv_main.qc @@ -43,14 +43,25 @@ void CreatureFrame (void) { self.dmgtime = time + autocvar_g_balance_contents_damagerate; - if (!projectile) + if (projectile) + { + if (self.watertype == CONTENT_LAVA) + { + Damage (self, world, world, autocvar_g_balance_contents_projectiledamage * autocvar_g_balance_contents_damagerate * self.waterlevel, DEATH_LAVA, self.origin, '0 0 0'); + } + else if (self.watertype == CONTENT_SLIME) + { + Damage (self, world, world, autocvar_g_balance_contents_projectiledamage * autocvar_g_balance_contents_damagerate * self.waterlevel, DEATH_SLIME, self.origin, '0 0 0'); + } + } + else { if (self.watertype == CONTENT_LAVA) { if (self.watersound_finished < time) { self.watersound_finished = time + 0.5; - sound (self, CH_PLAYER, "player/lava.wav", VOL_BASE, ATTN_NORM); + sound (self, CH_PLAYER, "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'); } @@ -59,15 +70,11 @@ void CreatureFrame (void) if (self.watersound_finished < time) { self.watersound_finished = time + 0.5; - sound (self, CH_PLAYER, "player/slime.wav", VOL_BASE, ATTN_NORM); + sound (self, CH_PLAYER, "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'); } } - else if ((self.watertype == CONTENT_LAVA) || (self.watertype == CONTENT_SLIME)) - { - Damage (self, world, world, autocvar_g_balance_contents_projectiledamage * autocvar_g_balance_contents_damagerate * self.waterlevel, DEATH_SLIME, self.origin, '0 0 0'); - } } } else @@ -75,7 +82,7 @@ void CreatureFrame (void) if (self.flags & FL_INWATER) { // play leave water sound - self.flags &~= FL_INWATER; + self.flags &= ~FL_INWATER; self.dmgtime = 0; } self.air_finished = time + 12; @@ -86,7 +93,7 @@ void CreatureFrame (void) { // check for falling damage float velocity_len = vlen(self.velocity); - if(!self.hook.state && !g_ca && !(g_cts && !autocvar_g_cts_selfdamage)) + if(!self.hook.state && !(g_cts && !autocvar_g_cts_selfdamage)) { 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) @@ -146,7 +153,6 @@ Called before each frame by the server float game_delay; float game_delay_last; -void RuneMatchGivePoints(); float RedirectionThink(); entity SelectSpawnPoint (float anypoint); void StartFrame (void) @@ -169,9 +175,9 @@ void StartFrame (void) c_seen = 0; FOR_EACH_CLIENT(cl) { - if(clienttype(cl) == CLIENTTYPE_REAL) + if(IS_REAL_CLIENT(cl)) ++c_seeing; - if(cl.classname == "player") + if(IS_PLAYER(cl)) ++c_seen; } print("CEFC calls per second: ", ftos(c_seeing * (c_seen - 1) / t), "; "); @@ -203,24 +209,18 @@ void StartFrame (void) skill = autocvar_skill; - count_players(); - if(g_ca || g_freezetag) - count_alive_players(); - Arena_Warmup(); - Spawnqueue_Check(); - // detect when the pre-game countdown (if any) has ended and the game has started game_delay = (time < game_starttime) ? TRUE : FALSE; if(game_delay_last == TRUE) if(game_delay == FALSE) if(autocvar_sv_eventlog) - GameLogEcho(":startdelay_ended"); + GameLogEcho(":startdelay_ended"); game_delay_last = game_delay; // if in warmup stage and limit for warmup is hit start match - if (inWarmupStage) + if (warmup_stage) if ((g_warmup_limit > 0 && time >= g_warmup_limit) || (g_warmup_limit == 0 && autocvar_timelimit != 0 && time >= autocvar_timelimit * 60)) { @@ -231,7 +231,6 @@ void StartFrame (void) CreatureFrame (); CheckRules_World (); - RuneMatchGivePoints(); bot_serverframe(); FOR_EACH_PLAYER(self)