From 7dc163da8d5ac364162b463e84b1d96818ee303c Mon Sep 17 00:00:00 2001 From: Samual Date: Wed, 28 Sep 2011 00:41:36 -0400 Subject: [PATCH] Fix several bugs, plus some more progress all around --- balanceXonotic.cfg | 6 +++--- qcsrc/server/autocvars.qh | 1 + qcsrc/server/sv_main.qc | 9 ++++++--- qcsrc/server/w_grenadelauncher.qc | 8 +++++--- qcsrc/server/w_hagar.qc | 7 +++++++ qcsrc/server/w_minelayer.qc | 4 ++++ qcsrc/server/w_rocketlauncher.qc | 3 +++ qcsrc/server/w_seeker.qc | 2 ++ 8 files changed, 31 insertions(+), 9 deletions(-) diff --git a/balanceXonotic.cfg b/balanceXonotic.cfg index e2e20fc3b..92cb68912 100644 --- a/balanceXonotic.cfg +++ b/balanceXonotic.cfg @@ -179,11 +179,11 @@ 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 10 +set g_balance_contents_damagerate 5 set g_balance_contents_playerdamage_drowning 20 set g_balance_contents_playerdamage_lava 50 set g_balance_contents_playerdamage_slime 30 -set g_balance_contents_projectiledamage 40 +set g_balance_contents_projectiledamage 100 // }}} // {{{ powerups @@ -328,7 +328,7 @@ set g_balance_grenadelauncher_primary_lifetime2 1 set g_balance_grenadelauncher_primary_refire 0.8 set g_balance_grenadelauncher_primary_animtime 0.3 set g_balance_grenadelauncher_primary_ammo 2 -set g_balance_grenadelauncher_primary_health 10 +set g_balance_grenadelauncher_primary_health 15 set g_balance_grenadelauncher_primary_damageforcescale 0 set g_balance_grenadelauncher_primary_remote_minbouncecnt 0 diff --git a/qcsrc/server/autocvars.qh b/qcsrc/server/autocvars.qh index 64b6b7411..8f0c3f015 100644 --- a/qcsrc/server/autocvars.qh +++ b/qcsrc/server/autocvars.qh @@ -338,6 +338,7 @@ float autocvar_g_balance_hagar_secondary_load_max; float autocvar_g_balance_hagar_secondary_load_hold; float autocvar_g_balance_hagar_secondary_load_releasedeath; float autocvar_g_balance_hagar_secondary_load_abort; +float autocvar_g_balance_hagar_secondary_load_linkexplode; float autocvar_g_balance_hagar_secondary_ammo; float autocvar_g_balance_hagar_secondary_damage; float autocvar_g_balance_hagar_secondary_edgedamage; diff --git a/qcsrc/server/sv_main.qc b/qcsrc/server/sv_main.qc index 96b3b8671..3d2f56297 100644 --- a/qcsrc/server/sv_main.qc +++ b/qcsrc/server/sv_main.qc @@ -1,4 +1,3 @@ - void CreatureFrame (void) { local entity oldself; @@ -15,13 +14,16 @@ void CreatureFrame (void) float vehic = (self.vehicle_flags & VHF_ISVEHICLE); float projectile = (self.projectiledeathtype); - if (self.waterlevel) + //if(projectile) + // print("waterlevel: ", ftos((self.watertype <= CONTENT_WATER && self.waterlevel > 0)), ". \n"); + + 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) { if (!(self.flags & FL_INWATER)) { self.flags |= FL_INWATER; self.dmgtime = 0; - te_customflash(self.origin, 40, 2, '50 1 1'); + //te_customflash(self.origin, 200, 20, '50 0.1 0.1'); } if(!vehic && !projectile) // vehicles and projectiles don't drown @@ -82,6 +84,7 @@ void CreatureFrame (void) // play leave water sound self.flags &~= FL_INWATER; self.dmgtime = 0; + //te_customflash(self.origin, 200, 20, '0.1 0.1 50'); } self.air_finished = time + 12; self.dmg = 2; diff --git a/qcsrc/server/w_grenadelauncher.qc b/qcsrc/server/w_grenadelauncher.qc index dcaa1f7ce..929b10528 100644 --- a/qcsrc/server/w_grenadelauncher.qc +++ b/qcsrc/server/w_grenadelauncher.qc @@ -50,10 +50,11 @@ void W_Grenade_Damage (entity inflictor, entity attacker, float damage, float de if (self.health <= 0) return; self.health = self.health - damage; + + print(strcat("grenade health ", ftos(self.health), " after ", ftos(damage), " damage... (at time: ", ftos(time), ")\n")); + if (self.health <= 0) - { - W_PrepareExplosionByDamage(attacker, self.think); - } + W_PrepareExplosionByDamage(attacker, self.use); } void W_Grenade_Think1 (void) @@ -243,6 +244,7 @@ void W_Grenade_Attack2 (void) gren.health = autocvar_g_balance_grenadelauncher_secondary_health; gren.damageforcescale = autocvar_g_balance_grenadelauncher_secondary_damageforcescale; gren.event_damage = W_Grenade_Damage; + gren.damagedbycontents = TRUE; W_SETUPPROJECTILEVELOCITY_UP(gren, g_balance_grenadelauncher_secondary); gren.angles = vectoangles (gren.velocity); diff --git a/qcsrc/server/w_hagar.qc b/qcsrc/server/w_hagar.qc index 97c4e001c..e7eede175 100644 --- a/qcsrc/server/w_hagar.qc +++ b/qcsrc/server/w_hagar.qc @@ -24,8 +24,15 @@ void W_Hagar_Damage (entity inflictor, entity attacker, float damage, float deat { if (self.health <= 0) return; + + if ((attacker.realowner == self.realowner) && !autocvar_g_balance_hagar_secondary_load_linkexplode) + return; + self.health = self.health - damage; self.angles = vectoangles(self.velocity); + + print(strcat("hagar rocket health ", ftos(self.health), " after ", ftos(damage), " damage... (at time: ", ftos(time), ")\n")); + if (self.health <= 0) W_PrepareExplosionByDamage(attacker, self.think); } diff --git a/qcsrc/server/w_minelayer.qc b/qcsrc/server/w_minelayer.qc index f6d0616d8..af60af14e 100644 --- a/qcsrc/server/w_minelayer.qc +++ b/qcsrc/server/w_minelayer.qc @@ -244,6 +244,9 @@ void W_Mine_Damage (entity inflictor, entity attacker, float damage, float death return; self.health = self.health - damage; self.angles = vectoangles(self.velocity); + + print(strcat("mine health ", ftos(self.health), " after ", ftos(damage), " damage... (at time: ", ftos(time), ")\n")); + if (self.health <= 0) W_PrepareExplosionByDamage(attacker, W_Mine_Explode); } @@ -285,6 +288,7 @@ void W_Mine_Attack (void) mine.damageforcescale = autocvar_g_balance_minelayer_damageforcescale; mine.health = autocvar_g_balance_minelayer_health; mine.event_damage = W_Mine_Damage; + mine.damagedbycontents = TRUE; mine.movetype = MOVETYPE_TOSS; PROJECTILE_MAKETRIGGER(mine); diff --git a/qcsrc/server/w_rocketlauncher.qc b/qcsrc/server/w_rocketlauncher.qc index 30201a742..1c0b5a8b5 100644 --- a/qcsrc/server/w_rocketlauncher.qc +++ b/qcsrc/server/w_rocketlauncher.qc @@ -240,6 +240,9 @@ void W_Rocket_Damage (entity inflictor, entity attacker, float damage, float dea return; self.health = self.health - damage; self.angles = vectoangles(self.velocity); + + print(strcat("rocket health ", ftos(self.health), " after ", ftos(damage), " damage... (at time: ", ftos(time), ")\n")); + if (self.health <= 0) W_PrepareExplosionByDamage(attacker, W_Rocket_Explode); } diff --git a/qcsrc/server/w_seeker.qc b/qcsrc/server/w_seeker.qc index 99de29dde..326680cbd 100644 --- a/qcsrc/server/w_seeker.qc +++ b/qcsrc/server/w_seeker.qc @@ -130,6 +130,8 @@ void Seeker_Missile_Damage (entity inflictor, entity attacker, float damage, flo else self.health = self.health - damage; + print(strcat("seeker missile health ", ftos(self.health), " after ", ftos(damage), " damage... (at time: ", ftos(time), ")\n")); + if (self.health <= 0) W_PrepareExplosionByDamage(attacker, Seeker_Missile_Explode); } -- 2.39.2