Added BO1 ZM rawfiles

This commit is contained in:
InfinityLoader
2024-02-18 17:32:07 -05:00
parent 1a9be4df02
commit b53c55f0c0
934 changed files with 216070 additions and 0 deletions

View File

@ -0,0 +1,336 @@
#include clientscripts\_utility;
#include clientscripts\_fx;
init()
{
if ( GetDvar( #"createfx" ) == "on" )
{
return;
}
if ( !clientscripts\_zombiemode_weapons::is_weapon_included( "freezegun_zm" ) )
{
return;
}
level._ZOMBIE_ACTOR_FLAG_FREEZEGUN_EXTREMITY_DAMAGE_FX = 15;
register_clientflag_callback( "actor", level._ZOMBIE_ACTOR_FLAG_FREEZEGUN_EXTREMITY_DAMAGE_FX, ::freezegun_extremity_damage_fx );
level._ZOMBIE_ACTOR_FLAG_FREEZEGUN_TORSO_DAMAGE_FX = 14;
register_clientflag_callback( "actor", level._ZOMBIE_ACTOR_FLAG_FREEZEGUN_TORSO_DAMAGE_FX, ::freezegun_torso_damage_fx );
level._gib_overload_func = clientscripts\_zombiemode_weap_freezegun::freezegun_gib_override;
level._effect[ "freezegun_shatter" ] = LoadFX( "weapon/freeze_gun/fx_freezegun_shatter" );
level._effect[ "freezegun_crumple" ] = LoadFX( "weapon/freeze_gun/fx_freezegun_crumple" );
level._effect[ "freezegun_damage_torso" ] = LoadFX( "maps/zombie/fx_zombie_freeze_torso" );
level._effect[ "freezegun_damage_sm" ] = LoadFX( "maps/zombie/fx_zombie_freeze_md" );
level._effect[ "freezegun_shatter_upgraded" ] = LoadFX( "weapon/freeze_gun/fx_exp_freezegun_impact" );
level._effect[ "freezegun_crumple_upgraded" ] = LoadFX( "weapon/freeze_gun/fx_exp_freezegun_impact" );
level._effect[ "freezegun_shatter_gib_fx" ] = LoadFX( "weapon/bullet/fx_flesh_gib_fatal_01" );
level._effect[ "freezegun_shatter_gibtrail_fx" ] = LoadFX( "weapon/freeze_gun/fx_trail_freezegun_blood_streak" );
level._effect[ "freezegun_crumple_gib_fx" ] = LoadFX( "system_elements/fx_null" );
level._effect[ "freezegun_crumple_gibtrail_fx" ] = LoadFX( "system_elements/fx_null" );
level thread player_init();
}
player_init()
{
waitforclient( 0 );
players = GetLocalPlayers();
for( i = 0; i < players.size; i++ )
{
player = players[i];
}
}
freezegun_get_gibfx( shatter )
{
if ( shatter )
{
return level._effect[ "freezegun_shatter_gib_fx" ];
}
else
{
return level._effect[ "freezegun_crumple_gib_fx" ];
}
}
freezegun_get_gibtrailfx( shatter )
{
if ( shatter )
{
return level._effect[ "freezegun_shatter_gibtrail_fx" ];
}
else
{
return level._effect[ "freezegun_crumple_gibtrail_fx" ];
}
}
freezegun_get_gibsound( shatter )
{
if ( shatter )
{
return "zmb_death_gibs";
}
else
{
return "zmb_death_gibs";
}
}
freezegun_get_gibforce( tag, force_from_torso, shatter )
{
if ( shatter )
{
start_pos = self.origin;
if ( force_from_torso )
{
start_pos = self gettagorigin( "J_SpineLower" );
}
forward = VectorNormalize( self gettagorigin( tag ) - start_pos );
forward *= RandomIntRange( 600, 1000 );
forward += (0, 0, RandomIntRange( 400, 700 ));
return forward;
}
else
{
return (0, 0, 0);
}
}
freezegun_get_shatter_effect( upgraded )
{
if ( upgraded )
{
return level._effect[ "freezegun_shatter_upgraded" ];
}
else
{
return level._effect[ "freezegun_shatter" ];
}
}
freezegun_get_crumple_effect( upgraded )
{
if ( upgraded )
{
return level._effect[ "freezegun_crumple_upgraded" ];
}
else
{
return level._effect[ "freezegun_crumple" ];
}
}
freezegun_end_extremity_damage_fx( localclientnum, key )
{
deletefx( localclientnum, self.freezegun_extremity_damage_fx_handles[localclientnum][key], false );
}
freezegun_end_all_extremity_damage_fx( localclientnum )
{
keys = getArrayKeys( self.freezegun_extremity_damage_fx_handles[localclientnum] );
for ( i = 0; i < keys.size; i++ )
{
freezegun_end_extremity_damage_fx( localclientnum, keys[i] );
}
}
freezegun_end_extremity_damage_fx_for_all_localclients( key )
{
players = GetLocalPlayers();
for( i = 0; i < players.size; i++ )
{
freezegun_end_extremity_damage_fx( i, key );
}
}
freezegun_play_extremity_damage_fx( localclientnum, fx, key, tag )
{
self.freezegun_extremity_damage_fx_handles[localclientnum][key] = PlayFxOnTag( localclientnum, fx, self, tag );
}
freezegun_play_all_extremity_damage_fx( localclientnum )
{
if ( !IsDefined( self.freezegun_extremity_damage_fx_handles ) )
{
self.freezegun_extremity_damage_fx_handles = [];
}
if ( IsDefined( self.freezegun_extremity_damage_fx_handles[localclientnum] ) )
{
return;
}
self.freezegun_extremity_damage_fx_handles[localclientnum] = [];
if ( !self clientscripts\_zombiemode::has_gibbed_piece( level._ZOMBIE_GIB_PIECE_INDEX_RIGHT_ARM ) )
{
freezegun_play_extremity_damage_fx( localclientnum, level._effect[ "freezegun_damage_sm" ], "right_arm", "J_Elbow_RI" );
}
if ( !self clientscripts\_zombiemode::has_gibbed_piece( level._ZOMBIE_GIB_PIECE_INDEX_LEFT_ARM ) )
{
freezegun_play_extremity_damage_fx( localclientnum, level._effect[ "freezegun_damage_sm" ], "left_arm", "J_Elbow_LE" );
}
if ( !self clientscripts\_zombiemode::has_gibbed_piece( level._ZOMBIE_GIB_PIECE_INDEX_RIGHT_LEG ) )
{
freezegun_play_extremity_damage_fx( localclientnum, level._effect[ "freezegun_damage_sm" ], "right_leg", "J_Knee_RI" );
}
if ( !self clientscripts\_zombiemode::has_gibbed_piece( level._ZOMBIE_GIB_PIECE_INDEX_LEFT_LEG ) )
{
freezegun_play_extremity_damage_fx( localclientnum, level._effect[ "freezegun_damage_sm" ], "left_leg", "J_Knee_LE" );
}
}
freezegun_extremity_damage_fx( localClientNum, set, newEnt )
{
players = getlocalplayers();
for ( i = 0; i < players.size; i++ )
{
if ( set )
{
self thread freezegun_play_all_extremity_damage_fx( i );
}
else
{
self thread freezegun_end_all_extremity_damage_fx( i );
}
}
}
freezegun_end_all_torso_damage_fx( localclientnum )
{
deletefx( localclientnum, self.freezegun_damage_torso_fx[localclientnum], true );
}
freezegun_play_all_torso_damage_fx( localclientnum )
{
if ( !IsDefined( self.freezegun_damage_torso_fx ) )
{
self.freezegun_damage_torso_fx = [];
}
if ( IsDefined( self.freezegun_damage_torso_fx[localclientnum] ) )
{
return;
}
self.freezegun_damage_torso_fx[localclientnum] = PlayFxOnTag( localclientnum, level._effect[ "freezegun_damage_torso" ], self, "J_SpineLower" );
}
freezegun_torso_damage_fx( localClientNum, set, newEnt )
{
players = getlocalplayers();
for ( i = 0; i < players.size; i++ )
{
if ( set )
{
self thread freezegun_play_all_torso_damage_fx( i );
}
else
{
self thread freezegun_end_all_torso_damage_fx( i );
}
}
}
freezegun_do_gib_fx( tag, shatter )
{
players = getlocalplayers();
for ( i = 0; i < players.size; i++ )
{
PlayFxOnTag( i, freezegun_get_gibtrailfx( shatter ), self, tag );
}
}
freezegun_do_gib( model, tag, force_from_torso, shatter )
{
if ( shatter && !force_from_torso )
{
tag_pos = self.origin;
tag_angles = (0, 0, 1);
}
else
{
tag_pos = self gettagorigin( tag );
tag_angles = self gettagangles( tag );
}
CreateDynEntAndLaunch( 0, model, tag_pos, tag_angles, tag_pos, self freezegun_get_gibforce( tag, force_from_torso, shatter ), freezegun_get_gibtrailfx( shatter ), 1 );
self freezegun_do_gib_fx( tag, shatter );
}
freezegun_gib_override( type, locations )
{
if ( "freeze" != type && "up" != type )
{
if ( IsDefined( self.freezegun_damage_fx_handles ) )
{
for ( i = 0; i < locations.size; i++ )
{
switch( locations[i] )
{
case 0:
players = getlocalplayers();
for ( i = 0; i < players.size; i++ )
{
self freezegun_end_all_extremity_damage_fx( i );
}
break;
case 1:
freezegun_end_extremity_damage_fx_for_all_localclients( "right_arm" );
break;
case 2:
freezegun_end_extremity_damage_fx_for_all_localclients( "left_arm" );
break;
case 3:
freezegun_end_extremity_damage_fx_for_all_localclients( "right_leg" );
break;
case 4:
freezegun_end_extremity_damage_fx_for_all_localclients( "left_leg" );
break;
case 6:
freezegun_end_extremity_damage_fx_for_all_localclients( "left_arm" );
break;
}
}
}
return false;
}
upgraded = false;
for ( i = 0; i < locations.size; i++ )
{
switch( locations[i] )
{
case 7:
upgraded = true;
break;
}
}
shatter = false;
explosion_effect = freezegun_get_crumple_effect( upgraded );
alias = "wpn_freezegun_collapse_zombie";
if ( "up" == type )
{
shatter = true;
explosion_effect = freezegun_get_shatter_effect( upgraded );
alias = "wpn_freezegun_shatter_zombie";
}
players = getlocalplayers();
for ( i = 0; i < players.size; i++ )
{
self clientscripts\_zombiemode::deleteZombieEyes( i );
self freezegun_end_all_extremity_damage_fx( i );
self freezegun_end_all_torso_damage_fx( i );
PlayFX( i, explosion_effect, self.origin );
PlaySound( 0, alias, self.origin );
}
for ( i = 0; i < locations.size; i++ )
{
switch( locations[i] )
{
case 0:
if ( !self clientscripts\_zombiemode::has_gibbed_piece( level._ZOMBIE_GIB_PIECE_INDEX_RIGHT_ARM ) &&
IsDefined( level._gibbing_actor_models[self._gib_def].gibSpawn1 ) && IsDefined( level._gibbing_actor_models[self._gib_def].gibSpawnTag1 ) )
{
self thread freezegun_do_gib( level._gibbing_actor_models[self._gib_def].gibSpawn1, level._gibbing_actor_models[self._gib_def].gibSpawnTag1, true, shatter );
}
if ( !self clientscripts\_zombiemode::has_gibbed_piece( level._ZOMBIE_GIB_PIECE_INDEX_LEFT_ARM ) &&
IsDefined( level._gibbing_actor_models[self._gib_def].gibSpawn2 ) && IsDefined( level._gibbing_actor_models[self._gib_def].gibSpawnTag2 ) )
{
self thread freezegun_do_gib( level._gibbing_actor_models[self._gib_def].gibSpawn2, level._gibbing_actor_models[self._gib_def].gibSpawnTag2, true, shatter );
}
if ( !self clientscripts\_zombiemode::has_gibbed_piece( level._ZOMBIE_GIB_PIECE_INDEX_RIGHT_LEG ) &&
IsDefined( level._gibbing_actor_models[self._gib_def].gibSpawn3 ) && IsDefined( level._gibbing_actor_models[self._gib_def].gibSpawnTag3 ) )
{
self thread freezegun_do_gib( level._gibbing_actor_models[self._gib_def].gibSpawn3, level._gibbing_actor_models[self._gib_def].gibSpawnTag3, false, shatter );
}
if ( !self clientscripts\_zombiemode::has_gibbed_piece( level._ZOMBIE_GIB_PIECE_INDEX_LEFT_LEG ) &&
IsDefined( level._gibbing_actor_models[self._gib_def].gibSpawn4 ) && IsDefined( level._gibbing_actor_models[self._gib_def].gibSpawnTag4 ) )
{
self thread freezegun_do_gib( level._gibbing_actor_models[self._gib_def].gibSpawn4, level._gibbing_actor_models[self._gib_def].gibSpawnTag4, false, shatter );
}
self thread freezegun_do_gib_fx( "J_SpineLower", shatter );
self clientscripts\_zombiemode::mark_piece_gibbed( level._ZOMBIE_GIB_PIECE_INDEX_RIGHT_ARM );
self clientscripts\_zombiemode::mark_piece_gibbed( level._ZOMBIE_GIB_PIECE_INDEX_LEFT_ARM );
self clientscripts\_zombiemode::mark_piece_gibbed( level._ZOMBIE_GIB_PIECE_INDEX_RIGHT_LEG );
self clientscripts\_zombiemode::mark_piece_gibbed( level._ZOMBIE_GIB_PIECE_INDEX_LEFT_LEG );
self clientscripts\_zombiemode::mark_piece_gibbed( level._ZOMBIE_GIB_PIECE_INDEX_HEAD );
break;
}
}
self.gibbed = true;
return true;
}