cur rollover dvar

This commit is contained in:
INeedBots 2021-01-12 13:24:21 -06:00
parent 0d589ec89e
commit 226254e501
7 changed files with 47 additions and 10 deletions

View File

@ -579,6 +579,7 @@ set onemanarmyRefillsTubes "1"
// _killstreaks
set scr_killstreak_rollover "1"
set scr_currentRolloverKillstreaksOnlyIncrease "1"
set scr_killstreakHud "1"
set scr_maxKillstreakRollover "1"
set scr_killstreak_mod "0"

View File

@ -579,6 +579,7 @@ set onemanarmyRefillsTubes "1"
// _killstreaks
set scr_killstreak_rollover "1"
set scr_currentRolloverKillstreaksOnlyIncrease "1"
set scr_killstreakHud "1"
set scr_maxKillstreakRollover "1"
set scr_killstreak_mod "0"

View File

@ -579,6 +579,7 @@ set onemanarmyRefillsTubes "1"
// _killstreaks
set scr_killstreak_rollover "1"
set scr_currentRolloverKillstreaksOnlyIncrease "1"
set scr_killstreakHud "1"
set scr_maxKillstreakRollover "1"
set scr_killstreak_mod "0"

View File

@ -1124,6 +1124,7 @@ setKillstreaks( streak1, streak2, streak3 )
}
self.killstreaks = newKillstreaks;
self.maxKillstreakVal = maxVal;
}

View File

