654 lines
17 KiB
Plaintext
654 lines
17 KiB
Plaintext
// IW6 GSC SOURCE
|
|
// Generated by https://github.com/xensik/gsc-tool
|
|
|
|
main()
|
|
{
|
|
maps\mp\mp_pirate_precache::main();
|
|
maps\createart\mp_pirate_art::main();
|
|
maps\mp\mp_pirate_fx::main();
|
|
maps\mp\_load::main();
|
|
maps\mp\_compass::setupminimap( "compass_map_mp_pirate" );
|
|
setdvar( "r_lightGridEnableTweaks", 1 );
|
|
setdvar( "r_lightGridIntensity", 1.33 );
|
|
maps\mp\_utility::setdvar_cg_ng( "r_specularColorScale", 2.8, 14 );
|
|
maps\mp\_utility::setdvar_cg_ng( "sm_sunShadowScale", 0.5, 1 );
|
|
game["attackers"] = "allies";
|
|
game["defenders"] = "axis";
|
|
game["allies_outfit"] = "urban";
|
|
game["axis_outfit"] = "woodland";
|
|
thread setuplevelkillstreak();
|
|
thread maps\mp\_dlcalienegg::setupeggformap( "alienEasterEgg" );
|
|
var_0 = setupdestructible( "destruction_tower" );
|
|
var_0 thread towercollapse( 9 );
|
|
var_1 = setupdestructible( "destruction_window" );
|
|
var_1 thread windowcollapse( 5 );
|
|
thread bellssetup( "churchbell" );
|
|
|
|
if ( maps\mp\_utility::is_gen4() )
|
|
{
|
|
game["thermal_vision"] = "thermal_mp";
|
|
setthermalbodymaterial( "thermalbody_snowlevel" );
|
|
visionsetthermal( game["thermal_vision"] );
|
|
}
|
|
|
|
thread setupconvos();
|
|
}
|
|
|
|
setuplevelkillstreak()
|
|
{
|
|
level._effect["cannon_impact"] = loadfx( "vfx/moments/mp_pirate/vfx_exp_can_impact" );
|
|
level._effect["random_mortars_trail"] = loadfx( "vfx/moments/mp_pirate/vfx_cannon_trail" );
|
|
level._effect["cannon_muzzleflash"] = loadfx( "vfx/moments/mp_pirate/vfx_cannon_blast" );
|
|
level._effect["ship_wake"] = loadfx( "vfx/moments/mp_pirate/vfx_ghost_boat_wake" );
|
|
var_0 = spawnstruct();
|
|
var_0.crateweight = 85;
|
|
var_0.cratehint = &"MP_PIRATE_CANNONS_USE";
|
|
var_0.debugname = "Cannon Barrage";
|
|
var_0.id = "pirate_cannons";
|
|
var_0.weaponname = "warhawk_mortar_mp";
|
|
var_0.splashname = "used_pirate_cannons";
|
|
var_0.sourceents = "ship_cannons";
|
|
var_0.targetstructs = "cannon_target";
|
|
var_0.launchdelay = 12;
|
|
var_0.projectileperloop = 12;
|
|
var_0.delaybetweenvolleys = 6;
|
|
var_0.model = "pirateship_cannon_ball_iw6";
|
|
var_0.launchsfxarray = [ "cannon_fire_1", "cannon_fire_2", "cannon_fire_3", "cannon_fire_4", "cannon_fire_5", "cannon_fire_6", "cannon_fire_7", "cannon_fire_8", "cannon_fire_9", "cannon_fire_10" ];
|
|
var_0.launchsfxstartid = 0;
|
|
var_0.launchvfx = "cannon_muzzleflash";
|
|
var_0.launchdelaymin = 1.0;
|
|
var_0.launchdelaymax = 1.5;
|
|
var_0.launchairtimemin = 2;
|
|
var_0.launchairtimemax = 3;
|
|
var_0.strikeduration = 35;
|
|
var_0.incomingsfx = "cannon_ball_incoming";
|
|
var_0.trailvfx = "random_mortars_trail";
|
|
var_0.impactsfx = "cannon_ball_impact";
|
|
var_0.impactvfx = "cannon_impact";
|
|
shipsetup( "cannon_ship" );
|
|
maps\mp\killstreaks\_mortarstrike::createmortar( var_0 );
|
|
level.mapcustomkillstreakfunc = ::customkillstreakfunc;
|
|
level.mapcustomcratefunc = ::customcratefunc;
|
|
level.mapcustombotkillstreakfunc = ::custombotkillstreakfunc;
|
|
maps\mp\mp_pirate_ghost::init();
|
|
}
|
|
|
|
customkillstreakfunc()
|
|
{
|
|
maps\mp\killstreaks\_mortarstrike::mortarcustomkillstreakfunc();
|
|
level.killstreakfuncs["pirate_cannons"] = ::tryusepirateship;
|
|
maps\mp\mp_pirate_ghost::customkillstreakfunc();
|
|
}
|
|
|
|
customcratefunc()
|
|
{
|
|
maps\mp\killstreaks\_mortarstrike::mortarcustomcratefunc();
|
|
maps\mp\mp_pirate_ghost::customcratefunc();
|
|
}
|
|
|
|
custombotkillstreakfunc()
|
|
{
|
|
maps\mp\killstreaks\_mortarstrike::mortarcustombotkillstreakfunc();
|
|
maps\mp\mp_pirate_ghost::cusombotkillstreakfunc();
|
|
}
|
|
|
|
setupdestructible( var_0 )
|
|
{
|
|
var_1 = getentarray( var_0 + "_before", "targetname" );
|
|
var_2 = getentarray( var_0 + "_after", "targetname" );
|
|
|
|
foreach ( var_4 in var_2 )
|
|
var_4 clearpath();
|
|
|
|
var_6 = getentarray( var_0 + "_anim", "targetname" );
|
|
|
|
foreach ( var_8 in var_6 )
|
|
var_8 hide();
|
|
|
|
var_10 = spawnstruct();
|
|
var_10.postcollapse = var_2;
|
|
var_10.precollapse = var_1;
|
|
var_10.animmodels = var_6;
|
|
return var_10;
|
|
}
|
|
|
|
windowcollapse( var_0 )
|
|
{
|
|
level waittill( "mortar_killstreak_start" );
|
|
|
|
if ( var_0 > 0.775 )
|
|
{
|
|
var_0 = randomfloatrange( var_0, var_0 + 5 );
|
|
wait( var_0 - 0.775 );
|
|
}
|
|
|
|
common_scripts\utility::exploder( 2 );
|
|
wait 0.775;
|
|
|
|
foreach ( var_2 in self.precollapse )
|
|
var_2 clearpath();
|
|
|
|
var_4 = 4.0;
|
|
|
|
foreach ( var_6 in self.animmodels )
|
|
{
|
|
var_6 show();
|
|
var_7 = var_6.script_noteworthy;
|
|
|
|
if ( isdefined( var_7 ) )
|
|
var_6 scriptmodelplayanim( var_7 );
|
|
}
|
|
|
|
wait 1.5;
|
|
var_9 = self.postcollapse[0].origin;
|
|
|
|
foreach ( var_11 in self.postcollapse )
|
|
{
|
|
if ( isdefined( var_11.clip ) )
|
|
{
|
|
var_9 = var_11.clip.origin;
|
|
break;
|
|
}
|
|
}
|
|
|
|
earthquake( 0.1, 0.5, var_9, 150 );
|
|
wait( var_4 - 1.5 );
|
|
|
|
foreach ( var_14 in self.postcollapse )
|
|
var_14 blockpath();
|
|
|
|
foreach ( var_6 in self.animmodels )
|
|
var_6 hide();
|
|
}
|
|
|
|
towercollapse( var_0 )
|
|
{
|
|
level waittill( "mortar_killstreak_start" );
|
|
|
|
if ( var_0 > 0 )
|
|
{
|
|
var_0 = randomfloatrange( var_0, var_0 + 5 );
|
|
wait( var_0 - 0 );
|
|
}
|
|
|
|
common_scripts\utility::exploder( 1 );
|
|
|
|
foreach ( var_2 in self.precollapse )
|
|
var_2 clearpath();
|
|
|
|
var_4 = 9;
|
|
|
|
foreach ( var_6 in self.animmodels )
|
|
{
|
|
var_6 show();
|
|
var_7 = var_6.script_noteworthy;
|
|
|
|
if ( isdefined( var_7 ) )
|
|
var_6 scriptmodelplayanim( var_7 );
|
|
}
|
|
|
|
playsoundatpos( self.precollapse[0].origin, "scn_pirate_tower_collapse" );
|
|
wait 1.5;
|
|
var_9 = self.postcollapse[0].origin;
|
|
|
|
foreach ( var_11 in self.postcollapse )
|
|
{
|
|
if ( isdefined( var_11.clip ) )
|
|
{
|
|
var_9 = var_11.clip.origin;
|
|
break;
|
|
}
|
|
}
|
|
|
|
earthquake( 0.25, 0.5, var_9, 300 );
|
|
wait( var_4 - 1.5 );
|
|
|
|
foreach ( var_6 in self.animmodels )
|
|
var_6 hide();
|
|
|
|
foreach ( var_16 in self.postcollapse )
|
|
var_16 blockpath();
|
|
}
|
|
|
|
playrumble( var_0 )
|
|
{
|
|
foreach ( var_2 in level.players )
|
|
var_2 playrumbleonentity( var_0 );
|
|
}
|
|
|
|
clearpath()
|
|
{
|
|
self hide();
|
|
self notsolid();
|
|
|
|
if ( isdefined( self.target ) )
|
|
{
|
|
var_0 = getent( self.target, "targetname" );
|
|
self.clip = var_0;
|
|
var_0 connectpaths();
|
|
var_0 notsolid();
|
|
var_0 hide();
|
|
}
|
|
}
|
|
|
|
blockpath()
|
|
{
|
|
self show();
|
|
self solid();
|
|
|
|
if ( isdefined( self.clip ) )
|
|
{
|
|
self.clip show();
|
|
self.clip solid();
|
|
self.clip disconnectpaths();
|
|
}
|
|
}
|
|
|
|
crushallobjects( var_0, var_1 )
|
|
{
|
|
var_2 = var_1 * var_1;
|
|
crushobjects( var_0, var_2, "death", level.turrets );
|
|
crushobjects( var_0, var_2, "death", level.placedims );
|
|
crushobjects( var_0, var_2, "death", level.uplinks );
|
|
crushobjects( var_0, var_2, "detonateExplosive", level.mines );
|
|
|
|
foreach ( var_4 in level.deployable_box )
|
|
crushobjects( var_0, var_2, "death", var_4 );
|
|
}
|
|
|
|
crushobjects( var_0, var_1, var_2, var_3 )
|
|
{
|
|
foreach ( var_5 in var_3 )
|
|
{
|
|
if ( distancesquared( var_0, var_5.origin ) < var_1 )
|
|
var_5 notify( var_2 );
|
|
}
|
|
}
|
|
|
|
tryusepirateship( var_0, var_1 )
|
|
{
|
|
if ( maps\mp\killstreaks\_mortarstrike::tryusemortars( var_0, var_1 ) )
|
|
{
|
|
thread shiprun( "cannon_ship", "shipPathStart" );
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
shiprun( var_0, var_1 )
|
|
{
|
|
var_2 = getent( var_0, "targetname" );
|
|
var_3 = getentarray( "ship_bits", "targetname" );
|
|
|
|
foreach ( var_5 in var_3 )
|
|
{
|
|
var_5 show();
|
|
var_5 linkto( var_2 );
|
|
}
|
|
|
|
var_2 thread shipbarrageplaymusic();
|
|
var_2 thread shipvo();
|
|
var_7 = common_scripts\utility::getstruct( var_1, "targetname" );
|
|
var_2.origin = var_7.origin;
|
|
var_2.angles = var_7.angles;
|
|
playfxontag( common_scripts\utility::getfx( "ship_wake" ), var_2.waketag, "tag_origin" );
|
|
|
|
for ( var_8 = var_7.target; isdefined( var_8 ); var_8 = var_2 shipmove( var_8, 300 ) )
|
|
{
|
|
|
|
}
|
|
|
|
var_2 stopsounds();
|
|
stopfxontag( common_scripts\utility::getfx( "ship_wake" ), var_2.waketag, "tag_origin" );
|
|
var_3 = getentarray( "ship_bits", "targetname" );
|
|
|
|
foreach ( var_5 in var_3 )
|
|
var_5 hide();
|
|
}
|
|
|
|
shipsetup( var_0 )
|
|
{
|
|
var_1 = getent( var_0, "targetname" );
|
|
var_2 = anglestoforward( var_1.angles );
|
|
var_3 = 350 * anglestoright( var_1.angles );
|
|
var_4 = getentarray( "ship_bits", "targetname" );
|
|
var_5 = var_4[0];
|
|
|
|
for ( var_6 = 0; var_6 < 5; var_6++ )
|
|
{
|
|
var_7 = "tag_cannon_" + ( var_6 + 1 );
|
|
var_8 = spawn( "script_model", var_5 gettagorigin( var_7 ) );
|
|
var_8.angles = var_5 gettagangles( var_7 );
|
|
var_8 setmodel( "tag_origin" );
|
|
var_8 linkto( var_1 );
|
|
var_8.targetname = "ship_cannons";
|
|
}
|
|
|
|
var_1.cannons = var_1 getlinkedchildren();
|
|
var_9 = spawn( "script_model", var_5 gettagorigin( "tag_wake" ) + ( 0, 0, 85 ) );
|
|
var_9.angles = var_1.angles + ( -90, 0, 0 );
|
|
var_9 setmodel( "tag_origin" );
|
|
var_9 linkto( var_1 );
|
|
var_1.waketag = var_9;
|
|
|
|
foreach ( var_11 in var_4 )
|
|
var_11 hide();
|
|
}
|
|
|
|
shipmove( var_0, var_1 )
|
|
{
|
|
var_2 = common_scripts\utility::getstruct( var_0, "targetname" );
|
|
|
|
if ( isdefined( var_2 ) )
|
|
{
|
|
if ( !isdefined( var_2.movetime ) )
|
|
var_2.movetime = distance2d( var_2.origin, self.origin ) / var_1;
|
|
|
|
self moveto( var_2.origin, var_2.movetime, 0, 0 );
|
|
self rotateto( var_2.angles, var_2.movetime, 0, 0 );
|
|
wait( var_2.movetime );
|
|
return var_2.target;
|
|
}
|
|
|
|
return undefined;
|
|
}
|
|
|
|
shipbarrageplaymusic()
|
|
{
|
|
level endon( "game_ended" );
|
|
self.waketag playsoundonmovingent( "mus_dead_man_chest_01" );
|
|
level waittill( "mortar_killstreak_end" );
|
|
self stopsounds();
|
|
wait 0.05;
|
|
self.waketag playsoundonmovingent( "mus_dead_man_chest_02" );
|
|
}
|
|
|
|
shipvo()
|
|
{
|
|
wait 7.5;
|
|
thread shipvoplaylines();
|
|
level waittill( "mortar_volleyFinished" );
|
|
wait( randomfloatrange( 3.0, 3.5 ) );
|
|
thread shipvoplaylines();
|
|
}
|
|
|
|
shipvoplaylines()
|
|
{
|
|
thread shipvoplayoneline( "mp_pirate_cpt_attack" );
|
|
wait( randomfloatrange( 1.0, 1.5 ) );
|
|
|
|
if ( randomint( 2 ) == 0 )
|
|
{
|
|
thread shipvoplayoneline( "mp_pirate_prt1_attack" );
|
|
wait( randomfloatrange( 0.5, 1.0 ) );
|
|
thread shipvoplayoneline( "mp_pirate_prt2_attack" );
|
|
}
|
|
else
|
|
{
|
|
thread shipvoplayoneline( "mp_pirate_prt2_attack" );
|
|
wait( randomfloatrange( 0.5, 1.0 ) );
|
|
thread shipvoplayoneline( "mp_pirate_prt1_attack" );
|
|
}
|
|
}
|
|
|
|
shipvoplayoneline( var_0, var_1 )
|
|
{
|
|
var_2 = self.cannons[randomint( self.cannons.size )];
|
|
var_2 playsoundonmovingent( var_0 );
|
|
}
|
|
|
|
bellssetup( var_0 )
|
|
{
|
|
var_1 = getentarray( var_0, "targetname" );
|
|
|
|
if ( var_1.size <= 0 )
|
|
return;
|
|
|
|
common_scripts\utility::array_thread( var_1, ::bellsdetecthit );
|
|
}
|
|
|
|
bellsdetecthit()
|
|
{
|
|
self setcandamage( 1 );
|
|
self.is_swaying = 0;
|
|
var_0 = "pir_big_bell";
|
|
|
|
if ( isdefined( self.script_noteworthy ) && maps\mp\_utility::isstrstart( self.script_noteworthy, "pir_bell_" ) )
|
|
var_0 = self.script_noteworthy;
|
|
|
|
for (;;)
|
|
{
|
|
self waittill( "damage", var_1, var_2, var_3, var_4, var_5 );
|
|
|
|
if ( !isdefined( var_2 ) || !isplayer( var_2 ) )
|
|
continue;
|
|
|
|
var_6 = var_2 getcurrentweapon();
|
|
|
|
if ( var_5 == "MOD_IMPACT" || var_5 == "MOD_PROJECTILE" || var_5 == "MOD_PROJECTILE_SPLASH" || var_5 == "MOD_GRENADE" || var_5 == "MOD_GRENADE_SPLASH" || var_5 == "MOD_MELEE" || isdefined( var_6 ) && weaponclass( var_6 ) == "sniper" )
|
|
{
|
|
self playsound( var_0 );
|
|
|
|
if ( !self.is_swaying )
|
|
thread bellshitsway( var_2 );
|
|
|
|
wait 0.5;
|
|
}
|
|
}
|
|
}
|
|
|
|
bellshitsway( var_0 )
|
|
{
|
|
level endon( "game_ended" );
|
|
var_1 = anglestoright( self.angles );
|
|
var_2 = vectornormalize( var_0.origin - self.origin );
|
|
var_3 = vectordot( var_1, var_2 ) * 2.0;
|
|
|
|
if ( var_3 > 0.0 )
|
|
var_3 = max( 0.3, var_3 );
|
|
else
|
|
var_3 = min( -0.3, var_3 );
|
|
|
|
self.is_swaying = 1;
|
|
self rotateroll( 15 * var_3, 1.0, 0, 0.5 );
|
|
wait 1;
|
|
self rotateroll( -25 * var_3, 2.0, 0.5, 0.5 );
|
|
wait 2;
|
|
self rotateroll( 15 * var_3, 1.5, 0.5, 0.5 );
|
|
wait 1.5;
|
|
self rotateroll( -5 * var_3, 1.0, 0.5, 0.5 );
|
|
wait 1.0;
|
|
self.is_swaying = 0;
|
|
}
|
|
|
|
setupgrog( var_0 )
|
|
{
|
|
level endon( "game_ended" );
|
|
level._effect["pirate_test2"] = loadfx( "fx/fire/molotov_bottle_fire" );
|
|
level waittill( "match_ending_soon", var_1 );
|
|
var_2 = maps\mp\gametypes\_gamelogic::gettimeremaining() * 0.001 - 30.0;
|
|
|
|
if ( var_1 == "score" )
|
|
{
|
|
if ( maps\mp\_utility::gettimelimit() <= 0 )
|
|
var_2 = 60;
|
|
}
|
|
else
|
|
var_2 = min( var_2, 30 );
|
|
|
|
if ( var_2 > 0 )
|
|
wait( var_2 );
|
|
|
|
var_3 = getent( var_0, "targetname" );
|
|
|
|
if ( isdefined( var_3 ) )
|
|
{
|
|
var_4 = maps\mp\gametypes\_gameobjects::createuseobject( "neutral", var_3, [ var_3 ], ( 0, 0, 0 ) );
|
|
var_4.id = "use";
|
|
var_4 maps\mp\gametypes\_gameobjects::setusetime( 4 );
|
|
var_4 maps\mp\gametypes\_gameobjects::setusetext( &"MP_PIRATE_GROG_USING" );
|
|
var_4 maps\mp\gametypes\_gameobjects::setusehinttext( &"MP_PIRATE_GROG_USE" );
|
|
var_4 maps\mp\gametypes\_gameobjects::setvisibleteam( "any" );
|
|
var_4 maps\mp\gametypes\_gameobjects::allowuse( "any" );
|
|
var_4.onuse = ::grogonuse;
|
|
var_4.onbeginuse = ::grogonbeginuse;
|
|
var_4.onenduse = ::grogonenduse;
|
|
var_4.uses = 3;
|
|
}
|
|
}
|
|
|
|
grogonuse( var_0 )
|
|
{
|
|
if ( !isdefined( var_0.grogtriggered ) )
|
|
{
|
|
var_0 thread grogupdate();
|
|
self.uses--;
|
|
|
|
if ( self.uses == 0 )
|
|
grogmakeunusable();
|
|
}
|
|
else
|
|
var_0 shellshock( "concussion_grenade_mp", 5 );
|
|
}
|
|
|
|
grogonbeginuse( var_0 )
|
|
{
|
|
|
|
}
|
|
|
|
grogonenduse( var_0, var_1, var_2 )
|
|
{
|
|
if ( isplayer( var_1 ) )
|
|
var_1 maps\mp\gametypes\_gameobjects::updateuiprogress( self, 0 );
|
|
}
|
|
|
|
grogmakeunusable()
|
|
{
|
|
maps\mp\gametypes\_gameobjects::disableobject();
|
|
maps\mp\gametypes\_gameobjects::deleteuseobject();
|
|
}
|
|
|
|
grogwaitforuse()
|
|
{
|
|
level endon( "game_ended" );
|
|
|
|
for (;;)
|
|
{
|
|
self waittill( "trigger", var_0 );
|
|
var_0 thread grogupdate( self );
|
|
}
|
|
}
|
|
|
|
grogupdate( var_0 )
|
|
{
|
|
level endon( "game_ended" );
|
|
self endon( "grogStop" );
|
|
|
|
if ( isdefined( self.grogtriggered ) )
|
|
return;
|
|
|
|
self.grogtriggered = 1;
|
|
|
|
if ( !maps\mp\_utility::_hasperk( "specialty_lightweight" ) )
|
|
{
|
|
self.grogperk = 1;
|
|
maps\mp\_utility::giveperk( "specialty_lightweight", 0 );
|
|
}
|
|
|
|
thread grogtimer( 20 );
|
|
|
|
while ( isdefined( self ) && maps\mp\_utility::isreallyalive( self ) )
|
|
{
|
|
var_1 = lengthsquared( self getvelocity() );
|
|
|
|
if ( var_1 > 13225 )
|
|
{
|
|
if ( !isdefined( self.grogged ) )
|
|
{
|
|
self.grogged = 1;
|
|
playfxontag( common_scripts\utility::getfx( "pirate_test2" ), self, "j_mainroot" );
|
|
}
|
|
}
|
|
else if ( isdefined( self.grogged ) )
|
|
grogstopfx();
|
|
|
|
wait 0.25;
|
|
}
|
|
|
|
grogcleanup();
|
|
}
|
|
|
|
grogcleanup()
|
|
{
|
|
if ( isdefined( self ) )
|
|
{
|
|
self.grogtriggered = undefined;
|
|
|
|
if ( isdefined( self.grogperk ) )
|
|
{
|
|
self.grogperk = undefined;
|
|
maps\mp\_utility::_unsetperk( "specialty_lightweight" );
|
|
}
|
|
|
|
grogstopfx();
|
|
}
|
|
}
|
|
|
|
grogtimer( var_0 )
|
|
{
|
|
level endon( "game_ended" );
|
|
self endon( "disconnect" );
|
|
self endon( "death" );
|
|
wait( var_0 );
|
|
self notify( "grogStop" );
|
|
grogcleanup();
|
|
}
|
|
|
|
grogstopfx()
|
|
{
|
|
self.grogged = undefined;
|
|
stopfxontag( common_scripts\utility::getfx( "pirate_test2" ), self, "j_mainroot" );
|
|
}
|
|
|
|
setupconvos()
|
|
{
|
|
level.convolocs = [ "convo_dock_3", "convo_dock_3", "convo_tavern_1", "convo_voodoo_1", "convo_brothel_1" ];
|
|
level.convovos = [ "mp_pirate_vo_docked", "mp_pirate_vo_docked", "mp_pirate_vo_tavern", "mp_pirate_vo_voodoo", "mp_pirate_vo_brothel" ];
|
|
level endon( "game_ended" );
|
|
convoplayone( 60, 120 );
|
|
convoplayone( 240, 360 );
|
|
convoplayone( 240, 360 );
|
|
}
|
|
|
|
convoplayone( var_0, var_1 )
|
|
{
|
|
var_2 = randomintrange( var_0, var_1 );
|
|
wait( var_2 );
|
|
|
|
for ( var_3 = randomint( level.convolocs.size ); level.convolocs[var_3] == ""; var_3 = randomint( level.convolocs.size ) )
|
|
{
|
|
|
|
}
|
|
|
|
var_4 = common_scripts\utility::getstruct( level.convolocs[var_3], "targetname" );
|
|
playsoundatpos( var_4.origin, level.convovos[var_3] );
|
|
level.convolocs[var_3] = "";
|
|
}
|
|
|
|
jailvo()
|
|
{
|
|
level endon( "game_ended" );
|
|
var_0 = [ "mp_pirate_prs_jail_1", "mp_pirate_prs_jail_2", "mp_pirate_prs_jail_3", "mp_pirate_prs_jail_4", "mp_pirate_prs_jail_5" ];
|
|
var_1 = common_scripts\utility::getstruct( "convo_jail_1", "targetname" );
|
|
var_2 = spawn( "script_origin", var_1.origin );
|
|
|
|
for (;;)
|
|
{
|
|
var_3 = randomfloatrange( 120, 180 );
|
|
wait( var_3 );
|
|
var_4 = randomint( var_0.size );
|
|
var_2 playsound( var_0[var_4] );
|
|
}
|
|
}
|