77 lines
1.8 KiB
Plaintext
77 lines
1.8 KiB
Plaintext
// IW6 GSC SOURCE
|
|
// Generated by https://github.com/xensik/gsc-tool
|
|
|
|
main()
|
|
{
|
|
var_0 = spawnstruct();
|
|
var_0.distance_to_spawn = squared( 12000 );
|
|
var_0.spawners = [];
|
|
var_1 = getentarray( "proximity_spawned", "script_noteworthy" );
|
|
|
|
foreach ( var_3 in var_1 )
|
|
{
|
|
if ( isspawner( var_3 ) )
|
|
var_0.spawners[var_0.spawners.size] = var_3;
|
|
}
|
|
|
|
level.proximity_spawn = var_0;
|
|
var_0 thread monitor_spawners();
|
|
}
|
|
|
|
monitor_spawners()
|
|
{
|
|
self notify( "monitor_spawners" );
|
|
self endon( "monitor_spawners" );
|
|
wait 0.05;
|
|
|
|
for (;;)
|
|
{
|
|
if ( !self.spawners.size )
|
|
{
|
|
wait 0.05;
|
|
continue;
|
|
}
|
|
|
|
foreach ( var_3, var_1 in self.spawners )
|
|
{
|
|
if ( isdefined( var_1 ) )
|
|
{
|
|
var_2 = self.distance_to_spawn;
|
|
|
|
if ( isdefined( var_1.radius ) )
|
|
var_2 = squared( var_1.radius );
|
|
|
|
if ( distancesquared( var_1.origin, level.player.origin ) < var_2 )
|
|
{
|
|
thread spawn_and_restart_monitoring( var_1 );
|
|
return;
|
|
}
|
|
}
|
|
|
|
if ( var_3 % 4 == 0 )
|
|
wait 0.05;
|
|
}
|
|
}
|
|
}
|
|
|
|
spawn_and_restart_monitoring( var_0 )
|
|
{
|
|
if ( !isdefined( var_0.spawned_count ) && !isdefined( var_0.vehicle_spawned_thisframe ) )
|
|
{
|
|
var_1 = var_0 maps\_utility::spawn_vehicle();
|
|
|
|
if ( !issubstr( var_1.classname, "zpu" ) )
|
|
var_1 thread maps\_vehicle::gopath();
|
|
}
|
|
|
|
self.spawners = common_scripts\utility::array_remove( self.spawners, var_0 );
|
|
var_0 common_scripts\utility::delaycall( 0.05, ::delete );
|
|
thread monitor_spawners();
|
|
}
|
|
|
|
end()
|
|
{
|
|
if ( isdefined( level.proximity_spawn ) )
|
|
level.proximity_spawn notify( "monitor_spawners" );
|
|
}
|