chore: disable killcams if attacker is a bot
All checks were successful
lint / Lint GSC files (push) Successful in 28s
All checks were successful
lint / Lint GSC files (push) Successful in 28s
This commit is contained in:
@@ -765,7 +765,7 @@ playerkilled_internal( var_0, var_1, var_2, var_3, var_4, var_5, var_6, var_7, v
|
|||||||
if ( var_4 != "MOD_SUICIDE" && !( !isdefined( var_1 ) || var_1.classname == "trigger_hurt" || var_1.classname == "worldspawn" || var_1 == var_2 ) )
|
if ( var_4 != "MOD_SUICIDE" && !( !isdefined( var_1 ) || var_1.classname == "trigger_hurt" || var_1.classname == "worldspawn" || var_1 == var_2 ) )
|
||||||
recordfinalkillcam( 5.0, var_2, var_1, var_30, var_31, var_32, var_5, var_12, var_8, var_4, "normal", var_33 );
|
recordfinalkillcam( 5.0, var_2, var_1, var_30, var_31, var_32, var_5, var_12, var_8, var_4, "normal", var_33 );
|
||||||
|
|
||||||
if ( maps\mp\gametypes\_killcam::killcamvalid( var_2, var_24 ) )
|
if ( maps\mp\gametypes\_killcam::killcamvalid( var_2, var_1, var_24 ) )
|
||||||
{
|
{
|
||||||
var_35 = maps\mp\gametypes\_playerlogic::timeuntilspawn( 1 );
|
var_35 = maps\mp\gametypes\_playerlogic::timeuntilspawn( 1 );
|
||||||
var_36 = maps\mp\gametypes\_gamelogic::timeuntilroundend();
|
var_36 = maps\mp\gametypes\_gamelogic::timeuntilroundend();
|
||||||
@@ -793,7 +793,7 @@ playerkilled_internal( var_0, var_1, var_2, var_3, var_4, var_5, var_6, var_7, v
|
|||||||
|
|
||||||
if ( isdefined( self.streamweapons ) && self.streamweapons.size > 0 )
|
if ( isdefined( self.streamweapons ) && self.streamweapons.size > 0 )
|
||||||
{
|
{
|
||||||
while ( maps\mp\gametypes\_killcam::killcamvalid( var_2, var_24 ) && isplayer( self ) && isplayer( var_1 ) && !self hasloadedcustomizationplayerview( var_1, self.streamweapons ) && gettime() < var_39 )
|
while ( maps\mp\gametypes\_killcam::killcamvalid( var_2, var_1, var_24 ) && isplayer( self ) && isplayer( var_1 ) && !self hasloadedcustomizationplayerview( var_1, self.streamweapons ) && gettime() < var_39 )
|
||||||
waitframe();
|
waitframe();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -804,7 +804,7 @@ playerkilled_internal( var_0, var_1, var_2, var_3, var_4, var_5, var_6, var_7, v
|
|||||||
self.respawntimerstarttime = gettime();
|
self.respawntimerstarttime = gettime();
|
||||||
var_41 = gettime() >= var_39;
|
var_41 = gettime() >= var_39;
|
||||||
|
|
||||||
if ( maps\mp\gametypes\_killcam::killcamvalid( var_2, var_24 ) && !var_41 )
|
if ( maps\mp\gametypes\_killcam::killcamvalid( var_2, var_1, var_24 ) && !var_41 )
|
||||||
{
|
{
|
||||||
var_42 = !( maps\mp\_utility::getgametypenumlives() && !var_2.pers["lives"] );
|
var_42 = !( maps\mp\_utility::getgametypenumlives() && !var_2.pers["lives"] );
|
||||||
var_35 = maps\mp\gametypes\_playerlogic::timeuntilspawn( 1 );
|
var_35 = maps\mp\gametypes\_playerlogic::timeuntilspawn( 1 );
|
||||||
@@ -1229,20 +1229,23 @@ getkillcambuffertime()
|
|||||||
return 15;
|
return 15;
|
||||||
}
|
}
|
||||||
|
|
||||||
finalkillcamvalid( var_0, var_1, var_2, var_3 )
|
finalkillcamvalid( victim, attacker, timegameended, timerecorded )
|
||||||
{
|
{
|
||||||
var_4 = isdefined( var_0 ) && isdefined( var_1 ) && !maps\mp\_utility::practiceroundgame();
|
valid = isdefined( victim ) && isdefined( attacker ) && !maps\mp\_utility::practiceroundgame() && !isai( attacker );
|
||||||
|
|
||||||
if ( var_4 )
|
if ( valid )
|
||||||
{
|
{
|
||||||
var_5 = getkillcambuffertime();
|
// if the killcam happened longer than killCamBufferTime seconds ago, don't show it
|
||||||
var_6 = var_2 - var_3;
|
killcambuffertime = getkillcambuffertime();
|
||||||
|
killcamoffsettime = timegameended - timerecorded;
|
||||||
|
|
||||||
if ( var_6 <= var_5 )
|
if ( killcamoffsettime <= killcambuffertime )
|
||||||
return 1;
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
endfinalkillcam()
|
endfinalkillcam()
|
||||||
|
@@ -2,6 +2,9 @@ main()
|
|||||||
{
|
{
|
||||||
replacefunc( maps\mp\_utility::getlastlivingplayer, ::getlastlivingplayer_stub );
|
replacefunc( maps\mp\_utility::getlastlivingplayer, ::getlastlivingplayer_stub );
|
||||||
replacefunc( maps\mp\gametypes\common_sd_sr::ononeleftevent, ::ononeleftevent_stub );
|
replacefunc( maps\mp\gametypes\common_sd_sr::ononeleftevent, ::ononeleftevent_stub );
|
||||||
|
|
||||||
|
// gitea#5 workaround
|
||||||
|
replacefunc( maps\mp\gametypes\_killcam::killcamvalid, ::killcamvalid_stub );
|
||||||
}
|
}
|
||||||
|
|
||||||
getlastlivingplayer_stub( team )
|
getlastlivingplayer_stub( team )
|
||||||
@@ -36,3 +39,12 @@ ononeleftevent_stub( team )
|
|||||||
|
|
||||||
last_player thread maps\mp\gametypes\common_sd_sr::givelastonteamwarning();
|
last_player thread maps\mp\gametypes\common_sd_sr::givelastonteamwarning();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
killcamvalid_stub( victim, attacker, dokillcam )
|
||||||
|
{
|
||||||
|
return dokillcam && level.killcam &&
|
||||||
|
!( isdefined( victim.cancelkillcam ) && victim.cancelkillcam ) &&
|
||||||
|
game[ "state" ] == "playing" && !victim maps\mp\_utility::isusingremote() &&
|
||||||
|
!level.showingfinalkillcam &&
|
||||||
|
!isai( victim ) && !isai( attacker );
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user