From: Samual Date: Sat, 1 Oct 2011 23:09:40 +0000 (-0400) Subject: Change damagerate to be like ticrate (instead of dividing 1 by damagerate, just have... X-Git-Tag: xonotic-v0.6.0~40^2~92^2~1^2~6 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=c0ca5b34a07c0c1fd76a10dec7ef3ecf1543865f;p=xonotic%2Fxonotic-data.pk3dir.git Change damagerate to be like ticrate (instead of dividing 1 by damagerate, just have it be the damagerate value itself... So 0.2 delay is 5 tics, unlike previously where you supplied 5 and it figured out the delay --- diff --git a/balance25.cfg b/balance25.cfg index a9df90f34..83eb36e13 100644 --- a/balance25.cfg +++ b/balance25.cfg @@ -186,7 +186,7 @@ set g_balance_falldamage_minspeed 1400 set g_balance_falldamage_factor 0.15 set g_balance_falldamage_maxdamage 25 set g_balance_damagepush_speedfactor 0 -set g_balance_contents_damagerate 5 // how many times to apply damage per second (so 5 is 0.2 second delay per impulse of damage) +set g_balance_contents_damagerate 0.2 // ticrate interval for applying damage with playerdamage/projectiledamage set g_balance_contents_drowndelay 10 // time under water before a player begins drowning set g_balance_contents_playerdamage_drowning 20 // damage per second for while player is drowning set g_balance_contents_playerdamage_lava 50 // damage per second for while player is inside lava diff --git a/balanceFruit.cfg b/balanceFruit.cfg index 90bf733cc..fac3faa20 100644 --- a/balanceFruit.cfg +++ b/balanceFruit.cfg @@ -186,7 +186,7 @@ set g_balance_falldamage_minspeed 800 set g_balance_falldamage_factor 0.20 set g_balance_falldamage_maxdamage 15 set g_balance_damagepush_speedfactor 2.5 -set g_balance_contents_damagerate 5 // how many times to apply damage per second (so 5 is 0.2 second delay per impulse of damage) +set g_balance_contents_damagerate 0.2 // ticrate interval for applying damage with playerdamage/projectiledamage set g_balance_contents_drowndelay 10 // time under water before a player begins drowning set g_balance_contents_playerdamage_drowning 20 // damage per second for while player is drowning set g_balance_contents_playerdamage_lava 50 // damage per second for while player is inside lava diff --git a/balanceLeeStricklin.cfg b/balanceLeeStricklin.cfg index 3d015897f..37472921b 100644 --- a/balanceLeeStricklin.cfg +++ b/balanceLeeStricklin.cfg @@ -186,7 +186,7 @@ set g_balance_falldamage_minspeed 1400 set g_balance_falldamage_factor 0.15 set g_balance_falldamage_maxdamage 25 set g_balance_damagepush_speedfactor 0 -set g_balance_contents_damagerate 5 // how many times to apply damage per second (so 5 is 0.2 second delay per impulse of damage) +set g_balance_contents_damagerate 0.2 // ticrate interval for applying damage with playerdamage/projectiledamage set g_balance_contents_drowndelay 10 // time under water before a player begins drowning set g_balance_contents_playerdamage_drowning 20 // damage per second for while player is drowning set g_balance_contents_playerdamage_lava 50 // damage per second for while player is inside lava diff --git a/balanceXonotic.cfg b/balanceXonotic.cfg index 0ff720650..fe8cfda79 100644 --- a/balanceXonotic.cfg +++ b/balanceXonotic.cfg @@ -186,7 +186,7 @@ set g_balance_falldamage_minspeed 900 set g_balance_falldamage_factor 0.20 set g_balance_falldamage_maxdamage 40 set g_balance_damagepush_speedfactor 2.5 -set g_balance_contents_damagerate 5 // how many times to apply damage per second (so 5 is 0.2 second delay per impulse of damage) +set g_balance_contents_damagerate 0.2 // ticrate interval for applying damage with playerdamage/projectiledamage set g_balance_contents_drowndelay 10 // time under water before a player begins drowning set g_balance_contents_playerdamage_drowning 20 // damage per second for while player is drowning set g_balance_contents_playerdamage_lava 50 // damage per second for while player is inside lava diff --git a/balancetZork.cfg b/balancetZork.cfg index e22f1f548..2a262b9ff 100644 --- a/balancetZork.cfg +++ b/balancetZork.cfg @@ -186,9 +186,9 @@ set g_balance_falldamage_minspeed 800 set g_balance_falldamage_factor 0.02 // maxspeed = minspeed + maxdamage / factor = 4550 set g_balance_falldamage_maxdamage 75 set g_balance_damagepush_speedfactor 0 -set g_balance_contents_damagerate 5 // how many times to apply damage per second (so 5 is 0.2 second delay per impulse of damage) +set g_balance_contents_damagerate 0.2 // ticrate interval for applying damage with playerdamage/projectiledamage set g_balance_contents_drowndelay 10 // time under water before a player begins drowning -set g_balance_contents_playerdamage_drowning 20 // damage per second for while player is drowning +set g_balance_contents_playerdamage_drowning 20 // damage per second for while player is drowning set g_balance_contents_playerdamage_lava 50 // damage per second for while player is inside lava set g_balance_contents_playerdamage_slime 30 // damage per second for while player is inside slime set g_balance_contents_projectiledamage 10000 // instantly kill projectiles upon touching lava/slime @@ -203,7 +203,6 @@ set g_balance_powerup_strength_force 3 set g_balance_powerup_strength_time 30 set g_balance_powerup_strength_selfdamage 1.5 set g_balance_powerup_strength_selfforce 1.5 - // }}} // {{{ jetpack/hook diff --git a/qcsrc/server/sv_main.qc b/qcsrc/server/sv_main.qc index 3f8275276..ce5828aff 100644 --- a/qcsrc/server/sv_main.qc +++ b/qcsrc/server/sv_main.qc @@ -1,10 +1,7 @@ void CreatureFrame (void) { - local entity oldself; - local float dm; - - float damagerate; // where damagerate 5 means 5 hits per second (0.2 delay) - damagerate = (1 / bound(1, autocvar_g_balance_contents_damagerate, 100)); + entity oldself; + float dm; oldself = self; for(self = world; (self = findfloat(self, damagedbycontents, TRUE)); ) @@ -36,7 +33,7 @@ void CreatureFrame (void) if (!self.deadflag) if (self.pain_finished < time) { - Damage (self, world, world, autocvar_g_balance_contents_playerdamage_drowning * damagerate, DEATH_DROWN, self.origin, '0 0 0'); + Damage (self, world, world, autocvar_g_balance_contents_playerdamage_drowning * autocvar_g_balance_contents_damagerate, DEATH_DROWN, self.origin, '0 0 0'); self.pain_finished = time + 0.5; } } @@ -44,7 +41,7 @@ void CreatureFrame (void) if (self.dmgtime < time) { - self.dmgtime = time + damagerate; + self.dmgtime = time + autocvar_g_balance_contents_damagerate; if (!projectile) { @@ -55,7 +52,7 @@ void CreatureFrame (void) self.watersound_finished = time + 0.5; sound (self, CH_PLAYER, "player/lava.wav", VOL_BASE, ATTN_NORM); } - Damage (self, world, world, autocvar_g_balance_contents_playerdamage_lava * damagerate * self.waterlevel, DEATH_LAVA, self.origin, '0 0 0'); + Damage (self, world, world, autocvar_g_balance_contents_playerdamage_lava * autocvar_g_balance_contents_damagerate * self.waterlevel, DEATH_LAVA, self.origin, '0 0 0'); } else if (self.watertype == CONTENT_SLIME) { @@ -64,12 +61,12 @@ void CreatureFrame (void) self.watersound_finished = time + 0.5; sound (self, CH_PLAYER, "player/slime.wav", VOL_BASE, ATTN_NORM); } - Damage (self, world, world, autocvar_g_balance_contents_playerdamage_slime * damagerate * self.waterlevel, DEATH_SLIME, self.origin, '0 0 0'); + 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 * damagerate * self.waterlevel, DEATH_SLIME, self.origin, '0 0 0'); + Damage (self, world, world, autocvar_g_balance_contents_projectiledamage * autocvar_g_balance_contents_damagerate * self.waterlevel, DEATH_SLIME, self.origin, '0 0 0'); } } } diff --git a/qcsrc/server/w_minelayer.qc b/qcsrc/server/w_minelayer.qc index c4b271e25..d7d08dc46 100644 --- a/qcsrc/server/w_minelayer.qc +++ b/qcsrc/server/w_minelayer.qc @@ -245,7 +245,7 @@ void W_Mine_Damage (entity inflictor, entity attacker, float damage, float death float is_from_enemy = (inflictor.realowner != self.realowner); - if (!W_CheckProjectileDamage(inflictor.realowner, self.realowner, deathtype, is_from_enemy)) + if (!W_CheckProjectileDamage(inflictor.realowner, self.realowner, deathtype, (is_from_enemy ? 1 : -1))) return; // g_projectiles_damage says to halt self.health = self.health - damage;