iw6-scripts/maps/mp/mp_skeleton.gsc
2024-02-13 13:20:49 +01:00

118 lines
4.1 KiB
Plaintext

// IW6 GSC SOURCE
// Generated by https://github.com/xensik/gsc-tool
main()
{
maps\mp\mp_skeleton_precache::main();
maps\createart\mp_skeleton_art::main();
maps\mp\mp_skeleton_fx::main();
maps\mp\_load::main();
maps\mp\_compass::setupminimap( "compass_map_mp_skeleton" );
if ( !maps\mp\_utility::is_gen4() )
setdvar( "r_texFilterProbeBilinear", 1 );
setdvar( "r_lightGridEnableTweaks", 1 );
setdvar( "r_lightGridIntensity", 1.33 );
maps\mp\_utility::setdvar_cg_ng( "r_specularColorScale", 2.5, 6 );
setdvar( "r_umbraexclusive", 1 );
game["attackers"] = "allies";
game["defenders"] = "axis";
level thread portcullis_watch();
level thread initadditionalcollision();
level.spawn_closeenemydistsq = 1000000;
}
initadditionalcollision()
{
var_0 = getent( "clip128x128x8", "targetname" );
var_1 = spawn( "script_model", ( -1065.81, -1288.17, 238.002 ) );
var_1.angles = ( 352.044, 14.1584, 10.0585 );
var_1 clonebrushmodeltoscriptmodel( var_0 );
var_2 = spawn( "script_model", ( 1393.1, 1093.2, 160 ) );
var_2 setmodel( "com_plasticcase_green_big_us_dirt" );
var_2.angles = ( 270, 0.999812, 20 );
var_3 = spawn( "script_model", ( 1381.76, 1122.11, 160 ) );
var_3 setmodel( "com_plasticcase_green_big_us_dirt" );
var_3.angles = ( 270, 2.8, 20 );
var_4 = spawn( "trigger_radius", ( 4176, 976, -240 ), 0, 750, 375 );
var_4.radius = 750;
var_4.height = 375;
var_4.angles = ( 0, 0, 0 );
var_4.targetname = "gryphonDeath";
}
portcullis_watch()
{
var_0 = getent( "gate", "targetname" );
var_1 = getent( "gate_d", "targetname" );
var_2 = common_scripts\utility::getstruct( var_0.target, "targetname" );
var_3 = getent( "destroyed_collision", "targetname" );
var_4 = getent( "intact_collision", "targetname" );
var_5 = common_scripts\utility::getstruct( "gate_killcam", "targetname" );
var_6 = 1.0;
var_4.killcament = spawn( "script_model", var_5.origin );
var_4.killcament setmodel( "tag_origin" );
var_1 hide();
var_1 linkto( var_0 );
var_3 notsolid();
var_4 notsolid();
var_4 connectpaths();
var_4.dest_origin = var_4.origin;
var_4 moveto( var_0.origin, 0.1, 0.0, 0.0 );
var_0 setcandamage( 1 );
var_0 waittill( "damage", var_7, var_8, var_9, var_10, var_11 );
var_0 moveto( var_2.origin, var_6, var_6, 0.0 );
var_4 solid();
var_4 moveto( var_4.dest_origin, var_6, var_6, 0.0 );
var_4.unresolved_collision_notify_min = 1;
var_4.unresolved_collision_kill = 1;
var_4.owner = var_8;
var_0 playsoundonmovingent( "scn_skeleton_portcullis_close" );
var_4 thread maps\mp\_movers::player_pushed_kill( 0 );
wait( var_6 );
var_4 disconnectpaths();
var_4 thread maps\mp\_movers::stop_player_pushed_kill();
foreach ( var_13 in level.characters )
{
if ( var_13 istouching( var_4 ) && isalive( var_13 ) )
{
if ( isdefined( var_8 ) && isdefined( var_8.team ) && var_8.team == var_13.team )
{
var_13 maps\mp\_movers::mover_suicide();
continue;
}
var_13 dodamage( var_13.health + 20, var_13.origin, var_8, var_4, "MOD_CRUSH" );
}
}
foreach ( var_16 in level.remote_uav )
{
if ( var_16 istouching( var_4 ) )
var_16 notify( "death" );
}
earthquake( 0.5, 1.0, var_0.origin, 1000 );
playfx( common_scripts\utility::getfx( "vfx_mp_skeleton_gate_dust" ), var_2.origin + ( 0, 0, 60 ), anglestoforward( var_0.angles + ( 0, 90, 0 ) ), ( 1, 0, 0 ) );
for (;;)
{
var_0 waittill( "damage", var_7, var_8, var_9, var_10, var_11 );
if ( var_11 == "MOD_EXPLOSIVE" || var_11 == "MOD_GRENADE_SPLASH" || var_11 == "MOD_PROJECTILE" || var_11 == "MOD_GRENADE" )
{
playfx( common_scripts\utility::getfx( "vfx_gate_explode" ), var_10, var_9 );
break;
}
}
var_0 delete();
var_4 notsolid();
var_3 solid();
var_4 connectpaths();
var_1 show();
playsoundatpos( var_1.origin, "scn_skeleton_portcullis_exp" );
}