mirror of
https://github.com/JezuzLizard/Recompilable-gscs-for-BO2-zombies-and-multiplayer.git
synced 2025-07-08 16:27:50 -05:00
uploading 119 patch_mp scripts and 23 patch_zm scripts as a baseline
This commit is contained in:
588
patch_mp/maps/mp/_burnplayer.gsc
Normal file
588
patch_mp/maps/mp/_burnplayer.gsc
Normal file
@ -0,0 +1,588 @@
|
||||
#include maps/mp/gametypes/_damagefeedback;
|
||||
#include maps/mp/gametypes/_globallogic_player;
|
||||
#include maps/mp/_utility;
|
||||
#include common_scripts/utility;
|
||||
|
||||
initburnplayer()
|
||||
{
|
||||
level.flamedamage = 15;
|
||||
level.flameburntime = 1,5;
|
||||
}
|
||||
|
||||
hitwithincendiary( attacker, inflictor, mod )
|
||||
{
|
||||
if ( isDefined( self.burning ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
self starttanning();
|
||||
self thread waitthenstoptanning( level.flameburntime );
|
||||
self endon( "disconnect" );
|
||||
attacker endon( "disconnect" );
|
||||
waittillframeend;
|
||||
self.burning = 1;
|
||||
self thread burn_blocker();
|
||||
tagarray = [];
|
||||
if ( isai( self ) )
|
||||
{
|
||||
tagarray[ tagarray.size ] = "J_Wrist_RI";
|
||||
tagarray[ tagarray.size ] = "J_Wrist_LE";
|
||||
tagarray[ tagarray.size ] = "J_Elbow_LE";
|
||||
tagarray[ tagarray.size ] = "J_Elbow_RI";
|
||||
tagarray[ tagarray.size ] = "J_Knee_RI";
|
||||
tagarray[ tagarray.size ] = "J_Knee_LE";
|
||||
tagarray[ tagarray.size ] = "J_Ankle_RI";
|
||||
tagarray[ tagarray.size ] = "J_Ankle_LE";
|
||||
}
|
||||
else
|
||||
{
|
||||
tagarray[ tagarray.size ] = "J_Wrist_RI";
|
||||
tagarray[ tagarray.size ] = "J_Wrist_LE";
|
||||
tagarray[ tagarray.size ] = "J_Elbow_LE";
|
||||
tagarray[ tagarray.size ] = "J_Elbow_RI";
|
||||
tagarray[ tagarray.size ] = "J_Knee_RI";
|
||||
tagarray[ tagarray.size ] = "J_Knee_LE";
|
||||
tagarray[ tagarray.size ] = "J_Ankle_RI";
|
||||
tagarray[ tagarray.size ] = "J_Ankle_LE";
|
||||
if ( isplayer( self ) && self.health > 0 )
|
||||
{
|
||||
self setburn( 3 );
|
||||
}
|
||||
}
|
||||
while ( isDefined( level._effect[ "character_fire_death_torso" ] ) )
|
||||
{
|
||||
arrayindex = 0;
|
||||
while ( arrayindex < tagarray.size )
|
||||
{
|
||||
playfxontag( level._effect[ "character_fire_death_sm" ], self, tagarray[ arrayindex ] );
|
||||
arrayindex++;
|
||||
}
|
||||
}
|
||||
if ( isai( self ) )
|
||||
{
|
||||
playfxontag( level._effect[ "character_fire_death_torso" ], self, "J_Spine1" );
|
||||
}
|
||||
else
|
||||
{
|
||||
playfxontag( level._effect[ "character_fire_death_torso" ], self, "J_SpineLower" );
|
||||
}
|
||||
if ( !isalive( self ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
if ( isplayer( self ) )
|
||||
{
|
||||
self thread watchforwater( 7 );
|
||||
self thread watchfordeath();
|
||||
}
|
||||
}
|
||||
|
||||
hitwithnapalmstrike( attacker, inflictor, mod )
|
||||
{
|
||||
if ( isDefined( self.burning ) || self hasperk( "specialty_fireproof" ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
self starttanning();
|
||||
self thread waitthenstoptanning( level.flameburntime );
|
||||
self endon( "disconnect" );
|
||||
attacker endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
if ( isDefined( self.burning ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
self thread burn_blocker();
|
||||
waittillframeend;
|
||||
self.burning = 1;
|
||||
self thread burn_blocker();
|
||||
tagarray = [];
|
||||
if ( isai( self ) )
|
||||
{
|
||||
tagarray[ tagarray.size ] = "J_Wrist_RI";
|
||||
tagarray[ tagarray.size ] = "J_Wrist_LE";
|
||||
tagarray[ tagarray.size ] = "J_Elbow_LE";
|
||||
tagarray[ tagarray.size ] = "J_Elbow_RI";
|
||||
tagarray[ tagarray.size ] = "J_Knee_RI";
|
||||
tagarray[ tagarray.size ] = "J_Knee_LE";
|
||||
tagarray[ tagarray.size ] = "J_Ankle_RI";
|
||||
tagarray[ tagarray.size ] = "J_Ankle_LE";
|
||||
}
|
||||
else
|
||||
{
|
||||
tagarray[ tagarray.size ] = "J_Wrist_RI";
|
||||
tagarray[ tagarray.size ] = "J_Wrist_LE";
|
||||
tagarray[ tagarray.size ] = "J_Elbow_LE";
|
||||
tagarray[ tagarray.size ] = "J_Elbow_RI";
|
||||
tagarray[ tagarray.size ] = "J_Knee_RI";
|
||||
tagarray[ tagarray.size ] = "J_Knee_LE";
|
||||
tagarray[ tagarray.size ] = "J_Ankle_RI";
|
||||
tagarray[ tagarray.size ] = "J_Ankle_LE";
|
||||
if ( isplayer( self ) )
|
||||
{
|
||||
self setburn( 3 );
|
||||
}
|
||||
}
|
||||
while ( isDefined( level._effect[ "character_fire_death_sm" ] ) )
|
||||
{
|
||||
arrayindex = 0;
|
||||
while ( arrayindex < tagarray.size )
|
||||
{
|
||||
playfxontag( level._effect[ "character_fire_death_sm" ], self, tagarray[ arrayindex ] );
|
||||
arrayindex++;
|
||||
}
|
||||
}
|
||||
if ( isDefined( level._effect[ "character_fire_death_torso" ] ) )
|
||||
{
|
||||
playfxontag( level._effect[ "character_fire_death_torso" ], self, "J_SpineLower" );
|
||||
}
|
||||
if ( !isalive( self ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
self thread donapalmstrikedamage( attacker, inflictor, mod );
|
||||
if ( isplayer( self ) )
|
||||
{
|
||||
self thread watchforwater( 7 );
|
||||
self thread watchfordeath();
|
||||
}
|
||||
}
|
||||
|
||||
walkedthroughflames( attacker, inflictor, weapon )
|
||||
{
|
||||
if ( isDefined( self.burning ) || self hasperk( "specialty_fireproof" ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
self starttanning();
|
||||
self thread waitthenstoptanning( level.flameburntime );
|
||||
self endon( "disconnect" );
|
||||
waittillframeend;
|
||||
self.burning = 1;
|
||||
self thread burn_blocker();
|
||||
tagarray = [];
|
||||
if ( isai( self ) )
|
||||
{
|
||||
tagarray[ tagarray.size ] = "J_Wrist_RI";
|
||||
tagarray[ tagarray.size ] = "J_Wrist_LE";
|
||||
tagarray[ tagarray.size ] = "J_Elbow_LE";
|
||||
tagarray[ tagarray.size ] = "J_Elbow_RI";
|
||||
tagarray[ tagarray.size ] = "J_Knee_RI";
|
||||
tagarray[ tagarray.size ] = "J_Knee_LE";
|
||||
tagarray[ tagarray.size ] = "J_Ankle_RI";
|
||||
tagarray[ tagarray.size ] = "J_Ankle_LE";
|
||||
}
|
||||
else
|
||||
{
|
||||
tagarray[ tagarray.size ] = "J_Knee_RI";
|
||||
tagarray[ tagarray.size ] = "J_Knee_LE";
|
||||
tagarray[ tagarray.size ] = "J_Ankle_RI";
|
||||
tagarray[ tagarray.size ] = "J_Ankle_LE";
|
||||
}
|
||||
while ( isDefined( level._effect[ "character_fire_player_sm" ] ) )
|
||||
{
|
||||
arrayindex = 0;
|
||||
while ( arrayindex < tagarray.size )
|
||||
{
|
||||
playfxontag( level._effect[ "character_fire_player_sm" ], self, tagarray[ arrayindex ] );
|
||||
arrayindex++;
|
||||
}
|
||||
}
|
||||
if ( !isalive( self ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
self thread doflamedamage( attacker, inflictor, weapon, 1 );
|
||||
if ( isplayer( self ) )
|
||||
{
|
||||
self thread watchforwater( 7 );
|
||||
self thread watchfordeath();
|
||||
}
|
||||
}
|
||||
|
||||
burnedwithflamethrower( attacker, inflictor, weapon )
|
||||
{
|
||||
if ( isDefined( self.burning ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
self starttanning();
|
||||
self thread waitthenstoptanning( level.flameburntime );
|
||||
self endon( "disconnect" );
|
||||
waittillframeend;
|
||||
self.burning = 1;
|
||||
self thread burn_blocker();
|
||||
tagarray = [];
|
||||
if ( isai( self ) )
|
||||
{
|
||||
tagarray[ 0 ] = "J_Spine1";
|
||||
tagarray[ 1 ] = "J_Elbow_LE";
|
||||
tagarray[ 2 ] = "J_Elbow_RI";
|
||||
tagarray[ 3 ] = "J_Head";
|
||||
tagarray[ 4 ] = "j_knee_ri";
|
||||
tagarray[ 5 ] = "j_knee_le";
|
||||
}
|
||||
else
|
||||
{
|
||||
tagarray[ 0 ] = "J_Elbow_RI";
|
||||
tagarray[ 1 ] = "j_knee_ri";
|
||||
tagarray[ 2 ] = "j_knee_le";
|
||||
if ( isplayer( self ) && self.health > 0 )
|
||||
{
|
||||
self setburn( 3 );
|
||||
}
|
||||
}
|
||||
if ( isplayer( self ) && isalive( self ) )
|
||||
{
|
||||
self thread watchforwater( 7 );
|
||||
self thread watchfordeath();
|
||||
}
|
||||
while ( isDefined( level._effect[ "character_fire_player_sm" ] ) )
|
||||
{
|
||||
arrayindex = 0;
|
||||
while ( arrayindex < tagarray.size )
|
||||
{
|
||||
playfxontag( level._effect[ "character_fire_player_sm" ], self, tagarray[ arrayindex ] );
|
||||
arrayindex++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
burnedwithdragonsbreath( attacker, inflictor, weapon )
|
||||
{
|
||||
if ( isDefined( self.burning ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
self starttanning();
|
||||
self thread waitthenstoptanning( level.flameburntime );
|
||||
self endon( "disconnect" );
|
||||
waittillframeend;
|
||||
self.burning = 1;
|
||||
self thread burn_blocker();
|
||||
tagarray = [];
|
||||
if ( isai( self ) )
|
||||
{
|
||||
tagarray[ 0 ] = "J_Spine1";
|
||||
tagarray[ 1 ] = "J_Elbow_LE";
|
||||
tagarray[ 2 ] = "J_Elbow_RI";
|
||||
tagarray[ 3 ] = "J_Head";
|
||||
tagarray[ 4 ] = "j_knee_ri";
|
||||
tagarray[ 5 ] = "j_knee_le";
|
||||
}
|
||||
else
|
||||
{
|
||||
tagarray[ 0 ] = "j_spinelower";
|
||||
tagarray[ 1 ] = "J_Elbow_RI";
|
||||
tagarray[ 2 ] = "j_knee_ri";
|
||||
tagarray[ 3 ] = "j_knee_le";
|
||||
if ( isplayer( self ) && self.health > 0 )
|
||||
{
|
||||
self setburn( 3 );
|
||||
}
|
||||
}
|
||||
if ( isplayer( self ) && isalive( self ) )
|
||||
{
|
||||
self thread watchforwater( 7 );
|
||||
self thread watchfordeath();
|
||||
return;
|
||||
}
|
||||
while ( isDefined( level._effect[ "character_fire_player_sm" ] ) )
|
||||
{
|
||||
arrayindex = 0;
|
||||
while ( arrayindex < tagarray.size )
|
||||
{
|
||||
playfxontag( level._effect[ "character_fire_player_sm" ], self, tagarray[ arrayindex ] );
|
||||
arrayindex++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
burnedtodeath()
|
||||
{
|
||||
self.burning = 1;
|
||||
self thread burn_blocker();
|
||||
self starttanning();
|
||||
self thread doburningsound();
|
||||
self thread waitthenstoptanning( level.flameburntime );
|
||||
}
|
||||
|
||||
watchfordeath()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self notify( "watching for death while on fire" );
|
||||
self endon( "watching for death while on fire" );
|
||||
self waittill( "death" );
|
||||
if ( isplayer( self ) )
|
||||
{
|
||||
self _stopburning();
|
||||
}
|
||||
self.burning = undefined;
|
||||
}
|
||||
|
||||
watchforwater( time )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self notify( "watching for water" );
|
||||
self endon( "watching for water" );
|
||||
wait 0,1;
|
||||
looptime = 0,1;
|
||||
while ( time > 0 )
|
||||
{
|
||||
wait looptime;
|
||||
if ( self depthofplayerinwater() > 0 )
|
||||
{
|
||||
finish_burn();
|
||||
time = 0;
|
||||
}
|
||||
time -= looptime;
|
||||
}
|
||||
}
|
||||
|
||||
finish_burn()
|
||||
{
|
||||
self notify( "stop burn damage" );
|
||||
tagarray = [];
|
||||
tagarray[ 0 ] = "j_spinelower";
|
||||
tagarray[ 1 ] = "J_Elbow_RI";
|
||||
tagarray[ 2 ] = "J_Head";
|
||||
tagarray[ 3 ] = "j_knee_ri";
|
||||
tagarray[ 4 ] = "j_knee_le";
|
||||
while ( isDefined( level._effect[ "fx_fire_player_sm_smk_2sec" ] ) )
|
||||
{
|
||||
arrayindex = 0;
|
||||
while ( arrayindex < tagarray.size )
|
||||
{
|
||||
playfxontag( level._effect[ "fx_fire_player_sm_smk_2sec" ], self, tagarray[ arrayindex ] );
|
||||
arrayindex++;
|
||||
}
|
||||
}
|
||||
self.burning = undefined;
|
||||
self _stopburning();
|
||||
self.ingroundnapalm = 0;
|
||||
}
|
||||
|
||||
donapalmstrikedamage( attacker, inflictor, mod )
|
||||
{
|
||||
if ( isai( self ) )
|
||||
{
|
||||
dodognapalmstrikedamage( attacker, inflictor, mod );
|
||||
return;
|
||||
}
|
||||
self endon( "death" );
|
||||
self endon( "disconnect" );
|
||||
attacker endon( "disconnect" );
|
||||
self endon( "stop burn damage" );
|
||||
while ( isDefined( level.napalmstrikedamage ) && isDefined( self ) && self depthofplayerinwater() < 1 )
|
||||
{
|
||||
self dodamage( level.napalmstrikedamage, self.origin, attacker, attacker, "none", mod, 0, "napalm_mp" );
|
||||
wait 1;
|
||||
}
|
||||
}
|
||||
|
||||
donapalmgrounddamage( attacker, inflictor, mod )
|
||||
{
|
||||
if ( self hasperk( "specialty_fireproof" ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
if ( level.teambased )
|
||||
{
|
||||
if ( attacker != self && attacker.team == self.team )
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
if ( isai( self ) )
|
||||
{
|
||||
dodognapalmgrounddamage( attacker, inflictor, mod );
|
||||
return;
|
||||
}
|
||||
if ( isDefined( self.burning ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
self thread burn_blocker();
|
||||
self endon( "death" );
|
||||
self endon( "disconnect" );
|
||||
attacker endon( "disconnect" );
|
||||
self endon( "stop burn damage" );
|
||||
if ( isDefined( level.groundburntime ) )
|
||||
{
|
||||
if ( getDvar( #"6EC13261" ) == "" )
|
||||
{
|
||||
waittime = level.groundburntime;
|
||||
}
|
||||
else
|
||||
{
|
||||
waittime = getDvarFloat( #"6EC13261" );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
waittime = 100;
|
||||
}
|
||||
self walkedthroughflames( attacker, inflictor, "napalm_mp" );
|
||||
self.ingroundnapalm = 1;
|
||||
while ( isDefined( level.napalmgrounddamage ) )
|
||||
{
|
||||
if ( getDvar( #"3FFA6673" ) == "" )
|
||||
{
|
||||
napalmgrounddamage = level.napalmgrounddamage;
|
||||
}
|
||||
else
|
||||
{
|
||||
napalmgrounddamage = getDvarFloat( #"3FFA6673" );
|
||||
}
|
||||
while ( isDefined( self ) && isDefined( inflictor ) && self depthofplayerinwater() < 1 && waittime > 0 )
|
||||
{
|
||||
self dodamage( level.napalmgrounddamage, self.origin, attacker, inflictor, "none", mod, 0, "napalm_mp" );
|
||||
if ( isplayer( self ) )
|
||||
{
|
||||
self setburn( 1,1 );
|
||||
}
|
||||
wait 1;
|
||||
waittime -= 1;
|
||||
}
|
||||
}
|
||||
self.ingroundnapalm = 0;
|
||||
}
|
||||
|
||||
dodognapalmstrikedamage( attacker, inflictor, mod )
|
||||
{
|
||||
attacker endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
self endon( "stop burn damage" );
|
||||
while ( isDefined( level.napalmstrikedamage ) && isDefined( self ) )
|
||||
{
|
||||
self dodamage( level.napalmstrikedamage, self.origin, attacker, attacker, "none", mod );
|
||||
wait 1;
|
||||
}
|
||||
}
|
||||
|
||||
dodognapalmgrounddamage( attacker, inflictor, mod )
|
||||
{
|
||||
attacker endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
self endon( "stop burn damage" );
|
||||
while ( isDefined( level.napalmgrounddamage ) && isDefined( self ) )
|
||||
{
|
||||
self dodamage( level.napalmgrounddamage, self.origin, attacker, attacker, "none", mod, 0, "napalm_mp" );
|
||||
wait 1;
|
||||
}
|
||||
}
|
||||
|
||||
burn_blocker()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
wait 3;
|
||||
self.burning = undefined;
|
||||
}
|
||||
|
||||
doflamedamage( attacker, inflictor, weapon, time )
|
||||
{
|
||||
if ( isai( self ) )
|
||||
{
|
||||
dodogflamedamage( attacker, inflictor, weapon, time );
|
||||
return;
|
||||
}
|
||||
if ( isDefined( attacker ) )
|
||||
{
|
||||
attacker endon( "disconnect" );
|
||||
}
|
||||
self endon( "death" );
|
||||
self endon( "disconnect" );
|
||||
self endon( "stop burn damage" );
|
||||
self thread doburningsound();
|
||||
self notify( "snd_burn_scream" );
|
||||
wait_time = 1;
|
||||
while ( isDefined( level.flamedamage ) && isDefined( self ) && self depthofplayerinwater() < 1 && time > 0 )
|
||||
{
|
||||
if ( isDefined( attacker ) && isDefined( inflictor ) && isDefined( weapon ) )
|
||||
{
|
||||
if ( maps/mp/gametypes/_globallogic_player::dodamagefeedback( weapon, attacker ) )
|
||||
{
|
||||
attacker maps/mp/gametypes/_damagefeedback::updatedamagefeedback();
|
||||
}
|
||||
self dodamage( level.flamedamage, self.origin, attacker, inflictor, "none", "MOD_BURNED", 0, weapon );
|
||||
}
|
||||
else
|
||||
{
|
||||
self dodamage( level.flamedamage, self.origin );
|
||||
}
|
||||
wait wait_time;
|
||||
time -= wait_time;
|
||||
}
|
||||
self thread finish_burn();
|
||||
}
|
||||
|
||||
dodogflamedamage( attacker, inflictor, weapon, time )
|
||||
{
|
||||
if ( isDefined( attacker ) || !isDefined( inflictor ) && !isDefined( weapon ) )
|
||||
{
|
||||
return;
|
||||
}
|
||||
attacker endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
self endon( "stop burn damage" );
|
||||
self thread doburningsound();
|
||||
wait_time = 1;
|
||||
while ( isDefined( level.flamedamage ) && isDefined( self ) && time > 0 )
|
||||
{
|
||||
self dodamage( level.flamedamage, self.origin, attacker, inflictor, "none", "MOD_BURNED", 0, weapon );
|
||||
wait wait_time;
|
||||
time -= wait_time;
|
||||
}
|
||||
}
|
||||
|
||||
waitthenstoptanning( time )
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
wait time;
|
||||
self _stopburning();
|
||||
}
|
||||
|
||||
doburningsound()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self endon( "death" );
|
||||
fire_sound_ent = spawn( "script_origin", self.origin );
|
||||
fire_sound_ent linkto( self, "tag_origin", ( 0, 0, 0 ), ( 0, 0, 0 ) );
|
||||
fire_sound_ent playloopsound( "mpl_player_burn_loop" );
|
||||
self thread firesounddeath( fire_sound_ent );
|
||||
self waittill( "StopBurnSound" );
|
||||
if ( isDefined( fire_sound_ent ) )
|
||||
{
|
||||
fire_sound_ent stoploopsound( 0,5 );
|
||||
}
|
||||
wait 0,5;
|
||||
if ( isDefined( fire_sound_ent ) )
|
||||
{
|
||||
fire_sound_ent delete();
|
||||
}
|
||||
/#
|
||||
println( "sound stop burning" );
|
||||
#/
|
||||
}
|
||||
|
||||
_stopburning()
|
||||
{
|
||||
self endon( "disconnect" );
|
||||
self notify( "StopBurnSound" );
|
||||
if ( isDefined( self ) )
|
||||
{
|
||||
self stopburning();
|
||||
}
|
||||
}
|
||||
|
||||
firesounddeath( ent )
|
||||
{
|
||||
ent endon( "death" );
|
||||
self waittill_any( "death", "disconnect" );
|
||||
ent delete();
|
||||
/#
|
||||
println( "sound delete burning" );
|
||||
#/
|
||||
}
|
Reference in New Issue
Block a user