checked 11 patch_mp mp scripts

checked _acousticsensor.gsc, _ballistic_knife.gsc, _bouncingbetty.gsc, _empgrenade.gsc, _entityheadicons.gsc, _flashgrenades.gsc, _mgturret.gsc, _scrambler.gsc, _sensor_grenade.gsc, _teargrenades.gsc, and _treadfx.gsc.
This commit is contained in:
JezuzLizard
2020-07-10 08:00:00 -07:00
parent 9cbb7470c3
commit 7817efc738
12 changed files with 440 additions and 502 deletions

View File

@ -1,3 +1,4 @@
//checked includes match cerberus output
#include maps/mp/gametypes/_damagefeedback;
#include maps/mp/gametypes/_globallogic_player;
#include maps/mp/_utility;
@ -8,12 +9,12 @@
#include maps/mp/gametypes/_weaponobjects;
#include common_scripts/utility;
init()
init() //checked matches cerberus output
{
level.isplayertrackedfunc = ::isplayertracked;
}
createsensorgrenadewatcher()
createsensorgrenadewatcher() //checked matches cerberus output
{
watcher = self maps/mp/gametypes/_weaponobjects::createuseweaponobjectwatcher( "sensor_grenade", "sensor_grenade_mp", self.team );
watcher.headicon = 0;
@ -26,7 +27,7 @@ createsensorgrenadewatcher()
watcher.enemydestroy = 1;
}
onspawnsensorgrenade( watcher, player )
onspawnsensorgrenade( watcher, player ) //checked matches cerberus output
{
self endon( "death" );
self thread maps/mp/gametypes/_weaponobjects::onspawnuseweaponobject( watcher, player );
@ -40,7 +41,7 @@ onspawnsensorgrenade( watcher, player )
self thread watchforexplode( player );
}
watchforstationary( owner )
watchforstationary( owner ) //checked matches cerberus output
{
self endon( "death" );
self endon( "hacked" );
@ -51,7 +52,7 @@ watchforstationary( owner )
checkfortracking( self.origin );
}
watchforexplode( owner )
watchforexplode( owner ) //checked matches cerberus output
{
self endon( "hacked" );
self endon( "delete" );
@ -61,18 +62,15 @@ watchforexplode( owner )
checkfortracking( origin + ( 0, 0, 1 ) );
}
checkfortracking( origin )
checkfortracking( origin ) //checked changed to match cerberus output
{
if ( isDefined( self.owner ) == 0 )
{
return;
}
players = level.players;
_a85 = level.players;
_k85 = getFirstArrayKey( _a85 );
while ( isDefined( _k85 ) )
foreach ( player in level.players )
{
player = _a85[ _k85 ];
if ( player isenemyplayer( self.owner ) )
{
if ( !player hasperk( "specialty_nomotionsensor" ) )
@ -87,11 +85,10 @@ checkfortracking( origin )
}
}
}
_k85 = getNextArrayKey( _a85, _k85 );
}
}
tracksensorgrenadevictim( victim )
tracksensorgrenadevictim( victim ) //checked matches cerberus output
{
if ( !isDefined( self.sensorgrenadedata ) )
{
@ -103,7 +100,7 @@ tracksensorgrenadevictim( victim )
}
}
isplayertracked( player, time )
isplayertracked( player, time ) //checked matches cerberus output
{
playertracked = 0;
if ( isDefined( self.sensorgrenadedata ) && isDefined( self.sensorgrenadedata[ player.clientid ] ) )
@ -116,7 +113,7 @@ isplayertracked( player, time )
return playertracked;
}
sensorgrenadedestroyed( attacker, weaponname )
sensorgrenadedestroyed( attacker, weaponname ) //checked matches cerberus output
{
from_emp = maps/mp/killstreaks/_emp::isempweapon( weaponname );
if ( !from_emp )
@ -135,7 +132,7 @@ sensorgrenadedestroyed( attacker, weaponname )
self delete();
}
watchsensorgrenadedamage( watcher )
watchsensorgrenadedamage( watcher ) //checked changed to match beta dump
{
self endon( "death" );
self endon( "hacked" );
@ -145,81 +142,77 @@ watchsensorgrenadedamage( watcher )
{
self.damagetaken = 0;
}
for ( ;; )
while ( 1 )
{
while ( 1 )
self.maxhealth = 100000;
self.health = self.maxhealth;
self waittill( "damage", damage, attacker, direction, point, type, tagname, modelname, partname, weaponname, idflags );
if ( !isDefined( attacker ) || !isplayer( attacker ) )
{
self.maxhealth = 100000;
self.health = self.maxhealth;
self waittill( "damage", damage, attacker, direction, point, type, tagname, modelname, partname, weaponname, idflags );
if ( !isDefined( attacker ) || !isplayer( attacker ) )
continue;
}
if ( level.teambased && isplayer( attacker ) )
{
if ( !level.hardcoremode && self.owner.team == attacker.pers[ "team" ] && self.owner != attacker )
{
continue;
}
while ( level.teambased && isplayer( attacker ) )
}
if ( isDefined( weaponname ) )
{
switch( weaponname )
{
while ( !level.hardcoremode && self.owner.team == attacker.pers[ "team" ] && self.owner != attacker )
{
case "concussion_grenade_mp":
case "flash_grenade_mp":
if ( watcher.stuntime > 0 )
{
self thread maps/mp/gametypes/_weaponobjects::stunstart( watcher, watcher.stuntime );
}
if ( level.teambased && self.owner.team != attacker.team )
{
if ( maps/mp/gametypes/_globallogic_player::dodamagefeedback( weaponname, attacker ) )
{
attacker maps/mp/gametypes/_damagefeedback::updatedamagefeedback();
}
}
else
{
if ( !level.teambased && self.owner != attacker )
{
if ( maps/mp/gametypes/_globallogic_player::dodamagefeedback( weaponname, attacker ) )
{
attacker maps/mp/gametypes/_damagefeedback::updatedamagefeedback();
}
}
}
continue;
}
}
if ( isDefined( weaponname ) )
{
switch( weaponname )
{
case "concussion_grenade_mp":
case "flash_grenade_mp":
if ( watcher.stuntime > 0 )
{
self thread maps/mp/gametypes/_weaponobjects::stunstart( watcher, watcher.stuntime );
}
if ( level.teambased && self.owner.team != attacker.team )
{
if ( maps/mp/gametypes/_globallogic_player::dodamagefeedback( weaponname, attacker ) )
{
attacker maps/mp/gametypes/_damagefeedback::updatedamagefeedback();
}
continue;
}
else
{
if ( !level.teambased && self.owner != attacker )
{
if ( maps/mp/gametypes/_globallogic_player::dodamagefeedback( weaponname, attacker ) )
{
attacker maps/mp/gametypes/_damagefeedback::updatedamagefeedback();
}
}
}
case "emp_grenade_mp":
damage = damagemax;
default:
if ( maps/mp/gametypes/_globallogic_player::dodamagefeedback( weaponname, attacker ) )
{
attacker maps/mp/gametypes/_damagefeedback::updatedamagefeedback();
}
case "emp_grenade_mp":
damage = damagemax;
default:
if ( maps/mp/gametypes/_globallogic_player::dodamagefeedback( weaponname, attacker ) )
{
attacker maps/mp/gametypes/_damagefeedback::updatedamagefeedback();
}
break;
}
}
else
{
weaponname = "";
}
if ( type == "MOD_MELEE" )
{
self.damagetaken = damagemax;
}
else
{
self.damagetaken += damage;
}
if ( self.damagetaken >= damagemax )
{
watcher thread maps/mp/gametypes/_weaponobjects::waitanddetonate( self, 0, attacker, weaponname );
return;
}
break;
}
}
else
{
weaponname = "";
}
if ( type == "MOD_MELEE" )
{
self.damagetaken = damagemax;
}
else
{
self.damagetaken += damage;
}
if ( self.damagetaken >= damagemax )
{
watcher thread maps/mp/gametypes/_weaponobjects::waitanddetonate( self, 0, attacker, weaponname );
return;
}
}
}