@ -251,17 +251,30 @@ handleNormalDeath( lifeId, attacker, eInflictor, sWeapon, sMeansOfDeath )
{
if (level.killstreaksIncreaseKillstreak)
{
toLifeId = attacker.pers["deaths"];
if (isDefined(attacker.maxKillstreakVal) && attacker.maxKillstreakVal > 0 && isDefined(level.rolloverKillstreaksOnlyIncrease) && level.rolloverKillstreaksOnlyIncrease)
{
curRollover = int(attacker.pers["cur_kill_streak"]/attacker.maxKillstreakVal);
if (curRollover > 0)
{
if (curRollover == 1)
toLifeId += 0.75;
else
toLifeId += 1/curRollover;
}
}
switch ( sWeapon )
{
case "ac130_105mm_mp":
case "ac130_40mm_mp":
case "ac130_25mm_mp":
if ( attacker.ac130LifeId == attacker.pers["deaths"] )
if ( attacker.ac130LifeId == toLifeId )
attacker.pers["cur_kill_streak"]++;
break;
case "cobra_player_minigun_mp":
case "weapon_cobra_mk19_mp":
if ( attacker.heliRideLifeId == attacker.pers["deaths"] )
if ( attacker.heliRideLifeId == toLifeId )
attacker.pers["cur_kill_streak"]++;
break;
case "cobra_20mm_mp":
@ -277,7 +290,7 @@ handleNormalDeath( lifeId, attacker, eInflictor, sWeapon, sMeansOfDeath )
else
killstreakLifeId = attacker.lifeId;
if ( killstreakLifeId == attacker.pers["deaths"] && (level.nukeIncreasesStreak || sWeapon != "nuke_mp") )
if ( killstreakLifeId == toLifeId && (level.nukeIncreasesStreak || sWeapon != "nuke_mp") )
attacker.pers["cur_kill_streak"]++;
break;
default:

View File

@ -1295,8 +1295,12 @@ killstreakCrateThink( dropType )
player playLocalSound( "ammo_crate_use" );
curRollover = undefined;
if (isDefined(player.maxKillstreakVal) && player.maxKillstreakVal > 0 && isDefined(level.rolloverKillstreaksOnlyIncrease) && level.rolloverKillstreaksOnlyIncrease)
curRollover = int(player.pers["cur_kill_streak"]/player.maxKillstreakVal);
doesIncreaseKS = level.airdropKillstreaksIncreaseStreak;
player thread maps\mp\killstreaks\_killstreaks::giveKillstreak( self.crateType, doesIncreaseKS, doesIncreaseKS, self.owner );
player thread maps\mp\killstreaks\_killstreaks::giveKillstreak( self.crateType, doesIncreaseKS, doesIncreaseKS, self.owner, curRollover );
player maps\mp\gametypes\_hud_message::killstreakSplashNotify( self.crateType, undefined, "pickup" );
@ -1378,8 +1382,12 @@ deleteCrate()
sentryUseTracker(owner)
{
curRollover = undefined;
if (isDefined(self.maxKillstreakVal) && self.maxKillstreakVal > 0 && isDefined(level.rolloverKillstreaksOnlyIncrease) && level.rolloverKillstreaksOnlyIncrease)
curRollover = int(self.pers["cur_kill_streak"]/self.maxKillstreakVal);
// if ( !self maps\mp\killstreaks\_autosentry::giveSentry( "sentry_minigun" ) )
self maps\mp\killstreaks\_killstreaks::giveKillstreak( "sentry", true, true, owner );
self maps\mp\killstreaks\_killstreaks::giveKillstreak( "sentry", true, true, owner, curRollover );
}

View File

@ -77,6 +77,7 @@ init()
level.killstreakRoundDelay = getIntProperty( "scr_game_killstreakdelay", 8 );
setDvarIfUninitialized( "scr_killstreak_rollover", false );
setDvarIfUninitialized( "scr_currentRolloverKillstreaksOnlyIncrease", false );
setDvarIfUninitialized( "scr_maxKillstreakRollover", 10 );
setDvarIfUninitialized( "scr_killstreakHud", false );
setDvarIfUninitialized( "scr_killstreak_mod", 0 );
@ -89,6 +90,7 @@ init()
level.killstreaksRollOver = getDvarInt("scr_killstreak_rollover");
level.maxKillstreakRollover = getDvarInt("scr_maxKillstreakRollover");
level.rolloverKillstreaksOnlyIncrease = getDvarInt("scr_currentRolloverKillstreaksOnlyIncrease");
level.killstreakHud = getDvarInt("scr_killstreakHud");
level.killStreakMod = getDvarInt( "scr_killstreak_mod" );
level.killstreakPrint = getDvarInt( "scr_killstreak_print" );
@ -525,6 +527,7 @@ checkKillstreakReward( streakCount )
foreach ( streakVal, streakName in self.killStreaks )
{
actualVal = streakVal + level.killStreakMod;
curRollover = 0;
if ( actualVal > streakCount )
break;
@ -556,7 +559,7 @@ checkKillstreakReward( streakCount )
useStreakName = streakName;
}
if ( self tryGiveKillstreak( useStreakName, int(max( actualVal, streakCount )) ) )
if ( self tryGiveKillstreak( useStreakName, int(max( actualVal, streakCount )), curRollover ) )
{
self thread killstreakEarned( useStreakName );
self.pers["lastEarnedStreak"] = streakName;
@ -620,19 +623,19 @@ rewardNotify( streakName, streakVal )
}
tryGiveKillstreak( streakName, streakVal )
tryGiveKillstreak( streakName, streakVal, curRollover )
{
level notify ( "gave_killstreak", streakName );
if ( !level.gameEnded )
self thread rewardNotify( streakName, streakVal );
self giveKillstreak( streakName, streakVal, true );
self giveKillstreak( streakName, streakVal, true, self, curRollover );
return true;
}
giveKillstreak( streakName, isEarned, awardXp, owner )
giveKillstreak( streakName, isEarned, awardXp, owner, curRollover )
{
self endon ( "disconnect" );
@ -655,10 +658,19 @@ giveKillstreak( streakName, isEarned, awardXp, owner )
self.pers["kID"]++;
toLifeId = self.pers["deaths"];
if (level.rolloverKillstreaksOnlyIncrease && isDefined(curRollover) && curRollover > 0)
{
if (curRollover == 1)
toLifeId += 0.75;
else
toLifeId += 1/curRollover;
}
if ( !self.pers["killstreaks"][0].earned )
self.pers["killstreaks"][0].lifeId = -1;
else
self.pers["killstreaks"][0].lifeId = self.pers["deaths"];
self.pers["killstreaks"][0].lifeId = toLifeId;
// probably obsolete unless we bring back the autoshotty
if ( isdefined( level.killstreakSetupFuncs[ streakName ] ) )