99 lines
2.3 KiB
Plaintext
99 lines
2.3 KiB
Plaintext
#include maps\_utility;
|
|
#include common_scripts\utility;
|
|
#include maps\_vehicle_aianim;
|
|
#include maps\_vehicle;
|
|
#using_animtree( "vehicles" );
|
|
|
|
|
|
/*QUAKED script_vehicle_ucav (1 0 0) (-16 -16 -24) (16 16 32) USABLE SPAWNER
|
|
|
|
put this in your GSC:
|
|
maps\_ucav::main( "vehicle_ucav" );
|
|
|
|
and these lines in your CSV:
|
|
include,vehicle_ucav
|
|
|
|
defaultmdl="vehicle_ucav"
|
|
default:"vehicletype" "ucav"
|
|
default:"script_team" "allies"
|
|
*/
|
|
|
|
main( model, type )
|
|
{
|
|
build_template( "ucav", model, type );
|
|
build_localinit( ::init_local );
|
|
|
|
build_deathmodel( "vehicle_ucav" );
|
|
|
|
//special for ucav/////
|
|
level._effect[ "jettrail" ] = loadfx( "smoke/jet_contrail" );
|
|
////////////////////////
|
|
|
|
build_deathfx( "explosions/large_vehicle_explosion", undefined, "explo_metal_rand" );
|
|
build_life( 999, 500, 1500 );
|
|
build_team( "allies" );
|
|
build_mainturret();
|
|
}
|
|
|
|
init_local()
|
|
{
|
|
thread playJetTrail();
|
|
|
|
self.missileTags[ 0 ] = "tag_missile_left";
|
|
self.missileTags[ 1 ] = "tag_missile_right";
|
|
self.nextMissileTag = 0;
|
|
}
|
|
|
|
#using_animtree( "vehicles" );
|
|
set_vehicle_anims( positions )
|
|
{
|
|
return positions;
|
|
}
|
|
|
|
|
|
#using_animtree( "generic_human" );
|
|
|
|
setanims()
|
|
{
|
|
positions = [];
|
|
for ( i = 0;i < 1;i++ )
|
|
positions[ i ] = spawnstruct();
|
|
|
|
return positions;
|
|
}
|
|
|
|
playJetTrail()
|
|
{
|
|
//This is a geoTrail effect that loops forever. It has to be enabled and disabled while playing as
|
|
//one effect. It can't be played in a wait loop like other effects because a geo trail is one
|
|
//continuous effect. ConTrails should only be played during high "G" or high speed maneuvers.
|
|
playfxontag( level._effect[ "jettrail" ], self, "TAG_JET_TRAIL" );
|
|
}
|
|
|
|
plane_sound_node()
|
|
{
|
|
self waittill( "trigger", other );
|
|
other endon( "death" );
|
|
self thread plane_sound_node();// spawn new thread for next plane that passes through this pathnode
|
|
|
|
other thread play_sound_on_entity( "veh_uav_flyby" );
|
|
}
|
|
|
|
fire_missile_node()
|
|
{
|
|
self waittill( "trigger", other );
|
|
other endon( "death" );
|
|
self thread fire_missile_node();
|
|
|
|
// set the weapon and get the missile target
|
|
other setVehWeapon( "ucav_sidewinder" );
|
|
eTarget = self get_linked_ent();
|
|
|
|
// fire weapon
|
|
other fireWeapon( other.missileTags[ other.nextMissileTag ], eTarget, ( 0, 0, 0 ) );
|
|
|
|
// advance to the next missile tag for the next shot
|
|
other.nextMissileTag++;
|
|
if ( other.nextMissileTag >= other.missileTags.size )
|
|
other.nextMissileTag = 0;
|
|
} |