From 6f1bb3c9d44568db1f3a9a0b7700593da6762ead Mon Sep 17 00:00:00 2001 From: INeedBots Date: Sat, 26 Sep 2020 21:15:23 -0600 Subject: [PATCH] dvar --- main/server.cfg | 1 + userraw/maps/mp/gametypes/_damage.gsc | 69 ++++++++++++------------ userraw/maps/mp/gametypes/_gamelogic.gsc | 2 + 3 files changed, 38 insertions(+), 34 deletions(-) diff --git a/main/server.cfg b/main/server.cfg index 567144c..55fc147 100644 --- a/main/server.cfg +++ b/main/server.cfg @@ -524,6 +524,7 @@ set scr_allow_intermission "0" set scr_voting_bots "0" set scr_nuke_increases_streak "0" set headshot_detach_head "1" +set scr_killstreaks_increase_killstreak "1" // _weapon set scr_allowDropWeaponOnCommand "1" diff --git a/userraw/maps/mp/gametypes/_damage.gsc b/userraw/maps/mp/gametypes/_damage.gsc index 16a24b6..b774208 100644 --- a/userraw/maps/mp/gametypes/_damage.gsc +++ b/userraw/maps/mp/gametypes/_damage.gsc @@ -244,50 +244,51 @@ handleNormalDeath( lifeId, attacker, eInflictor, sWeapon, sMeansOfDeath ) if ( self _hasPerk( "specialty_copycat" ) ) self.pers["copyCatLoadout"] = attacker maps\mp\gametypes\_class::cloneLoadout(); - if ( isAlive( attacker ) ) + if ( isAlive( attacker ) && !level.scriptIncKillstreak ) { // killstreaks only advance from kills earned this life if ( isDefined( level.killStreakSpecialCaseWeapons[sWeapon] ) || sWeapon == "nuke_mp" ) // this is an optimization { - switch ( sWeapon ) + if (level.killstreaksIncreaseKillstreak) { - case "ac130_105mm_mp": - case "ac130_40mm_mp": - case "ac130_25mm_mp": - if ( attacker.ac130LifeId == attacker.pers["deaths"] && !level.scriptIncKillstreak ) + switch ( sWeapon ) + { + case "ac130_105mm_mp": + case "ac130_40mm_mp": + case "ac130_25mm_mp": + if ( attacker.ac130LifeId == attacker.pers["deaths"] ) + attacker.pers["cur_kill_streak"]++; + break; + case "cobra_player_minigun_mp": + case "weapon_cobra_mk19_mp": + if ( attacker.heliRideLifeId == attacker.pers["deaths"] ) + attacker.pers["cur_kill_streak"]++; + break; + case "cobra_20mm_mp": + case "artillery_mp": + case "stealth_bomb_mp": + case "remotemissile_projectile_mp": + case "sentry_minigun_mp": + case "harrier_20mm_mp": + case "pavelow_minigun_mp": + case "nuke_mp": + if ( isDefined( eInflictor ) && isDefined( eInflictor.lifeId ) ) + killstreakLifeId = eInflictor.lifeId; + else + killstreakLifeId = attacker.lifeId; + + if ( killstreakLifeId == attacker.pers["deaths"] && (level.nukeIncreasesStreak || sWeapon != "nuke_mp") ) + attacker.pers["cur_kill_streak"]++; + break; + default: attacker.pers["cur_kill_streak"]++; - break; - case "cobra_player_minigun_mp": - case "weapon_cobra_mk19_mp": - if ( attacker.heliRideLifeId == attacker.pers["deaths"] && !level.scriptIncKillstreak ) - attacker.pers["cur_kill_streak"]++; - break; - case "cobra_20mm_mp": - case "artillery_mp": - case "stealth_bomb_mp": - case "remotemissile_projectile_mp": - case "sentry_minigun_mp": - case "harrier_20mm_mp": - case "pavelow_minigun_mp": - case "nuke_mp": - if ( isDefined( eInflictor ) && isDefined( eInflictor.lifeId ) ) - killstreakLifeId = eInflictor.lifeId; - else - killstreakLifeId = attacker.lifeId; - - if ( killstreakLifeId == attacker.pers["deaths"] && !level.scriptIncKillstreak && (level.nukeIncreasesStreak || sWeapon != "nuke_mp") ) - attacker.pers["cur_kill_streak"]++; - break; - default: - if( !level.scriptIncKillstreak ) - attacker.pers["cur_kill_streak"]++; - break; + break; + } } } else { - if( !level.scriptIncKillstreak ) - attacker.pers["cur_kill_streak"]++; + attacker.pers["cur_kill_streak"]++; } attacker setPlayerStatIfGreater( "killstreak", attacker.pers["cur_kill_streak"] ); diff --git a/userraw/maps/mp/gametypes/_gamelogic.gsc b/userraw/maps/mp/gametypes/_gamelogic.gsc index a887dc7..ede540e 100644 --- a/userraw/maps/mp/gametypes/_gamelogic.gsc +++ b/userraw/maps/mp/gametypes/_gamelogic.gsc @@ -1391,6 +1391,7 @@ Callback_StartGameType() setDvarIfUninitialized( "scr_voting_bots", false ); setDvarIfUninitialized( "scr_nuke_increases_streak", true ); setDvarIfUninitialized( "headshot_detach_head", false ); + setDvarIfUninitialized( "scr_killstreaks_increase_killstreak", true ); level.extraDamageFeedback = getDvarInt("scr_extraDamageFeedback"); level.allowPrintDamage = getDvarInt("scr_printDamage"); @@ -1409,6 +1410,7 @@ Callback_StartGameType() level.botsVote = getDvarInt( "scr_voting_bots" ); level.headShotDetachHead = getDvarInt("headshot_detach_head"); level.nukeIncreasesStreak = getDvarInt( "scr_nuke_increases_streak" ); + level.killstreaksIncreaseKillstreak = getDvarInt( "scr_killstreaks_increase_killstreak" ); if ( level.voting ) level.votingMapsTok = randomizeMaps();