168 lines
4.3 KiB
Plaintext
168 lines
4.3 KiB
Plaintext
// IW6 GSC SOURCE
|
|
// Generated by https://github.com/xensik/gsc-tool
|
|
|
|
main()
|
|
{
|
|
level.inc = 0;
|
|
common_scripts\utility::array_levelthread( getentarray( "wire", "targetname" ), ::wirewander );
|
|
var_0 = getentarray( "shutter_left", "targetname" );
|
|
var_1 = getentarray( "shutter_right_open", "targetname" );
|
|
|
|
for ( var_2 = 0; var_2 < var_1.size; var_2++ )
|
|
var_0[var_0.size] = var_1[var_2];
|
|
|
|
var_1 = getentarray( "shutter_left_closed", "targetname" );
|
|
|
|
for ( var_2 = 0; var_2 < var_1.size; var_2++ )
|
|
var_0[var_0.size] = var_1[var_2];
|
|
|
|
for ( var_2 = 0; var_2 < var_0.size; var_2++ )
|
|
{
|
|
var_3 = var_0[var_2];
|
|
var_3 rotateto( ( var_3.angles[0], var_3.angles[1] + 180, var_3.angles[2] ), 0.1 );
|
|
}
|
|
|
|
wait 0.2;
|
|
|
|
for ( var_2 = 0; var_2 < var_0.size; var_2++ )
|
|
var_0[var_2].startyaw = var_0[var_2].angles[1];
|
|
|
|
var_4 = getentarray( "shutter_right", "targetname" );
|
|
var_1 = getentarray( "shutter_left_open", "targetname" );
|
|
|
|
for ( var_2 = 0; var_2 < var_1.size; var_2++ )
|
|
var_4[var_4.size] = var_1[var_2];
|
|
|
|
var_1 = getentarray( "shutter_right_closed", "targetname" );
|
|
|
|
for ( var_2 = 0; var_2 < var_1.size; var_2++ )
|
|
var_4[var_4.size] = var_1[var_2];
|
|
|
|
for ( var_2 = 0; var_2 < var_4.size; var_2++ )
|
|
var_4[var_2].startyaw = var_4[var_2].angles[1];
|
|
|
|
var_1 = undefined;
|
|
var_5 = "left";
|
|
|
|
for (;;)
|
|
{
|
|
common_scripts\utility::array_levelthread( var_0, ::shutterwanderleft, var_5 );
|
|
common_scripts\utility::array_levelthread( var_4, ::shutterwanderright, var_5 );
|
|
level waittill( "wind blows", var_5 );
|
|
}
|
|
}
|
|
|
|
windcontroller()
|
|
{
|
|
for (;;)
|
|
{
|
|
var_0 = "left";
|
|
|
|
if ( randomint( 100 ) > 50 )
|
|
var_0 = "right";
|
|
|
|
level notify( "wind blows", var_0 );
|
|
wait( 2 + randomfloat( 10 ) );
|
|
}
|
|
}
|
|
|
|
shutterwanderleft( var_0, var_1 )
|
|
{
|
|
level.inc++;
|
|
level endon( "wind blows" );
|
|
var_2 = var_0.startyaw;
|
|
|
|
if ( var_1 == "left" )
|
|
var_2 = var_2 + 179.9;
|
|
|
|
var_3 = 0.2;
|
|
var_0 rotateto( ( var_0.angles[0], var_2, var_0.angles[2] ), var_3 );
|
|
wait( var_3 + 0.1 );
|
|
|
|
for (;;)
|
|
{
|
|
var_4 = randomint( 80 );
|
|
|
|
if ( randomint( 100 ) > 50 )
|
|
var_4 = var_4 * -1;
|
|
|
|
var_2 = var_0.angles[1] + var_4;
|
|
var_5 = var_0.angles[1] + var_4 * -1;
|
|
|
|
if ( var_2 < var_0.startyaw || var_2 > var_0.startyaw + 179 )
|
|
var_2 = var_5;
|
|
|
|
var_6 = abs( var_0.angles[1] - var_2 );
|
|
var_3 = var_6 * 0.02 + randomfloat( 2 );
|
|
|
|
if ( var_3 < 0.3 )
|
|
var_3 = 0.3;
|
|
|
|
var_0 rotateto( ( var_0.angles[0], var_2, var_0.angles[2] ), var_3, var_3 * 0.5, var_3 * 0.5 );
|
|
wait( var_3 );
|
|
}
|
|
}
|
|
|
|
shutterwanderright( var_0, var_1 )
|
|
{
|
|
level.inc++;
|
|
level endon( "wind blows" );
|
|
var_2 = var_0.startyaw;
|
|
|
|
if ( var_1 == "left" )
|
|
var_2 = var_2 + 179.9;
|
|
|
|
var_3 = 0.2;
|
|
var_0 rotateto( ( var_0.angles[0], var_2, var_0.angles[2] ), var_3 );
|
|
wait( var_3 + 0.1 );
|
|
|
|
for (;;)
|
|
{
|
|
var_4 = randomint( 80 );
|
|
|
|
if ( randomint( 100 ) > 50 )
|
|
var_4 = var_4 * -1;
|
|
|
|
var_2 = var_0.angles[1] + var_4;
|
|
var_5 = var_0.angles[1] + var_4 * -1;
|
|
|
|
if ( var_2 < var_0.startyaw || var_2 > var_0.startyaw + 179 )
|
|
var_2 = var_5;
|
|
|
|
var_6 = abs( var_0.angles[1] - var_2 );
|
|
var_3 = var_6 * 0.02 + randomfloat( 2 );
|
|
|
|
if ( var_3 < 0.3 )
|
|
var_3 = 0.3;
|
|
|
|
var_0 rotateto( ( var_0.angles[0], var_2, var_0.angles[2] ), var_3, var_3 * 0.5, var_3 * 0.5 );
|
|
wait( var_3 );
|
|
}
|
|
}
|
|
|
|
wirewander( var_0 )
|
|
{
|
|
var_1 = getentarray( var_0.target, "targetname" );
|
|
var_2 = var_1[0].origin;
|
|
var_3 = var_1[1].origin;
|
|
var_4 = vectortoangles( var_2 - var_3 );
|
|
var_5 = spawn( "script_model", ( 0, 0, 0 ) );
|
|
var_5.origin = var_2 * 0.5 + var_3 * 0.5;
|
|
var_5.angles = var_4;
|
|
var_0 linkto( var_5 );
|
|
var_6 = 2;
|
|
var_7 = 0.9;
|
|
var_8 = 4 + randomfloat( 2 );
|
|
var_5 rotateroll( var_8 * 0.5, 0.2 );
|
|
wait 0.2;
|
|
|
|
for (;;)
|
|
{
|
|
var_9 = var_6 + randomfloat( var_7 ) - var_7 * 0.5;
|
|
var_5 rotateroll( var_8, var_9, var_9 * 0.5, var_9 * 0.5 );
|
|
wait( var_9 );
|
|
var_5 rotateroll( var_8 * -1, var_9, var_9 * 0.5, var_9 * 0.5 );
|
|
wait( var_9 );
|
|
}
|
|
}
|