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

219 lines
6.5 KiB
Plaintext

// IW6 GSC SOURCE
// Generated by https://github.com/xensik/gsc-tool
prop_notetrack_exist( var_0, var_1 )
{
if ( !isdefined( level.prop_notetracks ) )
level.prop_notetracks = [];
if ( !isdefined( level.prop_notetracks[var_0] ) )
level.prop_notetracks[var_0] = [];
if ( isdefined( level.prop_notetracks[var_0][var_1] ) )
return 1;
level.prop_notetracks[var_0][var_1] = 1;
return 0;
}
add_smoking_notetracks( var_0 )
{
if ( prop_notetrack_exist( var_0, "add_smoking_notetracks" ) )
return;
maps\_anim::addnotetrack_customfunction( var_0, "attach cig", ::attach_cig );
maps\_anim::addnotetrack_customfunction( var_0, "detach cig", ::detach_cig );
maps\_anim::addnotetrack_customfunction( var_0, "puff", ::smoke_puff );
maps\_anim::addnotetrack_customfunction( var_0, "exhale", ::smoke_exhale );
level._effect["cigar_glow"] = loadfx( "fx/fire/cigar_glow_far" );
level._effect["cigar_glow_puff"] = loadfx( "fx/fire/cigar_glow_puff" );
level._effect["cigar_smoke_puff"] = loadfx( "fx/smoke/cigarsmoke_puff_far" );
level._effect["cigar_exhale"] = loadfx( "fx/smoke/cigarsmoke_exhale_far" );
level.scr_model["cigar"] = "prop_price_cigar";
}
detach_idle_clip( var_0 )
{
if ( isdefined( var_0.clip ) )
var_0.clip delete();
}
add_sit_load_ak_notetracks( var_0 )
{
if ( prop_notetrack_exist( var_0, "add_cellphone_notetracks" ) )
return;
maps\_anim::addnotetrack_customfunction( var_0, "attach clip left", ::attach_clip );
maps\_anim::addnotetrack_customfunction( var_0, "detach clip left", ::detach_idle_clip );
level.scr_model["clip"] = "weapon_ak47_clip";
}
attach_clip( var_0 )
{
var_0 notify( "new_prop_rotation" );
var_1 = spawn( "script_model", ( 0, 0, 0 ) );
var_1 linkto( var_0, "tag_inhand", ( 0, 0, 0 ), ( 0, 0, 0 ) );
var_1 setmodel( maps\_utility::getmodel( "clip" ) );
var_0.clip = var_1;
thread prop_delete( var_1, var_0 );
}
add_cellphone_notetracks( var_0 )
{
if ( prop_notetrack_exist( var_0, "add_cellphone_notetracks" ) )
return;
maps\_anim::addnotetrack_customfunction( var_0, "attach phone", ::attach_phone );
maps\_anim::addnotetrack_customfunction( var_0, "detach phone", ::detach_phone );
level.scr_model["cellphone"] = "com_cellphone_off";
}
attach_phone( var_0 )
{
var_0 notify( "new_phone_rotation" );
var_1 = spawn( "script_model", ( 0, 0, 0 ) );
var_1 linkto( var_0, "tag_inhand", ( 0, 0, 0 ), ( 0, 0, 0 ) );
var_1 setmodel( maps\_utility::getmodel( "cellphone" ) );
var_0.phone = var_1;
thread prop_delete( var_1, var_0 );
}
detach_phone( var_0 )
{
if ( isdefined( var_0.phone ) )
var_0.phone delete();
}
attach_cig( var_0 )
{
var_0 notify( "new_cigar_rotation" );
var_1 = spawn( "script_model", ( 0, 0, 0 ) );
var_1 linkto( var_0, "tag_inhand", ( 0, 0, 0 ), ( 0, 0, 0 ) );
var_1 setmodel( maps\_utility::getmodel( "cigar" ) );
playfxontag( common_scripts\utility::getfx( "cigar_glow" ), var_1, "tag_cigarglow" );
var_0.cigar = var_1;
thread prop_delete_cig( var_1, var_0 );
}
detach_cig( var_0 )
{
if ( isdefined( var_0.cigar ) )
var_0.cigar thread prop_cig_throw();
}
prop_delete( var_0, var_1 )
{
var_1 notify( "new_prop_rotation" + var_0.model );
var_1 endon( "new_prop_rotation" + var_0.model );
var_0 endon( "death" );
var_1 maps\_utility::add_endon( "new_prop_rotation" + var_0.model );
var_0 maps\_utility::add_endon( "death" );
maps\_utility::add_wait( maps\_utility::waittill_msg, "stop_loop" );
var_1 maps\_utility::add_wait( maps\_utility::waittill_msg, "death" );
maps\_utility::do_wait_any();
var_0 delete();
}
prop_delete_cig( var_0, var_1 )
{
var_1 notify( "new_prop_rotation" + var_0.model );
var_1 endon( "new_prop_rotation" + var_0.model );
var_0 endon( "death" );
var_1 maps\_utility::add_endon( "new_prop_rotation" + var_0.model );
var_0 maps\_utility::add_endon( "death" );
maps\_utility::add_wait( maps\_utility::waittill_msg, "stop_loop" );
var_1 maps\_utility::add_wait( maps\_utility::waittill_msg, "death" );
maps\_utility::do_wait_any();
var_0 thread prop_cig_throw();
}
prop_cig_throw()
{
self endon( "death" );
if ( !isdefined( self ) )
return;
if ( isdefined( self.cig_throwing ) && self.cig_throwing )
return;
self.cig_throwing = 1;
stopfxontag( common_scripts\utility::getfx( "cigar_glow" ), self, "tag_cigarglow" );
var_0 = 3;
var_1 = anglestoforward( self.angles );
self unlink();
self movegravity( var_1 * 100, var_0 );
self rotatevelocity( ( 400, 0, 0 ), var_0, 0, var_0 );
wait( var_0 );
self delete();
}
smoke_puff( var_0 )
{
if ( !isdefined( var_0.cigar ) )
return;
var_0 endon( "death" );
var_0.cigar endon( "death" );
playfxontag( common_scripts\utility::getfx( "cigar_glow_puff" ), var_0.cigar, "tag_cigarglow" );
wait 1;
playfxontag( common_scripts\utility::getfx( "cigar_smoke_puff" ), var_0, "tag_eye" );
}
smoke_exhale( var_0 )
{
if ( !isdefined( var_0.cigar ) )
return;
playfxontag( common_scripts\utility::getfx( "cigar_exhale" ), var_0, "tag_eye" );
}
ghillie_leaves()
{
var_0 = [];
var_0[var_0.size] = "J_MainRoot";
var_0[var_0.size] = "J_CoatFront_LE";
var_0[var_0.size] = "J_Hip_LE";
var_0[var_0.size] = "J_CoatRear_RI";
var_0[var_0.size] = "J_CoatRear_LE";
var_0[var_0.size] = "J_CoatFront_RI";
var_0[var_0.size] = "J_Cheek_RI";
var_0[var_0.size] = "J_Brow_LE";
var_0[var_0.size] = "J_Shoulder_RI";
var_0[var_0.size] = "J_Head";
var_0[var_0.size] = "J_ShoulderRaise_LE";
var_0[var_0.size] = "J_Neck";
var_0[var_0.size] = "J_Clavicle_RI";
var_0[var_0.size] = "J_Ball_LE";
var_0[var_0.size] = "J_Knee_Bulge_LE";
var_0[var_0.size] = "J_Ankle_RI";
var_0[var_0.size] = "J_Ankle_LE";
var_0[var_0.size] = "J_SpineUpper";
var_0[var_0.size] = "J_Knee_RI";
var_0[var_0.size] = "J_Knee_LE";
var_0[var_0.size] = "J_HipTwist_RI";
var_0[var_0.size] = "J_HipTwist_LE";
var_0[var_0.size] = "J_SpineLower";
var_0[var_0.size] = "J_Hip_RI";
var_0[var_0.size] = "J_Elbow_LE";
var_0[var_0.size] = "J_Wrist_RI";
self endon( "death" );
for (;;)
{
while ( self.movemode != "run" )
{
wait 0.2;
continue;
}
playfxontag( level._effect["ghillie_leaves"], self, common_scripts\utility::random( var_0 ) );
wait( randomfloatrange( 0.1, 2.5 ) );
}
}
attach_cig_self()
{
attach_cig( self );
}