From be83e4e43dfbc888da4890314db8a53b5fd78f72 Mon Sep 17 00:00:00 2001 From: div0 Date: Mon, 19 Oct 2009 08:34:10 +0000 Subject: [PATCH] laser projectile delay (STUUUUUPID) git-svn-id: svn://svn.icculus.org/nexuiz/trunk@8154 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/balance.cfg | 4 +++- data/balance25.cfg | 4 +++- data/balanceHavoc.cfg | 4 +++- data/balanceNexrun.cfg | 4 +++- data/balanceSamual.cfg | 4 +++- data/qcsrc/server/constants.qh | 2 +- data/qcsrc/server/w_laser.qc | 31 ++++++++++++++++++++++++------- 7 files changed, 40 insertions(+), 13 deletions(-) diff --git a/data/balance.cfg b/data/balance.cfg index 549c52e90..ec32bb589 100644 --- a/data/balance.cfg +++ b/data/balance.cfg @@ -3,7 +3,7 @@ // // And... don't forget to edit the other balance*.cfg too. -set cvar_check_balance 7f0cddd65617fa39bd3efb7942dceea9 +set cvar_check_balance 1904952fd0d915f79ab4e6f0622abdb6 // {{{ weapon replacement // NOTE: this only replaces weapons on the map @@ -224,6 +224,7 @@ set g_balance_laser_primary_refire 0.7 set g_balance_laser_primary_animtime 0.3 set g_balance_laser_primary_lifetime 30 set g_balance_laser_primary_shotangle 0 +set g_balance_laser_primary_delay 0.05 set g_balance_laser_secondary 1 // when 1, a secondary laser mode exists set g_balance_laser_secondary_damage 25 set g_balance_laser_secondary_edgedamage 10 @@ -234,6 +235,7 @@ set g_balance_laser_secondary_refire 0.7 set g_balance_laser_secondary_animtime 0.3 set g_balance_laser_secondary_lifetime 30 set g_balance_laser_secondary_shotangle -90 +set g_balance_laser_secondary_delay 0 // }}} // {{{ shotgun set g_balance_shotgun_primary_bullets 15 diff --git a/data/balance25.cfg b/data/balance25.cfg index 5ccb5ab60..36f075754 100644 --- a/data/balance25.cfg +++ b/data/balance25.cfg @@ -3,7 +3,7 @@ // // And... don't forget to edit the other balance*.cfg too. -set cvar_check_balance 7f0cddd65617fa39bd3efb7942dceea9 +set cvar_check_balance 1904952fd0d915f79ab4e6f0622abdb6 // {{{ weapon replacement // NOTE: this only replaces weapons on the map @@ -224,6 +224,7 @@ set g_balance_laser_primary_refire 0.7 set g_balance_laser_primary_animtime 0.3 set g_balance_laser_primary_lifetime 30 set g_balance_laser_primary_shotangle 0 +set g_balance_laser_primary_delay 0 set g_balance_laser_secondary 0 // when 1, a secondary laser mode exists set g_balance_laser_secondary_damage 35 set g_balance_laser_secondary_edgedamage 10 @@ -234,6 +235,7 @@ set g_balance_laser_secondary_refire 0.7 set g_balance_laser_secondary_animtime 0.3 set g_balance_laser_secondary_lifetime 30 set g_balance_laser_secondary_shotangle 0 +set g_balance_laser_secondary_delay 0 // }}} // {{{ shotgun set g_balance_shotgun_primary_bullets 6 diff --git a/data/balanceHavoc.cfg b/data/balanceHavoc.cfg index 9a5ebae41..8901d81a0 100644 --- a/data/balanceHavoc.cfg +++ b/data/balanceHavoc.cfg @@ -3,7 +3,7 @@ // // And... don't forget to edit the other balance*.cfg too. -set cvar_check_balance 7f0cddd65617fa39bd3efb7942dceea9 +set cvar_check_balance 1904952fd0d915f79ab4e6f0622abdb6 // {{{ weapon replacement // NOTE: this only replaces weapons on the map @@ -224,6 +224,7 @@ set g_balance_laser_primary_refire 0.7 set g_balance_laser_primary_animtime 0.3 set g_balance_laser_primary_lifetime 30 set g_balance_laser_primary_shotangle 0 +set g_balance_laser_primary_delay 0 set g_balance_laser_secondary 1 // when 1, a secondary laser mode exists set g_balance_laser_secondary_damage 25 set g_balance_laser_secondary_edgedamage 10 @@ -234,6 +235,7 @@ set g_balance_laser_secondary_refire 0.7 set g_balance_laser_secondary_animtime 0.3 set g_balance_laser_secondary_lifetime 30 set g_balance_laser_secondary_shotangle -90 +set g_balance_laser_secondary_delay 0 // }}} // {{{ shotgun set g_balance_shotgun_primary_bullets 15 diff --git a/data/balanceNexrun.cfg b/data/balanceNexrun.cfg index bc7b0d87d..08ff4900a 100644 --- a/data/balanceNexrun.cfg +++ b/data/balanceNexrun.cfg @@ -3,7 +3,7 @@ // // And... don't forget to edit the other balance*.cfg too. -set cvar_check_balance 1e423b95c67bac7998289473abe8feb1 +set cvar_check_balance 1904952fd0d915f79ab4e6f0622abdb6 // {{{ weapon replacement // NOTE: this only replaces weapons on the map @@ -225,6 +225,7 @@ set g_balance_laser_primary_refire 0 set g_balance_laser_primary_animtime 0.1 set g_balance_laser_primary_lifetime 0.066 set g_balance_laser_primary_shotangle 0 +set g_balance_laser_primary_delay 0 set g_balance_laser_secondary 1 // when 1, a secondary laser mode exists set g_balance_laser_secondary_damage 50 set g_balance_laser_secondary_edgedamage 1 @@ -235,6 +236,7 @@ set g_balance_laser_secondary_refire 0 set g_balance_laser_secondary_animtime 0.15 set g_balance_laser_secondary_lifetime 0.066 set g_balance_laser_secondary_shotangle 0 +set g_balance_laser_secondary_delay 0 // }}} // {{{ shotgun set g_balance_shotgun_primary_bullets 15 diff --git a/data/balanceSamual.cfg b/data/balanceSamual.cfg index 5023c27ec..7b6b351e9 100644 --- a/data/balanceSamual.cfg +++ b/data/balanceSamual.cfg @@ -3,7 +3,7 @@ // // And... don't forget to edit the other balance*.cfg too. -set cvar_check_balance 7f0cddd65617fa39bd3efb7942dceea9 +set cvar_check_balance 1904952fd0d915f79ab4e6f0622abdb6 // {{{ weapon replacement // NOTE: this only replaces weapons on the map @@ -225,6 +225,7 @@ set g_balance_laser_primary_refire 0.7 set g_balance_laser_primary_animtime 0.3 set g_balance_laser_primary_lifetime 30 set g_balance_laser_primary_shotangle 0 +set g_balance_laser_primary_delay 0.05 set g_balance_laser_secondary 1 // when 1, a secondary laser mode exists set g_balance_laser_secondary_damage 25 set g_balance_laser_secondary_edgedamage 10 @@ -235,6 +236,7 @@ set g_balance_laser_secondary_refire 0.7 set g_balance_laser_secondary_animtime 0.3 set g_balance_laser_secondary_lifetime 30 set g_balance_laser_secondary_shotangle -90 +set g_balance_laser_secondary_delay 0 // }}} // {{{ shotgun set g_balance_shotgun_primary_bullets 6 diff --git a/data/qcsrc/server/constants.qh b/data/qcsrc/server/constants.qh index 2c524f0b0..aa95915ac 100644 --- a/data/qcsrc/server/constants.qh +++ b/data/qcsrc/server/constants.qh @@ -1,5 +1,5 @@ string CVAR_CHECK_DEFAULT = "5d48426c72cdfbf78480870c75601f89"; -string CVAR_CHECK_BALANCE = "7f0cddd65617fa39bd3efb7942dceea9"; +string CVAR_CHECK_BALANCE = "1904952fd0d915f79ab4e6f0622abdb6"; float FALSE = 0; float TRUE = 1; diff --git a/data/qcsrc/server/w_laser.qc b/data/qcsrc/server/w_laser.qc index 35cca5de7..53439b5ee 100644 --- a/data/qcsrc/server/w_laser.qc +++ b/data/qcsrc/server/w_laser.qc @@ -13,6 +13,17 @@ void W_Laser_Touch (void) remove (self); } +void W_Laser_Think() +{ + self.movetype = MOVETYPE_FLY; + self.think = SUB_Remove; + if (self.dmg) + self.nextthink = time + cvar("g_balance_laser_secondary_lifetime"); + else + self.nextthink = time + cvar("g_balance_laser_primary_lifetime"); + CSQCProjectile(self, TRUE, PROJECTILE_LASER, TRUE); +} + void W_Laser_Attack (float issecondary) { local entity missile; @@ -52,7 +63,6 @@ void W_Laser_Attack (float issecondary) missile.bot_dodgerating = cvar("g_balance_laser_primary_damage"); } - missile.movetype = MOVETYPE_FLY; PROJECTILE_MAKETRIGGER(missile); missile.projectiledeathtype = WEP_LASER; if(issecondary == 1) @@ -70,15 +80,22 @@ void W_Laser_Attack (float issecondary) //missile.glow_color = 250; // 244, 250 //missile.glow_size = 120; missile.touch = W_Laser_Touch; - missile.think = SUB_Remove; - if (issecondary == 1) - missile.nextthink = time + cvar("g_balance_laser_secondary_lifetime"); - else - missile.nextthink = time + cvar("g_balance_laser_primary_lifetime"); missile.flags = FL_PROJECTILE; - CSQCProjectile(missile, TRUE, PROJECTILE_LASER, TRUE); + missile.think = W_Laser_Think; + if (issecondary == 1) + missile.nextthink = time + cvar("g_balance_laser_secondary_delay"); + else + missile.nextthink = time + cvar("g_balance_laser_primary_delay"); + if(time >= missile.nextthink) + { + entity oldself; + oldself = self; + self = missile; + self.think(); + self = oldself; + } } void spawnfunc_weapon_laser (void) -- 2.39.2