From: unknown Date: Tue, 9 Nov 2010 05:43:26 +0000 (+0100) Subject: Support g_balance_uzi_mode & g_balance_uzi_burst. Tweak balance. X-Git-Tag: xonotic-v0.1.0preview~153^2~2^2~10 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=13d60cbc40a6727d3ce17df99eef8bde5dc6a492;p=xonotic%2Fxonotic-data.pk3dir.git Support g_balance_uzi_mode & g_balance_uzi_burst. Tweak balance. --- diff --git a/balance25.cfg b/balance25.cfg index b31c44878..addd2f4ef 100644 --- a/balance25.cfg +++ b/balance25.cfg @@ -263,6 +263,17 @@ set g_balance_shotgun_secondary_refire 1.1 set g_balance_shotgun_secondary_animtime 1 // }}} // {{{ uzi +set g_balance_uzi_mode 0 // Activates varible spread for sustained & burst mode secondary +set g_balance_uzi_spread_min 0.02 +set g_balance_uzi_spread_max 0.6 +set g_balance_uzi_spread_add 0.012 +set g_balance_uzi_burst 0 // # of bullets in a burst (if set to 2 or more) +set g_balance_uzi_burst_refire 0.05 // refire between burst bullets +set g_balance_uzi_burst_refire2 0.75 // refire after burst +set g_balance_uzi_burst_spread 0.04 +set g_balance_uzi_burst_damage 18 +set g_balance_uzi_burst_force 50 +set g_balance_uzi_burst_ammo 3 set g_balance_uzi_first 1 set g_balance_uzi_first_damage 30 set g_balance_uzi_first_force 50 diff --git a/balanceLeeStricklin.cfg b/balanceLeeStricklin.cfg index f428beb52..46c45dbda 100644 --- a/balanceLeeStricklin.cfg +++ b/balanceLeeStricklin.cfg @@ -274,6 +274,17 @@ set g_balance_shotgun_secondary_refire 1.1 set g_balance_shotgun_secondary_animtime 1 // }}} // {{{ uzi +set g_balance_uzi_mode 0 // Activates varible spread for sustained & burst mode secondary +set g_balance_uzi_spread_min 0.02 +set g_balance_uzi_spread_max 0.6 +set g_balance_uzi_spread_add 0.012 +set g_balance_uzi_burst 0 // # of bullets in a burst (if set to 2 or more) +set g_balance_uzi_burst_refire 0.05 // refire between burst bullets +set g_balance_uzi_burst_refire2 0.75 // refire after burst +set g_balance_uzi_burst_spread 0.04 +set g_balance_uzi_burst_damage 18 +set g_balance_uzi_burst_force 50 +set g_balance_uzi_burst_ammo 3 set g_balance_uzi_first 1 set g_balance_uzi_first_damage 26 set g_balance_uzi_first_force -30 diff --git a/balanceNexSVN.cfg b/balanceNexSVN.cfg index 779294262..4873051f9 100644 --- a/balanceNexSVN.cfg +++ b/balanceNexSVN.cfg @@ -263,6 +263,17 @@ set g_balance_shotgun_secondary_refire 1.1 set g_balance_shotgun_secondary_animtime 1 // }}} // {{{ uzi +set g_balance_uzi_mode 0 // Activates varible spread for sustained & burst mode secondary +set g_balance_uzi_spread_min 0.02 +set g_balance_uzi_spread_max 0.6 +set g_balance_uzi_spread_add 0.012 +set g_balance_uzi_burst 0 // # of bullets in a burst (if set to 2 or more) +set g_balance_uzi_burst_refire 0.05 // refire between burst bullets +set g_balance_uzi_burst_refire2 0.75 // refire after burst +set g_balance_uzi_burst_spread 0.04 +set g_balance_uzi_burst_damage 18 +set g_balance_uzi_burst_force 50 +set g_balance_uzi_burst_ammo 3 set g_balance_uzi_first 1 set g_balance_uzi_first_damage 30 set g_balance_uzi_first_force 50 diff --git a/balanceSamual.cfg b/balanceSamual.cfg index 52f4f8163..48f9bf11b 100644 --- a/balanceSamual.cfg +++ b/balanceSamual.cfg @@ -263,6 +263,17 @@ set g_balance_shotgun_secondary_refire 1.1 set g_balance_shotgun_secondary_animtime 1 // }}} // {{{ uzi +set g_balance_uzi_mode 0 // Activates varible spread for sustained & burst mode secondary +set g_balance_uzi_spread_min 0.02 +set g_balance_uzi_spread_max 0.6 +set g_balance_uzi_spread_add 0.012 +set g_balance_uzi_burst 0 // # of bullets in a burst (if set to 2 or more) +set g_balance_uzi_burst_refire 0.05 // refire between burst bullets +set g_balance_uzi_burst_refire2 0.75 // refire after burst +set g_balance_uzi_burst_spread 0.04 +set g_balance_uzi_burst_damage 18 +set g_balance_uzi_burst_force 50 +set g_balance_uzi_burst_ammo 3 set g_balance_uzi_first 1 set g_balance_uzi_first_damage 12 set g_balance_uzi_first_force 5 diff --git a/balanceTest.cfg b/balanceTest.cfg index 9215bb546..b6cc98648 100644 --- a/balanceTest.cfg +++ b/balanceTest.cfg @@ -263,6 +263,17 @@ set g_balance_shotgun_secondary_refire 1.1 set g_balance_shotgun_secondary_animtime 1 // }}} // {{{ uzi +set g_balance_uzi_mode 0 // Activates varible spread for sustained & burst mode secondary +set g_balance_uzi_spread_min 0.02 +set g_balance_uzi_spread_max 0.6 +set g_balance_uzi_spread_add 0.012 +set g_balance_uzi_burst 0 // # of bullets in a burst (if set to 2 or more) +set g_balance_uzi_burst_refire 0.05 // refire between burst bullets +set g_balance_uzi_burst_refire2 0.75 // refire after burst +set g_balance_uzi_burst_spread 0.04 +set g_balance_uzi_burst_damage 18 +set g_balance_uzi_burst_force 50 +set g_balance_uzi_burst_ammo 3 set g_balance_uzi_first 1 set g_balance_uzi_first_damage 30 set g_balance_uzi_first_force 50 diff --git a/balanceXonotic.cfg b/balanceXonotic.cfg index 1aaa771ed..048effe17 100644 --- a/balanceXonotic.cfg +++ b/balanceXonotic.cfg @@ -263,6 +263,17 @@ set g_balance_shotgun_secondary_refire 1.1 set g_balance_shotgun_secondary_animtime 1 // }}} // {{{ uzi +set g_balance_uzi_mode 0 // Activates varible spread for sustained & burst mode secondary +set g_balance_uzi_spread_min 0.02 +set g_balance_uzi_spread_max 0.6 +set g_balance_uzi_spread_add 0.012 +set g_balance_uzi_burst 0 // # of bullets in a burst (if set to 2 or more) +set g_balance_uzi_burst_refire 0.05 // refire between burst bullets +set g_balance_uzi_burst_refire2 0.75 // refire after burst +set g_balance_uzi_burst_spread 0.04 +set g_balance_uzi_burst_damage 18 +set g_balance_uzi_burst_force 50 +set g_balance_uzi_burst_ammo 3 set g_balance_uzi_first 1 set g_balance_uzi_first_damage 18 set g_balance_uzi_first_force 35 diff --git a/balancetZork.cfg b/balancetZork.cfg index 7879d7a24..7a5e20952 100644 --- a/balancetZork.cfg +++ b/balancetZork.cfg @@ -277,26 +277,42 @@ set g_balance_shotgun_secondary_force 150 set g_balance_shotgun_secondary_refire 1.1 set g_balance_shotgun_secondary_animtime 1 // }}} + // {{{ uzi +set g_balance_uzi_mode 1 // Activates varible spread for sustained & burst mode secondary +set g_balance_uzi_spread_min 0.02 +set g_balance_uzi_spread_max 0.6 +set g_balance_uzi_spread_add 0.012 + +set g_balance_uzi_burst 5 // # of bullets in a burst (if set to 2 or more) +set g_balance_uzi_burst_refire 0.05 // refire between burst bullets +set g_balance_uzi_burst_refire2 0.75 // refire after burst +set g_balance_uzi_burst_spread 0.04 +set g_balance_uzi_burst_damage 18 // 90 dps (but 90 dmg deliverd in .25s) +set g_balance_uzi_burst_force 50 +set g_balance_uzi_burst_ammo 3 + set g_balance_uzi_first 1 set g_balance_uzi_first_damage 30 set g_balance_uzi_first_force 50 set g_balance_uzi_first_spread 0.015 set g_balance_uzi_first_refire 0.3 set g_balance_uzi_first_ammo 1 -set g_balance_uzi_sustained_damage 15 + +set g_balance_uzi_sustained_damage 12 // 120 dps set g_balance_uzi_sustained_force 10 set g_balance_uzi_sustained_spread 0.08 set g_balance_uzi_sustained_refire 0.1 set g_balance_uzi_sustained_ammo 1 + set g_balance_uzi_speed 18000 set g_balance_uzi_bulletconstant 115 // 13.1qu // }}} // {{{ mortar set g_balance_grenadelauncher_primary_type 0 -set g_balance_grenadelauncher_primary_damage 60 -set g_balance_grenadelauncher_primary_edgedamage 38 -set g_balance_grenadelauncher_primary_force 400 +set g_balance_grenadelauncher_primary_damage 50 +set g_balance_grenadelauncher_primary_edgedamage 30 +set g_balance_grenadelauncher_primary_force 250 set g_balance_grenadelauncher_primary_radius 140 set g_balance_grenadelauncher_primary_speed 2000 set g_balance_grenadelauncher_primary_speed_up 200 @@ -314,9 +330,9 @@ set g_balance_grenadelauncher_primary_bouncestop 0.075 set g_balance_grenadelauncher_primary_remote_minbouncecnt 0 set g_balance_grenadelauncher_secondary_type 1 -set g_balance_grenadelauncher_secondary_damage 70 -set g_balance_grenadelauncher_secondary_edgedamage 38 -set g_balance_grenadelauncher_secondary_force 400 +set g_balance_grenadelauncher_secondary_damage 60 +set g_balance_grenadelauncher_secondary_edgedamage 35 +set g_balance_grenadelauncher_secondary_force 300 set g_balance_grenadelauncher_secondary_radius 140 set g_balance_grenadelauncher_secondary_speed 1400 set g_balance_grenadelauncher_secondary_speed_up 200 @@ -377,11 +393,11 @@ set g_balance_electro_primary_falloff_halflifedist 425 set g_balance_electro_secondary_damage 25 set g_balance_electro_secondary_edgedamage 0 set g_balance_electro_secondary_force 100 -set g_balance_electro_secondary_radius 75 -set g_balance_electro_secondary_speed 500 -set g_balance_electro_secondary_speed_up 150 +set g_balance_electro_secondary_radius 100 +set g_balance_electro_secondary_speed 900 +set g_balance_electro_secondary_speed_up 200 set g_balance_electro_secondary_speed_z 0 -set g_balance_electro_secondary_spread 0.08 +set g_balance_electro_secondary_spread 0.025 set g_balance_electro_secondary_lifetime 5 set g_balance_electro_secondary_refire 0.1 set g_balance_electro_secondary_refire2 2 @@ -391,12 +407,12 @@ set g_balance_electro_secondary_health 10 set g_balance_electro_secondary_damageforcescale 2 set g_balance_electro_secondary_count 3 -set g_balance_electro_combo_damage 90 -set g_balance_electro_combo_edgedamage 0 +set g_balance_electro_combo_damage 80 +set g_balance_electro_combo_edgedamage 10 set g_balance_electro_combo_force 80 set g_balance_electro_combo_radius 250 set g_balance_electro_combo_comboradius 0 -set g_balance_electro_combo_speed 400 +set g_balance_electro_combo_speed 1000 // }}} // {{{ crylink set g_balance_crylink_primary_damage 5 diff --git a/qcsrc/server/w_uzi.qc b/qcsrc/server/w_uzi.qc index 788c9880f..33f7372a1 100644 --- a/qcsrc/server/w_uzi.qc +++ b/qcsrc/server/w_uzi.qc @@ -38,8 +38,6 @@ void UziFlash() self.muzzle_flash.angles_z = random() * 180; self.muzzle_flash.effects = EF_ADDITIVE | EF_FULLBRIGHT | EF_LOWPRECISION; self.muzzle_flash.owner = self; - - } .float uzi_bulletcounter; @@ -100,10 +98,101 @@ void uzi_fire1_02() } else weapon_thinkf(WFRAME_FIRE1, cvar("g_balance_uzi_sustained_refire"), w_ready); -}; +} + + +void uzi_mode1_fire_auto() +{ + float uzi_spread; + + if (self.BUTTON_ATCK) + weapon_thinkf(WFRAME_FIRE1, cvar("g_balance_uzi_sustained_refire"), uzi_mode1_fire_auto); + else + { + ATTACK_FINISHED(self) = time + cvar("g_balance_uzi_first_refire") * W_WeaponRateFactor(); + weapon_thinkf(WFRAME_FIRE1, cvar("g_balance_uzi_sustained_refire"), w_ready); + return; + } + + if (!weapon_action(self.weapon, WR_CHECKAMMO1)) + { + W_SwitchWeapon_Force(self, w_getbestweapon(self)); + w_ready(); + return; + } + + W_SetupShot (self, cvar("g_antilag_bullets") && cvar("g_balance_uzi_speed") >= cvar("g_antilag_bullets"), 0, "weapons/uzi_fire.wav", cvar("g_balance_uzi_first_damage")); + if (!g_norecoil) + { + self.punchangle_x = random () - 0.5; + self.punchangle_y = random () - 0.5; + } + + uzi_spread = bound(cvar("g_balance_uzi_spread_min"), cvar("g_balance_uzi_spread_min") + (cvar("g_balance_uzi_spread_add") * self.uzi_bulletcounter), cvar("g_balance_uzi_spread_max")); + fireBallisticBullet(w_shotorg, w_shotdir, uzi_spread, cvar("g_balance_uzi_speed"), 5, cvar("g_balance_uzi_sustained_damage"), 0, cvar("g_balance_uzi_sustained_force"), WEP_UZI, 0, 1, cvar("g_balance_uzi_bulletconstant")); + endFireBallisticBullet(); + + self.uzi_bulletcounter = self.uzi_bulletcounter + 1; + + pointparticles(particleeffectnum("uzi_muzzleflash"), w_shotorg, w_shotdir * 1000, 1); + + UziFlash(); + W_AttachToShotorg(self.muzzle_flash, '5 0 0'); + + if (cvar("g_casings") >= 2) // casing code + SpawnCasing (((random () * 50 + 50) * v_right) - (v_forward * (random () * 25 + 25)) - ((random () * 5 - 70) * v_up), 2, vectoangles(v_forward),'0 250 0', 100, 3, self); + + if not(self.items & IT_UNLIMITED_WEAPON_AMMO) + self.ammo_nails = self.ammo_nails - cvar("g_balance_uzi_sustained_ammo"); + +} + +void uzi_mode1_fire_burst() +{ + W_SetupShot (self, cvar("g_antilag_bullets") && cvar("g_balance_uzi_speed") >= cvar("g_antilag_bullets"), 0, "weapons/uzi_fire.wav", cvar("g_balance_uzi_first_damage")); + if (!g_norecoil) + { + self.punchangle_x = random () - 0.5; + self.punchangle_y = random () - 0.5; + } + + fireBallisticBullet(w_shotorg, w_shotdir, cvar("g_balance_uzi_burst_spread"), cvar("g_balance_uzi_speed"), 5, cvar("g_balance_uzi_sustained_damage"), 0, cvar("g_balance_uzi_sustained_force"), WEP_UZI, 0, 1, cvar("g_balance_uzi_bulletconstant")); + endFireBallisticBullet(); + + + pointparticles(particleeffectnum("uzi_muzzleflash"), w_shotorg, w_shotdir * 1000, 1); + + UziFlash(); + W_AttachToShotorg(self.muzzle_flash, '5 0 0'); + + if (cvar("g_casings") >= 2) // casing code + SpawnCasing (((random () * 50 + 50) * v_right) - (v_forward * (random () * 25 + 25)) - ((random () * 5 - 70) * v_up), 2, vectoangles(v_forward),'0 250 0', 100, 3, self); + + self.uzi_bulletcounter = self.uzi_bulletcounter + 1; + if (self.uzi_bulletcounter == 0) + weapon_thinkf(WFRAME_FIRE2, cvar("g_balance_uzi_burst_refire2"), w_ready); + else + { + weapon_thinkf(WFRAME_FIRE2, cvar("g_balance_uzi_burst_refire"), uzi_mode1_fire_burst); + dprint("bullets:", ftos(self.uzi_bulletcounter),"\n"); + } + +} void spawnfunc_weapon_machinegun(); // defined in t_items.qc +/* +set g_balance_uzi_mode 1 +set g_balance_uzi_spread_min 0.025 +set g_balance_uzi_spread_max 0.85 +set g_balance_uzi_spread_add 0.01 +set g_balance_uzi_burst 5 +set g_balance_uzi_burst_refire 0.05 +set g_balance_uzi_burst_refire2 0.75 +set g_balance_uzi_burst_spread 0.04 +g_balance_uzi_burst_ammo +*/ + float w_uzi(float req) { if (req == WR_AIM) @@ -115,19 +204,50 @@ float w_uzi(float req) } else if (req == WR_THINK) { - if (self.BUTTON_ATCK) - if (weapon_prepareattack(0, 0)) + if(cvar("g_balance_uzi_mode") == 1) { - self.uzi_bulletcounter = 1; - W_Uzi_Attack(WEP_UZI); // sets attack_finished - weapon_thinkf(WFRAME_FIRE1, cvar("g_balance_uzi_sustained_refire"), uzi_fire1_02); + if (self.BUTTON_ATCK) + if (weapon_prepareattack(0, 0)) + { + self.uzi_bulletcounter = 0; + uzi_mode1_fire_auto(); + } + + if(self.BUTTON_ATCK2) + if(weapon_prepareattack(1, 0)) + { + if (!weapon_action(self.weapon, WR_CHECKAMMO2)) + { + W_SwitchWeapon_Force(self, w_getbestweapon(self)); + w_ready(); + return; + } + + if not(self.items & IT_UNLIMITED_WEAPON_AMMO) + self.ammo_nails = self.ammo_nails - cvar("g_balance_uzi_burst_ammo"); + + self.uzi_bulletcounter = cvar("g_balance_uzi_burst") * -1; + uzi_mode1_fire_burst(); + } } - if (self.BUTTON_ATCK2 && cvar("g_balance_uzi_first")) - if (weapon_prepareattack(1, 0)) + else { - self.uzi_bulletcounter = 1; - W_Uzi_Attack(WEP_UZI | HITTYPE_SECONDARY); // sets attack_finished - weapon_thinkf(WFRAME_FIRE2, cvar("g_balance_uzi_first_refire"), w_ready); + + if (self.BUTTON_ATCK) + if (weapon_prepareattack(0, 0)) + { + self.uzi_bulletcounter = 1; + W_Uzi_Attack(WEP_UZI); // sets attack_finished + weapon_thinkf(WFRAME_FIRE1, cvar("g_balance_uzi_sustained_refire"), uzi_fire1_02); + } + + if (self.BUTTON_ATCK2 && cvar("g_balance_uzi_first")) + if (weapon_prepareattack(1, 0)) + { + self.uzi_bulletcounter = 1; + W_Uzi_Attack(WEP_UZI | HITTYPE_SECONDARY); // sets attack_finished + weapon_thinkf(WFRAME_FIRE2, cvar("g_balance_uzi_first_refire"), w_ready); + } } } else if (req == WR_PRECACHE) @@ -141,9 +261,15 @@ float w_uzi(float req) else if (req == WR_SETUP) weapon_setup(WEP_UZI); else if (req == WR_CHECKAMMO1) - return self.ammo_nails >= cvar("g_balance_uzi_first_ammo"); + if(cvar("g_balance_uzi_mode") == 1) + return self.ammo_nails >= cvar("g_balance_uzi_sustained_ammo"); + else + return self.ammo_nails >= cvar("g_balance_uzi_first_ammo"); else if (req == WR_CHECKAMMO2) - return self.ammo_nails >= cvar("g_balance_uzi_first_ammo"); + if(cvar("g_balance_uzi_mode") == 1) + return self.ammo_nails >= cvar("g_balance_uzi_burst_ammo"); + else + return self.ammo_nails >= cvar("g_balance_uzi_first_ammo"); return TRUE; }; #endif