IW4-Dump-Files/maps/_loadout.gsc

3217 lines
95 KiB
Plaintext
Raw Normal View History

2017-07-08 11:47:21 -07:00
#include maps\_utility;
#include common_scripts\utility;
init_loadout()
{
if ( !isdefined( level.dodgeloadout ) )
give_loadout();
level.loadoutComplete = true;
level notify( "loadout complete" );
}
SetDefaultActionSlot()
{
self SetActionSlot( 1, "" );
self SetActionSlot( 2, "" );
self SetActionSlot( 3, "altMode" ); // toggles between attached grenade launcher
self SetActionSlot( 4, "" );
}
init_player()
{
self SetDefaultActionSlot();
self takeAllweapons();
}
// checks if character switched in coop mode, if so returns true, call once.
char_switcher()
{
level.coop_player1 = level.player;
level.coop_player2 = level.player2;
if ( isdefined( level.character_switched ) && level.character_switched )
{
if ( is_coop() )
{
foreach ( player in level.players )
{
player init_player();
}
level.coop_player1 = level.player2;
level.coop_player2 = level.player;
level.character_switched = true;
return true;
}
else
{
level.player init_player();
level.coop_player1 = undefined;
level.coop_player2 = level.player;
level.character_switched = true;
return true;
}
}
return false;
}
give_loadout( character_selected )
{
if ( !isdefined( character_selected ) )
character_selected = false;
level.character_selected = character_selected;
// used to precach weapons for alternate character loadouts, will be replaced by later code efficent support.
possible_precache_items = [];
level.player SetDefaultActionSlot();
if ( is_coop() )
level.player2 SetDefaultActionSlot();
if ( !isdefined( game[ "expectedlevel" ] ) )
game[ "expectedlevel" ] = "";
if ( !isdefined( level.campaign ) )
level.campaign = "american";
if ( string_starts_with( level.script, "pmc_" ) )
{
level.player setViewmodel( "viewmodel_base_viewhands" );
if ( is_coop() )
{
precacheModel( "weapon_parabolic_knife" );
level.player SetModelFunc( ::so_body_player_ranger );
level.player2 SetModelFunc( ::so_body_player_ranger );
level.player2 setViewmodel( "viewmodel_base_viewhands" );
}
level.campaign = "american";
return;
}
if ( is_specialop() )
{
give_loadout_specialops( character_selected );
return;
}
// if ( string_starts_with( level.script, "co_" ) )
// {
// precacheModel( "weapon_parabolic_knife" );
// }
if ( level.script == "background" )
{
level.player takeallweapons();
return;
}
if ( level.script == "iw4_credits" )
{
level.player takeallweapons();
return;
}
if ( level.script == "contingency" )
{
level.starting_sidearm = "usp_silencer";
level.starting_rifle = "m21_scoped_arctic_silenced";
level.player giveWeapon( level.starting_sidearm );
level.player giveWeapon( level.starting_rifle );
level.player giveWeapon( "fraggrenade" );
//order matters
//level.player SetOffhandSecondaryClass( "other" );
//level.player giveWeapon( "semtex_grenade" );
level.player setOffhandSecondaryClass( "flash" );
level.player giveWeapon( "flash_grenade" );
level.player switchToWeapon( level.starting_rifle );
level.player setViewmodel( "viewhands_arctic" );
level.campaign = "american";
return;
}
if ( level.script == "invasion" )
{
level.player giveWeapon( "beretta" );
//level.player giveWeapon( "scar_h" );
//level.player giveWeapon( "scar_h_reflex" );
level.player giveWeapon( "scar_h_reflex_shotgun" );
level.player giveWeapon( "fraggrenade" );
//order matters
//level.player SetOffhandSecondaryClass( "other" );
//level.player giveWeapon( "semtex_grenade" );
level.player giveWeapon( "smoke_grenade_american" );
level.player setOffhandSecondaryClass( "smoke" );
//level.player giveWeapon( "flash_grenade" );
//level.player setOffhandSecondaryClass( "flash" );
//level.player switchToWeapon( "scar_h" );
//level.player switchToWeapon( "scar_h_reflex" );
level.player switchToWeapon( "scar_h_reflex_shotgun" );
level.player setViewmodel( "viewmodel_base_viewhands" );
level.campaign = "american";
return;
}
if ( level.script == "arcadia" )
{
level.player giveWeapon( "beretta" );
//level.player giveWeapon( "scar_h" );
level.player giveWeapon( "scar_h_reflex" );
level.player giveWeapon( "fraggrenade" );
level.player setOffhandSecondaryClass( "flash" );
level.player giveWeapon( "flash_grenade" );
level.player switchToWeapon( "scar_h_reflex" );
level.player setViewmodel( "viewmodel_base_viewhands" );
level.campaign = "american";
return;
}
if ( level.script == "airport" )
{
//level.player giveWeapon( "usp" );
level.player giveWeapon( "m4_grenadier" );
level.player giveWeapon( "m240" );
level.player giveWeapon( "fraggrenade" );
level.player giveWeapon( "flash_grenade" );
level.player setOffhandSecondaryClass( "flash" );
level.player switchToWeapon( "m240" );
level.player setViewmodel( "viewhands_airport" );
level.campaign = "american";
return;
}
if ( level.script == "cliffhanger" )
{
//see player_weapon_init in cliffhanger_code
level.player setViewmodel( "viewhands_arctic" );
level.campaign = "british";
return;
}
if ( level.script == "hacienda" )
{
level.player giveWeapon( "cheytac" );
level.player giveWeapon( "usp_silencer" );
level.player giveWeapon( "fraggrenade" );
level.player giveWeapon( "flash_grenade" );
level.player setOffhandSecondaryClass( "flash" );
level.player switchToWeapon( "cheytac" );
level.player setViewmodel( "viewmodel_base_viewhands" );
level.campaign = "american";
return;
}
if ( level.script == "cityscale" )
{
level.player giveWeapon( "p90" );
level.player givemaxammo( "p90" );
level.player giveWeapon( "usp_silencer" );
level.player givemaxammo( "usp_silencer" );
level.player giveWeapon( "fraggrenade" );
level.player switchToWeapon( "p90" );
level.player setViewmodel( "viewhands_sas_woodland" );
level.campaign = "american";
return;
}
if ( level.script == "tulsa" )
{
level.player giveWeapon( "p90" );
level.player givemaxammo( "p90" );
level.player giveWeapon( "colt45" );
level.player givemaxammo( "colt45" );
level.player giveWeapon( "fraggrenade" );
level.player giveWeapon( "flash_grenade" );
level.player setOffhandSecondaryClass( "flash" );
level.player switchToWeapon( "p90" );
level.player setViewmodel( "viewmodel_base_viewhands" );
level.campaign = "american";
return;
}
if ( level.script == "bridge" )
{
level.player takeAllWeapons();
level.player giveWeapon( "g36c_reflex" );
level.player givemaxammo( "g36c_reflex" );
level.player giveWeapon( "aa12" );
level.player givemaxammo( "aa12" );
level.player giveWeapon( "fraggrenade" );
level.player giveWeapon( "flash_grenade" );
level.player setOffhandSecondaryClass( "flash" );
level.player switchToWeapon( "g36c_reflex" );
level.player setViewmodel( "viewhands_black_kit" );
level.campaign = "secretservice";
return;
}
if ( level.script == "moto" )
{
level.player giveWeapon( "m4m203_silencer_reflex" );
level.player givemaxammo( "m4m203_silencer_reflex" );
level.player giveWeapon( "usp_silencer" );
level.player givemaxammo( "usp_silencer" );
level.player giveWeapon( "fraggrenade" );
level.player switchToWeapon( "m4m203_silencer_reflex" );
level.player setViewmodel( "viewmodel_base_viewhands" );
level.campaign = "american";
return;
}
if ( level.script == "dcburning" )
{
level.player giveWeapon( "m4m203_eotech" );
level.player giveWeapon( "Beretta" );
level.player giveWeapon( "fraggrenade" );
level.player giveWeapon( "flash_grenade" );
level.player setOffhandSecondaryClass( "flash" );
level.player SetActionSlot( 1, "nightvision" );
level.player giveWeapon("claymore");
level.player givemaxammo( "claymore" );
level.player SetActionSlot( 4, "weapon", "claymore" );
level.player setViewmodel( "viewmodel_base_viewhands" );
level.player switchToWeapon( "m4m203_eotech" );
level.campaign = "american";
return;
}
if ( level.script == "trainer" )
{
level.player giveWeapon( "m4_grunt" );
level.player giveWeapon( "deserteagle" );
level.player giveWeapon( "fraggrenade" );
level.player SetWeaponAmmoStock( "fraggrenade", 0 );
level.player SetWeaponAmmoClip( "fraggrenade", 0 );
level.player setViewmodel( "viewmodel_base_viewhands" );
level.player switchToWeapon( "m4_grunt" );
level.campaign = "american";
return;
}
if ( level.script == "dcemp" )
{
level.player giveWeapon( "m4m203_eotech" );
level.player giveWeapon( "Beretta" );
level.player giveWeapon( "fraggrenade" );
level.player giveWeapon( "flash_grenade" );
level.player setOffhandSecondaryClass( "flash" );
//level.player SetActionSlot( 1, "nightvision" );
level.player setViewmodel( "viewhands_us_army_dmg" );
level.player switchToWeapon( "m4m203_eotech" );
level.campaign = "american";
return;
}
if ( level.script == "dc_whitehouse" )
{
// if started from previous level and weapons were saved, carry them over
bWeaponsCarriedOver = RestorePlayerWeaponStatePersistent( "dcemp" );
// if started cold from level select menu, give a loadout
if ( !bWeaponsCarriedOver )
{
level.player giveWeapon( "m4_grenadier" );
level.player giveWeapon( "Beretta" );
level.player giveWeapon( "fraggrenade" );
level.player giveWeapon( "flash_grenade" );
level.player switchToWeapon( "m4_grenadier" );
}
level.player setOffhandSecondaryClass( "flash" );
level.player setViewmodel( "viewmodel_base_viewhands" );
level.campaign = "american";
return;
}
if ( level.script == "roadkill" )
{
weapon = "m14_scoped";
weapon = "m4m203_acog";
//weapon = "javelin";
// "m79"
//level.player giveWeapon( weapon );
level.player giveWeapon( "beretta" );
level.player giveWeapon( "m4m203_eotech" );
level.player giveWeapon( "fraggrenade" );
level.player giveWeapon( "flash_grenade" );
level.player setOffhandSecondaryClass( "flash" );
level.player setViewmodel( "viewmodel_base_viewhands" );
level.player switchToWeapon( "m4m203_eotech" );
level.campaign = "american";
return;
}
if ( level.script == "suburban_america" )
{
level.player giveWeapon( "p90" );
level.player givemaxammo( "p90" );
level.player giveWeapon( "usp_silencer" );
level.player givemaxammo( "usp_silencer" );
level.player giveWeapon( "fraggrenade" );
level.player switchToWeapon( "p90" );
level.player setViewmodel( "viewhands_sas_woodland" );
level.campaign = "american";
return;
}
if ( level.script == "favela" )
{
level.player giveWeapon( "m1014" );
level.player giveWeapon( "masada_grenadier_acog" );
level.player switchToWeapon( "masada_grenadier_acog" );
level.player setViewmodel( "viewhands_tf141_favela" );
level.campaign = "taskforce";
return;
}
if ( level.script == "boneyard" )
{
level.player giveWeapon( "m14_scoped_silencer" );
level.player giveWeapon( "mp5_silencer_reflex" );
level.player setOffhandSecondaryClass( "flash" );
level.player giveWeapon( "fraggrenade" );
level.player giveWeapon( "flash_grenade" );
level.player switchToWeapon( "m14_scoped_silencer" );
level.player setViewmodel( "viewhands_marine_sniper" );
level.campaign = "american";
return;
}
if ( level.script == "af_caves" )
{
primary = "cheytac_silencer";
secondary = "kriss_acog_silencer";
level.player GiveWeapon( secondary );
level.player GiveWeapon( primary );
level.player setOffhandSecondaryClass( "flash" );
level.player giveWeapon( "fraggrenade" );
level.player giveWeapon( "flash_grenade" );
level.player switchToWeapon( primary );
level.player setViewmodel( "viewhands_tf141" );
level.campaign = "american";
return;
}
if ( level.script == "af_chase" || level.script == "af_end" || level.script == "ending" )
{
// if started from previous level and weapons were saved, carry them over
bWeaponsCarriedOver = RestorePlayerWeaponStatePersistent( "af_caves" );
if( ! bWeaponsCarriedOver )
{
level.player giveWeapon( "uzi" );
level.player giveWeapon( "rpd" );
// level.player giveWeapon( "uzi_fast_reload", 0, true );
level.player setOffhandSecondaryClass( "flash" );
level.player giveWeapon( "fraggrenade" );
level.player giveWeapon( "flash_grenade" );
level.player switchToWeapon( "uzi" );
}
level.player setViewmodel( "viewhands_tf141" );
level.campaign = "american";
return;
}
if ( level.script == "co_suburban_america" )
{
// this is too be replaced again by some kind of string table. I just couldn't stand the way it was setup and I think this will translate well to stringtable format.
switch_char = char_switcher();
// co player 1 loadout
so_player_num( 0 );
so_player_giveWeapon( "m4m203_silencer_reflex" );
so_player_giveWeapon( "usp_silencer" );
so_player_giveWeapon( "fraggrenade" );
so_player_giveWeapon( "flash_grenade" );
so_player_set_maxammo( "m4m203_silencer_reflex" );
so_player_set_setOffhandSecondaryClass( "flash" );
so_player_set_switchToWeapon( "m4m203_silencer_reflex" );
so_player_set_setViewmodel( "viewhands_sas_woodland" );
so_player_SetModelFunc( ::so_body_player_woodland, ::so_body_player_woodland_precache );
// co player 2 loadout
so_player_num( 1 );
so_player_giveWeapon( "m14_scoped_silencer_woodland" );
so_player_giveWeapon( "usp_silencer" );
so_player_giveWeapon( "fraggrenade" );
so_player_giveWeapon( "flash_grenade" );
so_player_set_maxammo( "m14_scoped_silencer_woodland" );
so_player_set_setOffhandSecondaryClass( "flash" );
so_player_set_switchToWeapon( "m14_scoped_silencer_woodland" );
so_player_set_setViewmodel( "viewhands_sas_woodland" );
so_player_setactionslot( 4, "weapon", "claymore" );
so_player_SetModelFunc( ::so_body_player_woodland, ::so_body_player_woodland_precache );
so_players_give_loadout();
level.campaign = "british";
return;
}
if ( level.script == "co_overgrown" )
{
// everybody does it different!! I'm making a new way.
switch_char = char_switcher();
if ( !character_selected )
precacheModel( "weapon_parabolic_knife" );
// co player 1 loadout
so_player_num( 0 );
so_player_giveWeapon( "m4m203_silencer_reflex" );
so_player_giveWeapon( "usp_silencer" );
so_player_giveWeapon( "fraggrenade" );
so_player_giveWeapon( "flash_grenade" );
so_player_set_maxammo( "m4m203_silencer_reflex" );
so_player_set_setOffhandSecondaryClass( "flash" );
so_player_set_switchToWeapon( "m4m203_silencer_reflex" );
so_player_set_setViewmodel( "viewhands_sas_woodland" );
so_player_SetModelFunc( ::so_body_player_woodland, ::so_body_player_woodland_precache );
// co player 2 loadout
so_player_num( 1 );
so_player_giveWeapon( "m14_scoped_silencer_woodland" );
so_player_giveWeapon( "usp_silencer" );
so_player_giveWeapon( "fraggrenade" );
so_player_giveWeapon( "flash_grenade" );
so_player_set_maxammo( "m14_scoped_silencer_woodland" );
so_player_set_setOffhandSecondaryClass( "flash" );
so_player_set_switchToWeapon( "m14_scoped_silencer_woodland" );
so_player_set_setViewmodel( "viewhands_sas_woodland" );
so_player_setactionslot( 4, "weapon", "claymore" );
so_player_SetModelFunc( ::so_body_player_woodland, ::so_body_player_woodland_precache );
so_players_give_loadout();
level.campaign = "british";
return;
}
/*
if ( level.script == "co_hunted" )
{
if ( is_coop() )
{
// there is a wait at character selection, can not precache after a wait
if ( !character_selected )
precacheModel( "weapon_parabolic_knife" );
assert( isdefined( level.players ) );
assert( level.players.size >= 2 );
for ( i = 0 ; i < level.players.size ; i++ )
{
level.players[ i ] SetModelFunc( ::so_body_player_ranger );
level.players[ i ] giveWeapon( "Beretta" );
level.players[ i ] giveWeapon( "m4_grenadier" );
level.players[ i ] giveWeapon( "fraggrenade" );
level.players[ i ] giveWeapon( "flash_grenade" );
level.players[ i ] setOffhandSecondaryClass( "flash" );
level.players[ i ] giveWeapon( "laser_targeting_device" );
level.players[ i ] SetActionSlot( 4, "weapon", "laser_targeting_device" );
level.players[ i ] switchToWeapon( "m4_grenadier" );
level.players[ i ] setViewmodel( "viewmodel_base_viewhands" );
}
}
else
{
level.player giveWeapon( "Beretta" );
level.player giveWeapon( "m4_grenadier" );
level.player giveWeapon( "fraggrenade" );
level.player giveWeapon( "flash_grenade" );
level.player setOffhandSecondaryClass( "flash" );
level.player switchToWeapon( "m4_grenadier" );
level.player setViewmodel( "viewmodel_base_viewhands" );
}
return;
}
*/
if ( level.script == "co_crossfire" )
{
foreach ( playerIndex, player in level.players )
{
so_player_num( playerIndex );
so_player_giveWeapon( "Beretta" );
so_player_giveWeapon( "m4_grenadier" );
so_player_giveWeapon( "fraggrenade" );
so_player_giveWeapon( "flash_grenade" );
so_player_giveWeapon( "claymore" );
so_player_set_setOffhandSecondaryClass( "flash" );
so_player_set_switchToWeapon( "m203_m4" );
so_player_set_setViewmodel( "viewmodel_base_viewhands" );
so_player_set_maxammo( "claymore" );
so_player_setactionslot( 4, "weapon", "claymore" );
so_player_SetModelFunc( ::so_body_player_ranger, ::so_body_player_ranger_precache );
}
so_players_give_loadout();
level.campaign = "american";
return;
}
if ( level.script == "killhouse" )
{
level.player giveWeapon( "fraggrenade" );
level.player giveWeapon( "flash_grenade" );
level.player SetWeaponAmmoStock( "fraggrenade", 0 );
level.player SetWeaponAmmoClip( "fraggrenade", 0 );
level.player SetWeaponAmmoStock( "flash_grenade", 0 );
level.player SetWeaponAmmoClip( "flash_grenade", 0 );
level.player setOffhandSecondaryClass( "flash" );
level.player setViewmodel( "viewhands_black_kit" );
if ( is_coop() )
{
precacheModel( "weapon_parabolic_knife" );
level.player SetModelFunc( ::so_body_player_ranger );
level.player2 SetModelFunc( ::so_body_player_ranger );
level.player2 giveWeapon( "fraggrenade" );
level.player2 giveWeapon( "flash_grenade" );
level.player2 SetWeaponAmmoStock( "fraggrenade", 0 );
level.player2 SetWeaponAmmoClip( "fraggrenade", 0 );
level.player2 SetWeaponAmmoStock( "flash_grenade", 0 );
level.player2 SetWeaponAmmoClip( "flash_grenade", 0 );
level.player2 setOffhandSecondaryClass( "flash" );
level.player2 setViewmodel( "viewhands_black_kit" );
}
level.campaign = "british";
return;
}
if ( level.script == "cargoship" )
{
level.player giveWeapon( "USP" );
level.player giveWeapon( "mp5_silencer" );
level.player giveMaxAmmo( "mp5_silencer" );
level.player giveWeapon( "fraggrenade" );
level.player giveWeapon( "flash_grenade" );
level.player switchtoWeapon( "mp5_silencer" );
level.player setOffhandSecondaryClass( "flash" );
level.player setViewmodel( "viewhands_black_kit" );
if ( is_coop() )
{
precacheModel( "weapon_parabolic_knife" );
level.player SetModelFunc( ::so_body_player_ranger );
level.player2 SetModelFunc( ::so_body_player_ranger );
level.player2 giveWeapon( "USP" );
level.player2 giveWeapon( "mp5_silencer" );
level.player2 giveMaxAmmo( "mp5_silencer" );
level.player2 giveWeapon( "fraggrenade" );
level.player2 giveWeapon( "flash_grenade" );
level.player2 switchtoWeapon( "mp5_silencer" );
level.player2 setOffhandSecondaryClass( "flash" );
level.player2 setViewmodel( "viewhands_black_kit" );
}
level.campaign = "british";
return;
}
if ( level.script == "coup" )
{
level.campaign = "american";
return;
}
if ( level.script == "blackout" )
{
level.player giveWeapon( "m4m203_silencer_reflex" );
level.player givemaxammo( "m4m203_silencer_reflex" );
level.player giveWeapon( "m14_scoped_silencer_woodland" );
level.player giveMaxAmmo( "m14_scoped_silencer_woodland" );
level.player giveWeapon( "fraggrenade" );
level.player giveWeapon( "flash_grenade" );
level.player setOffhandSecondaryClass( "flash" );
level.player switchToWeapon( "m14_scoped_silencer_woodland" );
level.player setViewmodel( "viewhands_sas_woodland" );
if ( is_coop() )
{
precacheModel( "weapon_parabolic_knife" );
level.player SetModelFunc( ::so_body_player_ranger );
level.player2 SetModelFunc( ::so_body_player_ranger );
level.player2 giveWeapon( "m4m203_silencer_reflex" );
level.player2 giveWeapon( "m14_scoped_silencer_woodland" );
level.player2 giveWeapon( "fraggrenade" );
level.player2 giveWeapon( "flash_grenade" );
level.player2 setOffhandSecondaryClass( "flash" );
level.player2 setViewmodel( "viewhands_sas_woodland" );
level.player2 switchToWeapon( "m4m203_silencer_reflex" );
}
level.campaign = "american";
return;
}
if ( level.script == "co_killhouse" )
{
switch_char = char_switcher();
// used to precach weapons for alternate character loadouts, will be replaced by later code efficent support.
possible_precache_items[ possible_precache_items.size ] = "mp5_silencer";
possible_precache_items[ possible_precache_items.size ] = "claymore";
// first character
if ( isdefined( level.coop_player1 ) )
{
if ( is_coop() )
level.coop_player1 SetModelFunc( ::so_body_player_woodland );
level.coop_player1 giveWeapon( "usp_silencer" );
level.coop_player1 givemaxammo( "m4m203_silencer_reflex" );
level.coop_player1 giveWeapon( "m4m203_silencer_reflex" );
level.coop_player1 giveWeapon( "fraggrenade" );
level.coop_player1 giveWeapon( "flash_grenade" );
level.coop_player1 setOffhandSecondaryClass( "flash" );
level.coop_player1 switchToWeapon( "m4m203_silencer_reflex" );
level.coop_player1 setViewmodel( "viewhands_black_kit" );
}
// second character
if ( isdefined( level.coop_player2 ) )
{
if ( is_coop() )
level.coop_player2 SetModelFunc( ::so_body_player_woodland );
level.coop_player2 giveWeapon( "usp_silencer" );
level.coop_player2 giveWeapon( "mp5_silencer" );
level.coop_player2 giveMaxAmmo( "mp5_silencer" );
level.coop_player2 giveWeapon( "fraggrenade" );
level.coop_player2 giveWeapon( "flash_grenade" );
level.coop_player2 setOffhandSecondaryClass( "flash" );
level.coop_player2 switchToWeapon( "mp5_silencer" );
level.coop_player2 setViewmodel( "viewhands_black_kit" );
}
if ( !character_selected )
{
if ( is_coop() )
precacheModel( "weapon_parabolic_knife" );
possible_precache( possible_precache_items );
}
level.campaign = "american";
return;
}
if ( level.script == "co_blackout" )
{
// used to precach weapons for alternate character loadouts, this will be replaced by later code efficent support.
possible_precache_items[ possible_precache_items.size ] = "m14_scoped_silencer_woodland";
foreach ( playerIndex, player in level.players )
{
player init_player();
if ( playerIndex % 2 == 0 )
{
player SetModelFunc( ::so_body_player_woodland );
player giveWeapon( "usp_silencer" );
player givemaxammo( "m4m203_silencer_reflex" );
player giveWeapon( "m4m203_silencer_reflex" );
player giveWeapon( "fraggrenade" );
player giveWeapon( "flash_grenade" );
player setOffhandSecondaryClass( "flash" );
player switchToWeapon( "m4m203_silencer_reflex" );
player SetActionSlot( 1, "nightvision" );
player setViewmodel( "viewhands_sas_woodland" );
}
else
{
player SetModelFunc( ::so_body_player_woodland );
player giveWeapon( "usp_silencer" );
player giveWeapon( "m14_scoped_silencer_woodland" );
player giveMaxAmmo( "m14_scoped_silencer_woodland" );
player giveWeapon( "fraggrenade" );
player giveWeapon( "flash_grenade" );
player setOffhandSecondaryClass( "flash" );
player switchToWeapon( "m14_scoped_silencer_woodland" );
player SetActionSlot( 1, "nightvision" );
player setViewmodel( "viewhands_sas_woodland" );
}
}
if ( !character_selected )
{
if ( is_coop() )
precacheModel( "weapon_parabolic_knife" );
possible_precache( possible_precache_items );
}
level.campaign = "american";
return;
}
if ( level.script == "co_rescue" )
{
switch_char = char_switcher();
foreach ( playerIndex, player in level.players )
{
if ( is_coop() )
player SetModelFunc( ::so_body_player_ranger );
player giveWeapon( "Beretta" );
player giveWeapon( "m4_grunt" );
player switchToWeapon( "m4_grunt" );
player giveWeapon( "fraggrenade" );
player giveWeapon( "flash_grenade" );
player setOffhandSecondaryClass( "flash" );
player setViewmodel( "viewmodel_base_viewhands" );
}
if ( !character_selected )
{
if ( is_coop() )
precacheModel( "weapon_parabolic_knife" );
possible_precache( possible_precache_items );
}
level.campaign = "american";
return;
}
if ( level.script == "co_armada" )
{
switch_char = char_switcher();
foreach ( playerIndex, player in level.players )
{
// co player 1 loadout
so_player_num( playerIndex );
so_player_giveWeapon( "Beretta" );
so_player_giveWeapon( "m4_grunt" );
so_player_giveWeapon( "fraggrenade" );
so_player_giveWeapon( "flash_grenade" );
so_player_giveWeapon( "claymore" );
so_player_set_setOffhandSecondaryClass( "flash" );
so_player_set_switchToWeapon( "m4_grunt" );
so_player_set_setViewmodel( "viewmodel_base_viewhands" );
so_player_set_maxammo( "claymore" );
so_player_setactionslot( 4, "weapon", "claymore" );
so_player_SetModelFunc( ::so_body_player_ranger, ::so_body_player_ranger_precache );
}
so_players_give_loadout();
level.campaign = "american";
return;
}
if ( level.script == "armada" )
{
level.player giveWeapon( "Beretta" );
level.player giveWeapon( "m4_grunt" );
level.player switchToWeapon( "m4_grunt" );
level.player giveWeapon( "fraggrenade" );
level.player giveWeapon( "flash_grenade" );
level.player setOffhandSecondaryClass( "flash" );
level.player giveWeapon( "claymore" );
level.player givemaxammo( "claymore" );
level.player SetActionSlot( 4, "weapon", "claymore" );
level.player takeweapon( "claymore" );
level.player setViewmodel( "viewmodel_base_viewhands" );
if ( is_coop() )
{
level.player2 giveWeapon( "Beretta" );
level.player2 giveWeapon( "m4_grunt" );
level.player2 switchToWeapon( "m4_grunt" );
level.player2 giveWeapon( "fraggrenade" );
level.player2 giveWeapon( "flash_grenade" );
level.player2 setOffhandSecondaryClass( "flash" );
level.player2 giveWeapon( "claymore" );
level.player2 givemaxammo( "claymore" );
level.player2 SetActionSlot( 4, "weapon", "claymore" );
level.player2 takeweapon( "claymore" );
level.player2 setViewmodel( "viewmodel_base_viewhands" );
}
level.campaign = "american";
return;
}
if ( level.script == "bog_a" || level.script == "co_break" )
{
level.player giveWeapon( "Beretta" );
level.player giveWeapon( "m4_grenadier" );
level.player giveWeapon( "fraggrenade" );
level.player giveWeapon( "flash_grenade" );
level.player setOffhandSecondaryClass( "flash" );
level.player setViewmodel( "viewmodel_base_viewhands" );
level.player switchToWeapon( "m4_grenadier" );
if ( is_coop() )
{
precacheModel( "weapon_parabolic_knife" );
level.player SetModelFunc( ::so_body_player_ranger );
level.player2 SetModelFunc( ::so_body_player_ranger );
level.player2 giveWeapon( "Beretta" );
level.player2 giveWeapon( "m4_grenadier" );
level.player2 giveWeapon( "fraggrenade" );
level.player2 giveWeapon( "flash_grenade" );
level.player2 setOffhandSecondaryClass( "flash" );
level.player2 setViewmodel( "viewmodel_base_viewhands" );
level.player2 switchToWeapon( "m4_grenadier" );
}
level.campaign = "american";
return;
}
if ( level.script == "oilrig" )
{
level.player giveWeapon( "scar_h_thermal_silencer" );
level.player giveWeapon( "m4m203_silencer_reflex" );
level.player giveWeapon( "fraggrenade" );
level.player giveWeapon( "flash_grenade" );
level.player setOffhandSecondaryClass( "flash" );
level.player setViewmodel( "viewhands_udt" );
level.player switchToWeapon( "m4m203_silencer_reflex" );
level.player giveWeapon("claymore");
level.player SetActionSlot( 4, "weapon", "claymore" );
level.campaign = "seal";
return;
}
if ( level.script == "gulag" )
{
//level.player giveWeapon( "glock" );
//level.player giveWeapon( "barrett" );
//level.player giveWeapon( "ump45" );
//level.player giveWeapon( "fraggrenade" );
//level.player giveWeapon( "flash_grenade" );
//level.player setOffhandSecondaryClass( "flash" );
//level.player setViewmodel( "viewhands_black_kit" );
//level.player switchToWeapon( "barrett" );
//level.player switchToWeapon( "ump45" );
//level.player giveWeapon( "claymore" );
//level.player SetActionSlot( 4, "weapon", "claymore" );
level.campaign = "seal";
return;
}
if( level.script == "favela_escape" )
{
//level.favela_escape_main_weapon = "m4m203_acog";
level.favela_escape_main_weapon = "ump45_acog";
set_legit_weapons_for_favela_escape();
// if started from previous level and weapons were saved, carry them over
bWeaponsCarriedOver = RestorePlayerWeaponStatePersistent( "favela" );
// if started cold from level select menu, give a loadout
if ( !bWeaponsCarriedOver )
{
level.player GiveWeapon( level.favela_escape_main_weapon );
level.player GiveWeapon( "glock" );
level.player SwitchToWeapon( level.favela_escape_main_weapon );
}
else
{
force_player_to_use_legit_sniper_escape_weapon();
}
level.player GiveWeapon( "fraggrenade" );
level.player GiveWeapon( "flash_grenade" );
level.player SetOffhandSecondaryClass( "flash" );
level.player setViewmodel( "viewhands_tf141_favela" );
level.campaign = "taskforce";
return;
}
if ( level.script == "highrise" )
{
level.player giveWeapon( "usp_silencer" );
level.player giveWeapon( "uzi_sd" );
level.player giveWeapon( "fraggrenade" );
level.player giveWeapon( "flash_grenade" );
level.player setOffhandSecondaryClass( "flash" );
level.player setViewmodel( "viewhands_black_kit" );
level.player switchToWeapon( "uzi_sd" );
if ( is_coop() )
{
precacheModel( "weapon_parabolic_knife" );
level.player SetModelFunc( ::so_body_player_seal );
level.player2 SetModelFunc( ::so_body_player_seal );
level.player2 giveWeapon( "usp_silencer" );
level.player2 giveWeapon( "uzi_sd" );
level.player2 giveWeapon( "fraggrenade" );
level.player2 giveWeapon( "flash_grenade" );
level.player2 setOffhandSecondaryClass( "flash" );
level.player2 setViewmodel( "viewhands_black_kit" );
level.player2 switchToWeapon( "uzi_sd" );
}
level.campaign = "american";
return;
}
if ( level.script == "drydock" )
{
level.player giveWeapon( "deserteagle" );
level.player giveWeapon( "g36c_reflex" );
level.player giveWeapon( "fraggrenade" );
level.player giveWeapon( "flash_grenade" );
level.player setOffhandSecondaryClass( "flash" );
level.player setViewmodel( "viewhands_black_kit" );
level.player switchToWeapon( "g36c_reflex" );
if ( is_coop() )
{
precacheModel( "weapon_parabolic_knife" );
level.player SetModelFunc( ::so_body_player_seal );
level.player2 SetModelFunc( ::so_body_player_seal );
level.player2 giveWeapon( "deserteagle" );
level.player2 giveWeapon( "g36c_reflex" );
level.player2 giveWeapon( "fraggrenade" );
level.player2 giveWeapon( "flash_grenade" );
level.player2 setOffhandSecondaryClass( "flash" );
level.player2 setViewmodel( "viewhands_black_kit" );
level.player2 switchToWeapon( "g36c_reflex" );
}
level.campaign = "american";
return;
}
if ( level.script == "bog_a_backhalf" )
{
level.player giveWeapon( "colt45" );
level.player giveWeapon( "m4_grenadier" );
level.player giveWeapon( "fraggrenade" );
level.player giveWeapon( "flash_grenade" );
level.player setOffhandSecondaryClass( "flash" );
level.player giveWeapon( "c4" );
level.player SetActionSlot( 2, "weapon", "c4" );
level.player switchToWeapon( "m4_grenadier" );
level.player setViewmodel( "viewmodel_base_viewhands" );
level.campaign = "american";
return;
}
if ( level.script == "ambush" )
{
level.player giveWeapon( "colt45" );
level.player giveWeapon( "remington700" );
level.player giveWeapon( "fraggrenade" );
level.player giveWeapon( "flash_grenade" );
level.player SetWeaponAmmoStock( "remington700", 10 );
level.player setOffhandSecondaryClass( "flash" );
level.player switchToWeapon( "remington700" );
level.player setViewmodel( "viewhands_sas_woodland" );
level.campaign = "british";
return;
}
if ( level.script == "hunted" )
{
level.player giveWeapon( "colt45" );
level.player giveWeapon( "fraggrenade" );
level.player giveWeapon( "flash_grenade" );
level.player setOffhandSecondaryClass( "flash" );
level.player switchToWeapon( "colt45" );
level.player setViewmodel( "viewhands_sas_woodland" );
if ( is_coop() )
{
precacheModel( "weapon_parabolic_knife" );
level.player SetModelFunc( ::so_body_player_ranger );
level.player2 SetModelFunc( ::so_body_player_ranger );
level.player2 giveWeapon( "colt45" );
level.player2 giveWeapon( "fraggrenade" );
level.player2 giveWeapon( "flash_grenade" );
level.player2 setOffhandSecondaryClass( "flash" );
level.player2 switchToWeapon( "colt45" );
level.player2 setViewmodel( "viewhands_sas_woodland" );
}
level.campaign = "british";
return;
}
if ( level.script == "aftermath" )
{
level.player takeallweapons();
level.player setViewmodel( "viewmodel_base_viewhands" );
level.campaign = "american";
return;
}
if ( level.script == "bog_b" )
{
level.player giveWeapon( "Beretta" );
level.player giveWeapon( "m4_grenadier" );
level.player giveWeapon( "fraggrenade" );
level.player giveWeapon( "flash_grenade" );
level.player giveWeapon( "remote_missile_detonator" );
level.player setOffhandSecondaryClass( "flash" );
level.player switchToWeapon( "m4_grenadier" );
level.player setViewmodel( "viewmodel_base_viewhands" );
level.player SetActionSlot( 4, "weapon", "remote_missile_detonator" );
if ( is_coop() )
{
precacheModel( "weapon_parabolic_knife" );
level.player SetModelFunc( ::so_body_player_ranger );
level.player2 SetModelFunc( ::so_body_player_ranger );
level.player2 giveWeapon( "Beretta" );
level.player2 giveWeapon( "m4_grenadier" );
level.player2 giveWeapon( "fraggrenade" );
level.player2 giveWeapon( "flash_grenade" );
level.player2 setOffhandSecondaryClass( "flash" );
level.player2 switchToWeapon( "m4_grenadier" );
level.player2 setViewmodel( "viewmodel_base_viewhands" );
level.player2 SetActionSlot( 4, "weapon", "remote_missile_detonator" );
}
level.campaign = "american";
return;
}
if ( level.script == "airlift" )
{
level.player giveWeapon( "colt45" );
level.player giveWeapon( "m4_grenadier" );
level.player giveWeapon( "fraggrenade" );
level.player giveWeapon( "flash_grenade" );
level.player setOffhandSecondaryClass( "flash" );
level.player switchToWeapon( "m4_grenadier" );
level.player setViewmodel( "viewmodel_base_viewhands" );
level.campaign = "american";
return;
}
if ( level.script == "village_assault" )
{
level.player giveWeapon( "m4m203_silencer_reflex" );
level.player giveMaxAmmo( "m4m203_silencer_reflex" );
level.player giveWeapon( "m1014" );
level.player giveWeapon( "fraggrenade" );
level.player giveWeapon( "flash_grenade" );
level.player giveMaxAmmo( "flash_grenade" );
level.player setOffhandSecondaryClass( "flash" );
level.player giveWeapon( "c4" );
level.player giveWeapon( "cobra_air_support" );
level.player SetActionSlot( 4, "weapon", "cobra_air_support" );
level.player SetActionSlot( 2, "weapon", "c4" );
level.player switchToWeapon( "m4m203_silencer_reflex" );
level.player setViewmodel( "viewhands_sas_woodland" );
if ( is_coop() )
{
precacheModel( "weapon_parabolic_knife" );
level.player SetModelFunc( ::so_body_player_ranger );
level.player2 SetModelFunc( ::so_body_player_ranger );
level.player2 giveWeapon( "m4m203_silencer_reflex" );
level.player2 giveMaxAmmo( "m4m203_silencer_reflex" );
level.player2 giveWeapon( "m1014" );
level.player2 giveWeapon( "fraggrenade" );
level.player2 giveWeapon( "flash_grenade" );
level.player2 giveMaxAmmo( "flash_grenade" );
level.player2 setOffhandSecondaryClass( "flash" );
level.player2 giveWeapon( "c4" );
level.player2 giveWeapon( "cobra_air_support" );
level.player2 SetActionSlot( 4, "weapon", "cobra_air_support" );
level.player2 SetActionSlot( 2, "weapon", "c4" );
level.player2 switchToWeapon( "m4m203_silencer_reflex" );
level.player2 setViewmodel( "viewhands_sas_woodland" );
}
level.campaign = "british";
return;
}
if ( level.script == "scoutsniper" )
{
level.player giveWeapon( "m14_scoped_silencer" );
level.player givemaxammo( "m14_scoped_silencer" );
level.player giveWeapon( "usp_silencer" );
level.player givemaxammo( "usp_silencer" );
level.player giveWeapon( "fraggrenade" );
level.player switchToWeapon( "m14_scoped_silencer" );
level.player setViewmodel( "viewhands_marine_sniper" );
if ( is_coop() )
{
precacheModel( "weapon_parabolic_knife" );
level.player SetModelFunc( ::so_body_player_ghillie );
level.player2 SetModelFunc( ::so_body_player_ghillie );
level.player giveWeapon( "claymore" );
level.player givemaxammo( "claymore" );
level.player SetActionSlot( 4, "weapon", "claymore" );
level.player2 giveWeapon( "m14_scoped_silencer" );
level.player2 givemaxammo( "m14_scoped_silencer" );
level.player2 giveWeapon( "usp_silencer" );
level.player2 givemaxammo( "usp_silencer" );
level.player2 giveWeapon( "fraggrenade" );
level.player2 giveWeapon( "claymore" );
level.player2 givemaxammo( "claymore" );
level.player2 SetActionSlot( 4, "weapon", "claymore" );
level.player2 switchToWeapon( "m14_scoped_silencer" );
level.player2 setViewmodel( "viewhands_marine_sniper" );
}
level.campaign = "british";
return;
}
if ( level.script == "co_scoutsniper" )
{
precacheModel( "weapon_parabolic_knife" );
foreach ( playerIndex, player in level.players )
{
player SetModelFunc( ::so_body_player_ghillie );
player giveWeapon( "m14_scoped_silencer" );
player givemaxammo( "m14_scoped_silencer" );
player giveWeapon( "usp_silencer" );
player givemaxammo( "usp_silencer" );
player giveWeapon( "fraggrenade" );
player giveWeapon( "claymore" );
player givemaxammo( "claymore" );
player giveWeapon( "c4" );
player SetActionSlot( 2, "weapon", "c4" );
player SetActionSlot( 4, "weapon", "claymore" );
player switchToWeapon( "m14_scoped_silencer" );
player setViewmodel( "viewhands_marine_sniper" );
}
level.campaign = "british";
return;
}
if ( level.script == "sniperescape" )
{
level.sniperescape_main_weapon = "m14_scoped_woodland";
set_legit_weapons_for_sniper_escape();
// if started from previous level and weapons were saved, carry them over
bWeaponsCarriedOver = RestorePlayerWeaponStatePersistent( "scoutsniper" );
// if started cold from level select menu, give a loadout
if ( !bWeaponsCarriedOver )
{
level.player giveWeapon( level.sniperescape_main_weapon );
level.player giveWeapon( "usp_silencer" );
level.player switchtoWeapon( level.sniperescape_main_weapon );
}
else
{
force_player_to_use_legit_sniper_escape_weapon();
}
// set these regardless of starting from level select menu OR previous level
level.campaign = "british";
level.initclaymoreammo = 6;
sniper_escape_initial_secondary_weapon_loadout();
return;
}
if ( level.script == "village_defend" )
{
level.player giveWeapon( "m14_scoped_woodland" );
level.player giveWeapon( "saw" );
level.player giveWeapon( "fraggrenade" );
level.player giveWeapon( "smoke_grenade_american" );
level.player setOffhandSecondaryClass( "smoke" );
level.player giveWeapon( "claymore" );
level.player givemaxammo( "claymore" );
level.player SetActionSlot( 4, "weapon", "claymore" );
level.player switchToWeapon( "saw" );
level.player setViewmodel( "viewhands_sas_woodland" );
level.campaign = "british";
return;
}
if ( level.script == "icbm" )
{
level.player giveWeapon( "m4m203_silencer_reflex" );
level.player switchToWeapon( "m4m203_silencer_reflex" );
level.player giveWeapon( "usp_silencer" );
level.player giveWeapon( "fraggrenade" );
level.player giveWeapon( "flash_grenade" );
level.player setOffhandSecondaryClass( "flash" );
level.player giveWeapon( "claymore" );
level.player SetActionSlot( 4, "weapon", "claymore" );
level.player giveWeapon( "c4" );
level.player SetActionSlot( 2, "weapon", "c4" );
level.player setViewmodel( "viewhands_sas_woodland" );
maps\_load::set_player_viewhand_model( "viewhands_player_sas_woodland" );
level.campaign = "british";
return;
}
if ( level.script == "co_launchfacility_a" )
{
level.player giveWeapon( "m4m203_silencer_reflex" );
level.player giveMaxAmmo( "m4m203_silencer_reflex" );
level.player giveWeapon( "usp_silencer" );
level.player switchToWeapon( "m4m203_silencer_reflex" );
level.initclaymoreammo = 6;
level.player giveWeapon( "claymore" );
level.player givemaxammo( "claymore" );
level.player SetActionSlot( 4, "weapon", "claymore" );
level.player giveWeapon( "fraggrenade" );
level.player giveWeapon( "smoke_grenade_american" );
level.player setOffhandSecondaryClass( "smoke" );
level.player setViewmodel( "viewhands_sas_woodland" );
if ( is_coop() )
{
precacheModel( "weapon_parabolic_knife" );
level.player SetModelFunc( ::so_body_player_woodland );
level.player2 SetModelFunc( ::so_body_player_woodland );
level.player2 giveWeapon( "m1014" );
level.player2 giveMaxAmmo( "m1014" );
level.player2 giveWeapon( "m14_scoped_woodland" );
level.player2 switchToWeapon( "m1014" );
level.initclaymoreammo = 6;
level.player2 giveWeapon( "claymore" );
level.player2 givemaxammo( "claymore" );
level.player2 SetActionSlot( 4, "weapon", "claymore" );
level.player2 giveWeapon( "fraggrenade" );
level.player2 giveWeapon( "smoke_grenade_american" );
level.player2 setOffhandSecondaryClass( "smoke" );
level.player2 setViewmodel( "viewhands_sas_woodland" );
}
level.campaign = "british";
return;
}
if ( level.script == "launchfacility_a" )
{
// if started from previous level and weapons were saved, carry them over
bWeaponsCarriedOver = RestorePlayerWeaponStatePersistent( "icbm" );
// if started cold from level select menu, give a loadout
if ( !bWeaponsCarriedOver )
{
level.player giveWeapon( "usp_silencer" );
level.player giveWeapon( "m4m203_silencer_reflex" );
level.player switchToWeapon( "m4m203_silencer_reflex" );
if ( is_coop() )
{
level.player2 giveWeapon( "usp_silencer" );
level.player2 giveWeapon( "m4m203_silencer_reflex" );
level.player2 switchToWeapon( "m4m203_silencer_reflex" );
}
}
// set these regardless of starting from level select menu OR previous level
level.campaign = "british";
level.initclaymoreammo = 6;
level.player giveWeapon( "claymore" );
level.player givemaxammo( "claymore" );
level.player SetActionSlot( 4, "weapon", "claymore" );
level.player giveWeapon( "c4" );
level.player SetActionSlot( 2, "weapon", "c4" );
level.player setViewmodel( "viewhands_sas_woodland" );
level.player giveWeapon( "fraggrenade" );
level.player giveWeapon( "smoke_grenade_american" );
level.player setOffhandSecondaryClass( "smoke" );
level.player setViewmodel( "viewhands_sas_woodland" );
if ( is_coop() )
{
level.player2 giveWeapon( "claymore" );
level.player2 givemaxammo( "claymore" );
level.player2 SetActionSlot( 4, "weapon", "claymore" );
level.player2 giveWeapon( "c4" );
level.player2 SetActionSlot( 2, "weapon", "c4" );
level.player2 setViewmodel( "viewhands_sas_woodland" );
level.player2 giveWeapon( "fraggrenade" );
level.player2 giveWeapon( "smoke_grenade_american" );
level.player2 setOffhandSecondaryClass( "smoke" );
level.player2 setViewmodel( "viewhands_sas_woodland" );
}
return;
}
if ( level.script == "launchfacility_b" )
{
// if started from previous level and weapons were saved, carry them over
bWeaponsCarriedOver = RestorePlayerWeaponStatePersistent( "launchfacility_a" );
// if started cold from level select menu, give a loadout
if ( !bWeaponsCarriedOver )
{
level.player giveWeapon( "usp_silencer" );
level.player giveWeapon( "m4m203_silencer_reflex" );
level.player switchToWeapon( "m4m203_silencer_reflex" );
if ( is_coop() )
{
level.player2 giveWeapon( "usp_silencer" );
level.player2 giveWeapon( "m4m203_silencer_reflex" );
level.player2 switchToWeapon( "m4m203_silencer_reflex" );
}
}
// set these regardless of starting from level select menu OR previous level
level.campaign = "british";
level.player giveWeapon( "claymore" );
level.player SetActionSlot( 4, "weapon", "claymore" );
level.player giveWeapon( "c4" );
level.player SetActionSlot( 2, "weapon", "c4" );
level.player setViewmodel( "viewhands_sas_woodland" );
level.player giveWeapon( "fraggrenade" );
level.player giveWeapon( "flash_grenade" );
level.player setOffhandSecondaryClass( "flash" );
level.player setViewmodel( "viewhands_sas_woodland" );
if ( is_coop() )
{
precacheModel( "weapon_parabolic_knife" );
level.player SetModelFunc( ::so_body_player_seal );
level.player2 SetModelFunc( ::so_body_player_seal );
level.player2 giveWeapon( "claymore" );
level.player2 SetActionSlot( 4, "weapon", "claymore" );
level.player2 giveWeapon( "c4" );
level.player2 SetActionSlot( 2, "weapon", "c4" );
level.player2 setViewmodel( "viewhands_sas_woodland" );
level.player2 giveWeapon( "fraggrenade" );
level.player2 giveWeapon( "flash_grenade" );
level.player2 setOffhandSecondaryClass( "flash" );
level.player2 setViewmodel( "viewhands_sas_woodland" );
}
return;
}
if ( level.script == "bigcity_destroyed" )
{
level.player giveWeapon( "m4m203_silencer_reflex" );
level.player givemaxammo( "m4m203_silencer_reflex" );
level.player giveWeapon( "fraggrenade" );
level.player giveWeapon( "flash_grenade" );
level.player setOffhandSecondaryClass( "flash" );
level.player setViewmodel( "viewhands_sas_woodland" );
level.player switchToWeapon( "m4m203_silencer_reflex" );
if ( is_coop() )
{
precacheModel( "weapon_parabolic_knife" );
level.player SetModelFunc( ::so_body_player_ranger );
level.player2 SetModelFunc( ::so_body_player_ranger );
level.player2 giveWeapon( "m4m203_silencer_reflex" );
level.player2 giveWeapon( "m14_scoped_silencer_woodland" );
level.player2 giveWeapon( "fraggrenade" );
level.player2 giveWeapon( "flash_grenade" );
level.player2 setOffhandSecondaryClass( "flash" );
level.player2 setViewmodel( "viewhands_sas_woodland" );
level.player2 switchToWeapon( "m4m203_silencer_reflex" );
}
level.campaign = "american";
return;
}
if ( level.script == "iss" )
{
level.player giveWeapon( "m4m203_silencer_reflex" );
level.player givemaxammo( "m4m203_silencer_reflex" );
level.player giveWeapon( "fraggrenade" );
level.player giveWeapon( "flash_grenade" );
level.player setOffhandSecondaryClass( "flash" );
level.player setViewmodel( "viewhands_sas_woodland" );
level.player switchToWeapon( "m4m203_silencer_reflex" );
if ( is_coop() )
{
precacheModel( "weapon_parabolic_knife" );
level.player SetModelFunc( ::so_body_player_ranger );
level.player2 SetModelFunc( ::so_body_player_ranger );
level.player2 giveWeapon( "m4m203_silencer_reflex" );
level.player2 giveWeapon( "m14_scoped_silencer_woodland" );
level.player2 giveWeapon( "fraggrenade" );
level.player2 giveWeapon( "flash_grenade" );
level.player2 setOffhandSecondaryClass( "flash" );
level.player2 setViewmodel( "viewhands_sas_woodland" );
level.player2 switchToWeapon( "m4m203_silencer_reflex" );
}
level.campaign = "american";
return;
}
if ( level.script == "gasstation" )
{
level.player giveWeapon( "m4m203_silencer_reflex" );
level.player givemaxammo( "m4m203_silencer_reflex" );
level.player giveWeapon( "fraggrenade" );
level.player giveWeapon( "flash_grenade" );
level.player setOffhandSecondaryClass( "flash" );
level.player setViewmodel( "viewhands_sas_woodland" );
level.player switchToWeapon( "m4m203_silencer_reflex" );
if ( is_coop() )
{
precacheModel( "weapon_parabolic_knife" );
level.player SetModelFunc( ::so_body_player_ranger );
level.player2 SetModelFunc( ::so_body_player_ranger );
level.player2 giveWeapon( "m4m203_silencer_reflex" );
level.player2 giveWeapon( "m14_scoped_silencer_woodland" );
level.player2 giveWeapon( "fraggrenade" );
level.player2 giveWeapon( "flash_grenade" );
level.player2 setOffhandSecondaryClass( "flash" );
level.player2 setViewmodel( "viewhands_sas_woodland" );
level.player2 switchToWeapon( "m4m203_silencer_reflex" );
}
level.campaign = "american";
return;
}
if ( level.script == "terminal" )
{
level.player giveWeapon( "colt45" );
level.player giveWeapon( "m4m203_silencer_reflex" );
level.player givemaxammo( "m4m203_silencer_reflex" );
level.player giveWeapon( "fraggrenade" );
level.player giveWeapon( "flash_grenade" );
level.player setOffhandSecondaryClass( "flash" );
level.player setViewmodel( "viewhands_sas_woodland" );
level.player switchToWeapon( "m4m203_silencer_reflex" );
if ( is_coop() )
{
precacheModel( "weapon_parabolic_knife" );
level.player SetModelFunc( ::so_body_player_ranger );
level.player2 SetModelFunc( ::so_body_player_ranger );
level.player2 giveWeapon( "m4m203_silencer_reflex" );
level.player2 giveWeapon( "m14_scoped_silencer_woodland" );
level.player2 giveWeapon( "fraggrenade" );
level.player2 giveWeapon( "flash_grenade" );
level.player2 setOffhandSecondaryClass( "flash" );
level.player2 setViewmodel( "viewhands_sas_woodland" );
level.player2 switchToWeapon( "m4m203_silencer_reflex" );
}
level.campaign = "american";
return;
}
if ( level.script == "jeepride" )
{
level.player giveWeapon( "colt45" );
level.player giveWeapon( "M4_grunt" );
level.player switchToWeapon( "M4_grunt" );
level.player giveWeapon( "fraggrenade" );
level.player setViewmodel( "viewhands_sas_woodland" );
level.campaign = "british";
return;
}
if ( level.script == "whitehouse_assault" )
{
level.player giveWeapon( "usp_silencer" );
level.player giveWeapon( "m4_grenadier" );
level.player switchToWeapon( "m4_grenadier" );
level.player giveWeapon( "fraggrenade" );
level.player setViewmodel( "viewhands_black_kit" );
level.campaign = "american";
return;
}
if ( level.script == "simplecredits" )
{
return;
}
if ( level.script == "airplane" )
{
level.player giveWeapon( "usp_silencer" );
level.player giveWeapon( "mp5_silencer" );
level.player giveWeapon( "flash_grenade" );
level.player switchtoWeapon( "mp5_silencer" );
level.player setOffhandSecondaryClass( "flash" );
level.player setViewmodel( "viewhands_black_kit" );
level.campaign = "british";
return;
}
if ( level.script == "co_airplane" )
{
if ( level.players.size > 1 )
{
level.player SetModelFunc( ::so_body_player_seal );
precacheModel( "weapon_parabolic_knife" );
}
for ( i = 0;i < level.players.size;i++ )
{
if ( level.players[ i ] != level.player )
level.players[ i ] SetModelFunc( ::so_body_player_seal );
level.players[ i ] giveWeapon( "usp_silencer" );
level.players[ i ] giveWeapon( "mp5_silencer" );
level.players[ i ] giveWeapon( "flash_grenade" );
level.players[ i ] switchtoWeapon( "mp5_silencer" );
level.players[ i ] setOffhandSecondaryClass( "flash" );
level.players[ i ] setViewmodel( "viewhands_black_kit" );
}
level.campaign = "british";
return;
}
if ( level.script == "estate" )
{
level.main_gun = "masada_digital_grenadier_eotech";
level.player giveWeapon( level.main_gun );
level.player givemaxammo( level.main_gun );
level.player giveWeapon( "beretta" );
level.player givemaxammo( "beretta" );
level.player setOffhandPrimaryClass( "frag" );
level.player giveWeapon( "fraggrenade" );
level.player setOffhandSecondaryClass( "flash" );
level.player giveWeapon( "flash_grenade" );
level.player giveWeapon( "claymore" );
level.player givemaxammo( "claymore" );
level.player SetActionSlot( 4, "weapon", "claymore" );
level.player switchToWeapon( level.main_gun );
level.player setViewmodel( "viewhands_tf141" );
if ( is_coop() )
{
precacheModel( "weapon_parabolic_knife" );
level.player SetModelFunc( ::so_body_player_ghillie );
level.player2 SetModelFunc( ::so_body_player_ghillie );
level.player giveWeapon( "claymore" );
level.player givemaxammo( "claymore" );
level.player SetActionSlot( 4, "weapon", "claymore" );
level.player2 giveWeapon( "m4_grenadier" );
level.player2 givemaxammo( "m4_grenadier" );
level.player2 giveWeapon( "usp" );
level.player2 givemaxammo( "usp" );
level.player2 giveWeapon( "fraggrenade" );
level.player2 giveWeapon( "claymore" );
level.player2 givemaxammo( "claymore" );
level.player2 SetActionSlot( 4, "weapon", "claymore" );
level.player2 switchToWeapon( "m4_grenadier" );
level.player2 setViewmodel( "viewhands_sas_woodland" );
}
level.campaign = "british";
return;
}
if ( issubstr( level.script, "firingrange" ) )
{
return; // no weapons on firing range
}
if ( level.script == "co_strike" )
{
return; // no weapons on firing range
}
if ( level.script == "overwatch" )
{
return; // no weapons
}
// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
// level.script is not a single player level. give default weapons.
println( "loadout.gsc: No level listing in _loadout.gsc, giving default guns" );
level.testmap = true;
give_default_loadout();
}
give_loadout_specialops( character_selected )
{
// Ensures the Beretta is ready in case the players don't have a pistol when they go down
foreach ( player in level.players )
{
player giveWeapon( "beretta" );
player takeWeapon( "beretta" );
}
if ( level.script == "so_crossing_so_bridge" )
{
level.so_campaign = "ranger";
switch_char = char_switcher();
for ( i = 0; i < level.players.size; i++ )
{
so_player_num( i );
so_player_giveWeapon( "fraggrenade" );
so_player_giveWeapon( "flash_grenade" );
so_player_set_setOffhandSecondaryClass( "flash" );
so_player_giveWeapon( "deserteagle" );
so_player_giveWeapon( "scar_h_reflex" );
so_player_set_switchToWeapon( "scar_h_reflex" );
so_player_setup_body( i );
}
so_players_give_loadout();
foreach ( player in level.players )
{
player giveWeapon( "claymore" );
player setActionSlot( 4, "weapon", "claymore" );
player SetWeaponAmmoStock( "claymore", 4 );
player giveWeapon( "c4" );
player setActionSlot( 2, "weapon", "c4" );
}
return;
}
if ( level.script == "so_hidden_so_ghillies" )
{
level.so_campaign = "ghillie";
level.so_stealth = true;
level.coop_incap_weapon = "usp_silencer";
switch_char = char_switcher();
for ( i = 0; i < level.players.size; i++ )
{
so_player_num( i );
so_player_giveWeapon( "fraggrenade" );
// so_player_giveWeapon( "flash_grenade" );
// so_player_set_setOffhandSecondaryClass( "flash" );
so_player_giveWeapon( "usp_silencer" );
so_player_giveWeapon( "cheytac_silencer" );
so_player_set_switchToWeapon( "cheytac_silencer" );
so_player_setup_body( i );
}
so_players_give_loadout();
// Has to be done separately due to order requirements.
foreach ( player in level.players )
{
player giveWeapon( "claymore" );
player setActionSlot( 4, "weapon", "claymore" );
player SetWeaponAmmoStock( "claymore", 4 );
player giveWeapon( "c4" );
player setActionSlot( 2, "weapon", "c4" );
player SetWeaponAmmoStock( "c4", 5 );
}
return;
}
if ( level.script == "so_killspree_invasion" )
{
level.so_campaign = "ranger";
switch_char = char_switcher();
for ( i = 0; i < level.players.size; i++ )
{
so_player_num( i );
so_player_giveWeapon( "beretta" );
so_player_giveWeapon( "scar_h_reflex" );
so_player_giveWeapon( "fraggrenade" );
so_player_set_switchToWeapon( "scar_h_reflex" );
so_player_setup_body( i );
}
so_players_give_loadout();
// Has to be done separately due to order requirements.
foreach ( player in level.players )
{
player SetOffhandSecondaryClass( "other" );
player giveWeapon( "semtex_grenade" );
}
return;
}
if ( level.script == "so_forest_contingency" )
{
level.so_campaign = "arctic";
level.so_stealth = true;
level.coop_incap_weapon = "usp_silencer";
switch_char = char_switcher();
for ( i = 0; i < level.players.size; i++ )
{
so_player_num( i );
so_player_giveWeapon( "fraggrenade" );
so_player_giveWeapon( "flash_grenade" );
so_player_set_setOffhandSecondaryClass( "flash" );
so_player_giveWeapon( "usp_silencer" );
so_player_giveWeapon( "m21_scoped_arctic_silenced" );
so_player_set_switchToWeapon( "m21_scoped_arctic_silenced" );
so_player_setup_body( i );
}
so_players_give_loadout();
return;
}
if ( level.script == "so_rooftop_contingency" )
{
level.so_campaign = "arctic";
switch_char = char_switcher();
for ( i = 0; i < level.players.size; i++ )
{
so_player_num( i );
so_player_giveWeapon( "fraggrenade" );
so_player_giveWeapon( "flash_grenade" );
so_player_set_setOffhandSecondaryClass( "flash" );
so_player_giveWeapon( "deserteagle" );
so_player_giveWeapon( "barrett" );
so_player_set_switchToWeapon( "barrett" );
so_player_setup_body( i );
}
so_players_give_loadout();
return;
}
if ( level.script == "so_sabotage_cliffhanger" )
{
level.so_campaign = "arctic";
level.so_stealth = true;
level.coop_incap_weapon = "usp_silencer";
switch_char = char_switcher();
for ( i = 0; i < level.players.size; i++ )
{
so_player_num( i );
so_player_giveWeapon( "aa12_hb_silencer" );
so_player_giveWeapon( "usp_silencer" );
so_player_giveWeapon( "fraggrenade" );
so_player_giveWeapon( "flash_grenade" );
so_player_set_setOffhandSecondaryClass( "flash" );
so_player_set_switchToWeapon( "aa12_hb_silencer" );
so_player_setup_body( i );
}
so_players_give_loadout();
return;
}
if ( level.script == "so_escape_airport" )
{
level.so_campaign = "ranger";
switch_char = char_switcher();
for ( i = 0; i < level.players.size; i++ )
{
so_player_num( i );
so_player_giveWeapon( "fraggrenade" );
so_player_giveWeapon( "flash_grenade" );
so_player_set_setOffhandSecondaryClass( "flash" );
so_player_giveWeapon( "m240" );
so_player_giveWeapon( "striker" );
so_player_set_switchToWeapon( "striker" );
so_player_setup_body( i );
so_player_giveWeapon( "claymore" );
so_player_set_maxammo( "claymore" );
so_player_setactionslot( 4, "weapon", "claymore" );
}
so_players_give_loadout();
return;
}
if ( level.script == "so_killspree_favela" )
{
level.so_campaign = "desert";
switch_char = char_switcher();
for ( i = 0; i < level.players.size; i++ )
{
so_player_num( i );
so_player_giveWeapon( "ranger" );
so_player_giveWeapon( "tavor_eotech" );
so_player_giveWeapon( "fraggrenade" );
so_player_giveWeapon( "flash_grenade" );
so_player_set_setOffhandSecondaryClass( "flash" );
so_player_set_switchToWeapon( "tavor_eotech" );
so_player_setup_body( i );
}
so_players_give_loadout();
return;
}
if ( level.script == "so_defense_invasion" )
{
level.so_campaign = "ranger";
switch_char = char_switcher();
for ( i = 0; i < level.players.size; i++ )
{
so_player_num( i );
so_player_giveWeapon( "beretta" );
so_player_giveWeapon( "scar_h_reflex" );
so_player_giveWeapon( "fraggrenade" );
so_player_set_switchToWeapon( "scar_h_reflex" );
so_player_setup_body( i );
}
so_players_give_loadout();
// Has to be done separately due to order requirements.
foreach ( player in level.players )
{
player SetOffhandSecondaryClass( "other" );
player giveWeapon( "semtex_grenade" );
}
return;
}
if ( level.script == "so_demo_so_bridge" )
{
level.so_campaign = "ranger";
switch_char = char_switcher();
for ( i = 0; i < level.players.size; i++ )
{
so_player_num( i );
so_player_giveWeapon( "beretta" );
so_player_giveWeapon( "rpg_player" );
so_player_giveWeapon( "fraggrenade" );
so_player_set_switchToWeapon( "rpg_player" );
so_player_setup_body( i );
}
so_players_give_loadout();
// Has to be done separately due to order requirements.
foreach ( player in level.players )
{
player giveWeapon( "claymore" );
player setActionSlot( 4, "weapon", "claymore" );
if ( !is_coop() )
player giveMaxAmmo( "claymore" );
else
player SetWeaponAmmoStock( "claymore", 4 );
player giveWeapon( "c4" );
player setActionSlot( 2, "weapon", "c4" );
if ( !is_coop() )
player giveMaxAmmo( "c4" );
else
player SetWeaponAmmoStock( "c4", 5 );
player SetOffhandSecondaryClass( "other" );
player giveWeapon( "semtex_grenade" );
}
return;
}
if ( level.script == "so_ac130_co_hunted" )
{
level.so_campaign = "woodland";
switch_char = char_switcher();
// there is a wait at character selection, can not precache after a wait
if ( !character_selected )
precacheModel( "weapon_parabolic_knife" );
assert( isdefined( level.players ) );
assert( level.players.size >= 2 );
for ( i = 0 ; i < level.players.size ; i++ )
{
so_player_num( i );
so_player_giveWeapon( "scar_h_reflex" );
so_player_giveWeapon( "beretta" );
so_player_giveWeapon( "fraggrenade" );
// so_player_giveWeapon( "laser_targeting_device" );
so_player_giveWeapon( "flash_grenade" );
so_player_set_setOffhandSecondaryClass( "flash" );
so_player_set_switchToWeapon( "scar_h_reflex" );
// so_player_setactionslot( 4, "weapon", "laser_targeting_device" );
so_player_setup_body( i );
}
so_players_give_loadout();
return;
}
if ( level.script == "so_showers_gulag" )
{
level.so_campaign = "seal";
switch_char = char_switcher();
for ( i = 0; i < level.players.size; i++ )
{
so_player_num( i );
so_player_giveWeapon( "fraggrenade" );
so_player_giveWeapon( "flash_grenade" );
so_player_set_setOffhandSecondaryClass( "flash" );
so_player_giveWeapon( "m4m203_reflex_arctic" );
so_player_giveWeapon( "m1014" );
if ( i == 0 )
so_player_set_switchToWeapon( "m4m203_reflex_arctic" );
else
so_player_set_switchToWeapon( "m1014" );
so_player_setup_body( i );
}
so_players_give_loadout();
foreach( player in level.players )
{
switch( level.gameskill )
{
case 2:
player SetWeaponAmmoStock( "flash_grenade", 2 ); //flash count = 2
player SetWeaponAmmoStock( "m203_m4_reflex_arctic", 4 ); //m203 count = 5 ( one is in the clip )
break;
case 3:
player SetWeaponAmmoStock( "flash_grenade", 1 ); //flash count = 1
player SetWeaponAmmoStock( "m203_m4_reflex_arctic", 1 ); //m203 count = 2 ( one is in the clip )
break;
}
}
return;
}
if ( level.script == "so_assault_oilrig" )
{
level.so_campaign = "seal";
switch_char = char_switcher();
for ( i = 0; i < level.players.size; i++ )
{
so_player_num( i );
so_player_giveWeapon( "fraggrenade" );
so_player_giveWeapon( "flash_grenade" );
so_player_set_setOffhandSecondaryClass( "flash" );
so_player_giveWeapon( "m4m203_reflex" );
so_player_giveWeapon( "m1014" );
so_player_giveWeapon("claymore");
so_player_set_maxammo( "claymore" );
so_player_setactionslot( 4, "weapon", "claymore" );
if ( i == 0 )
so_player_set_switchToWeapon( "m4m203_reflex" );
else
so_player_set_switchToWeapon( "m4m203_reflex" );
so_player_setup_body( i );
}
so_players_give_loadout();
return;
}
if ( level.script == "so_killspree_trainer" )
{
level.so_campaign = "ranger";
switch_char = char_switcher();
for ( i = 0; i < level.players.size; i++ )
{
so_player_num( i );
so_player_giveWeapon( "m4_grunt" );
so_player_giveWeapon( "usp" );
if ( i == 0 )
so_player_set_switchToWeapon( "m4_grunt" );
else
so_player_set_switchToWeapon( "m4_grunt" );
so_player_setup_body( i );
}
so_players_give_loadout();
return;
}
if( level.script == "so_defuse_favela_escape" )
{
level.so_campaign = "desert";
switch_char = char_switcher();
for ( i = 0; i < level.players.size; i++ )
{
so_player_num( i );
so_player_giveWeapon( "m1014_eotech" );
so_player_giveWeapon( "fraggrenade" );
so_player_giveWeapon( "flash_grenade" );
so_player_set_setOffhandSecondaryClass( "flash" );
so_player_setup_body( i );
}
so_players_give_loadout();
foreach ( player in level.players )
{
player giveWeapon( "glock_akimbo", 0 , true );
player switchToWeapon( "glock_akimbo" );
}
return;
}
/*
if( level.script == "so_defense_dcemp" )
{
level.so_campaign = "ranger";
switch_char = char_switcher();
for ( i = 0; i < level.players.size; i++ )
{
so_player_num( i );
so_player_giveWeapon( "m4m203_eotech" );
so_player_giveWeapon( "Beretta" );
so_player_giveWeapon( "fraggrenade" );
so_player_giveWeapon( "flash_grenade" );
so_player_set_setOffhandSecondaryClass( "flash" );
so_player_set_switchToWeapon( "m4m203_eotech" );
so_player_setup_body( i );
}
so_players_give_loadout();
return;
}
*/
if ( level.script == "so_timed_so_quicky" )
{
// level.so_campaign = "ranger";
// level.so_campaign = "seal";
// level.so_campaign = "arctic";
level.so_campaign = "woodland";
// level.so_campaign = "desert";
// level.so_campaign = "ghillie";
give_default_loadout();
foreach ( player in level.players )
{
player takeWeapon( "mp5" );
player giveWeapon( "m14ebr_thermal" );
player switchToWeapon( "m14ebr_thermal" );
}
return;
}
if ( level.script == "so_takeover_oilrig" )
{
level.so_campaign = "seal";
switch_char = char_switcher();
for ( i = 0; i < level.players.size; i++ )
{
so_player_num( i );
so_player_giveWeapon( "m240" );
so_player_set_maxammo( "m240" );
so_player_giveWeapon( "m79" );
so_player_set_maxammo( "m79" );
so_player_giveWeapon( "fraggrenade" );
so_player_set_maxammo( "fraggrenade" );
so_player_giveWeapon( "flash_grenade" );
so_player_set_maxammo( "flash_grenade" );
so_player_set_setOffhandSecondaryClass( "flash" );
so_player_giveWeapon("claymore");
so_player_set_maxammo( "claymore" );
so_player_setactionslot( 4, "weapon", "claymore" );
so_player_set_switchToWeapon( "m240" );
so_player_setup_body( i );
}
so_players_give_loadout();
return;
}
if ( level.script == "so_takeover_estate" )
{
level.so_campaign = "woodland";
level.so_stealth = true;
switch_char = char_switcher();
for ( i = 0; i < level.players.size; i++ )
{
so_player_num( i );
so_player_giveWeapon( "fraggrenade" );
so_player_giveWeapon( "flash_grenade" );
so_player_set_setOffhandSecondaryClass( "flash" );
so_player_giveWeapon( "m4m203_eotech" );
so_player_giveWeapon( "barrett" );
so_player_giveWeapon("claymore");
so_player_set_maxammo( "claymore" );
so_player_setactionslot( 4, "weapon", "claymore" );
so_player_set_switchToWeapon( "m4m203_eotech" );
so_player_setup_body( i );
}
so_players_give_loadout();
return;
}
if ( level.script == "so_intel_boneyard" )
{
level.so_campaign = "desert";
switch_char = char_switcher();
for ( i = 0; i < level.players.size; i++ )
{
so_player_num( i );
so_player_giveWeapon( "fraggrenade" );
so_player_giveWeapon( "flash_grenade" );
so_player_set_setOffhandSecondaryClass( "flash" );
so_player_giveWeapon( "m4m203_reflex" );
so_player_giveWeapon( "cheytac" );
so_player_set_switchToWeapon( "m4m203_reflex" );
so_player_setup_body( i );
}
so_players_give_loadout();
return;
}
if ( level.script == "so_juggernauts_favela" )
{
level.so_campaign = "desert";
switch_char = char_switcher();
for ( i = 0; i < level.players.size; i++ )
{
so_player_num( i );
so_player_giveWeapon( "m79" );
so_player_set_maxammo( "m79" );
so_player_giveWeapon( "rpg_player" );
so_player_set_maxammo( "rpg_player" );
so_player_giveWeapon("c4");
so_player_set_maxammo( "c4" );
so_player_setactionslot( 2, "weapon", "c4" );
so_player_giveWeapon("claymore");
so_player_set_maxammo( "claymore" );
so_player_setactionslot( 4, "weapon", "claymore" );
so_player_giveWeapon( "fraggrenade" );
so_player_giveWeapon( "flash_grenade" );
so_player_set_setOffhandSecondaryClass( "flash" );
so_player_set_switchToWeapon( "m79" );
so_player_setup_body( i );
}
so_players_give_loadout();
return;
}
if ( level.script == "so_download_arcadia" )
{
level.so_campaign = "ranger";
switch_char = char_switcher();
for ( i = 0; i < level.players.size; i++ )
{
so_player_num( i );
so_player_giveWeapon( "fraggrenade" );
so_player_giveWeapon( "flash_grenade" );
so_player_set_setOffhandSecondaryClass( "flash" );
so_player_giveWeapon( "scar_h_reflex" );
so_player_giveWeapon( "beretta" );
so_player_set_switchToWeapon( "scar_h_reflex" );
so_player_setup_body( i );
}
so_players_give_loadout();
return;
}
if ( level.script == "so_chopper_invasion" )
{
level.so_campaign = "ranger";
switch_char = char_switcher();
for ( i = 0; i < level.players.size; i++ )
{
so_player_num( i );
so_player_giveWeapon("c4");
so_player_set_maxammo( "c4" );
so_player_setactionslot( 2, "weapon", "c4" );
so_player_giveWeapon("claymore");
so_player_set_maxammo( "claymore" );
so_player_setactionslot( 4, "weapon", "claymore" );
so_player_giveWeapon( "fraggrenade" );
so_player_giveWeapon( "flash_grenade" );
so_player_set_setOffhandSecondaryClass( "flash" );
so_player_giveWeapon( "ump45_digital_eotech" );
so_player_giveWeapon( "deserteagle" );
so_player_set_switchToWeapon( "ump45_digital_eotech" );
so_player_setup_body( i );
}
so_players_give_loadout();
return;
}
if ( level.script == "so_snowrace1_cliffhanger" )
{
level.so_campaign = "arctic";
give_default_loadout();
return;
}
if ( level.script == "so_snowrace2_cliffhanger" )
{
level.so_campaign = "arctic";
give_default_loadout();
return;
}
// -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
println( "loadout.gsc: No level listing in _loadout::give_loadout_specialops(), giving default guns" );
level.testmap = true;
level.so_campaign = "ranger";
give_default_loadout();
}
// To precache possible weapons for alternate character loadout
possible_precache( possible_precache_items )
{
foreach ( item in possible_precache_items )
PreCacheItem( item );
}
give_default_loadout()
{
if ( is_coop() )
{
switch_char = char_switcher();
give_default_loadout_coop( 0 );
give_default_loadout_coop( 1 ) ;
so_players_give_loadout();
return;
}
level.player giveWeapon( "fraggrenade" );
level.player giveWeapon( "flash_grenade" );
level.player setOffhandSecondaryClass( "flash" );
if ( is_specialop() )
level.player giveWeapon( "m1014" );
level.player giveWeapon( "mp5" );
level.player switchToWeapon( "mp5" );
level.player setViewmodel( "viewmodel_base_viewhands" );
}
give_default_loadout_coop( num )
{
so_player_num( num );
so_player_giveWeapon( "fraggrenade" );
so_player_giveWeapon( "flash_grenade" );
so_player_set_setOffhandSecondaryClass( "flash" );
so_player_giveWeapon( "mp5" );
so_player_giveWeapon( "m1014" );
if (num == 0)
so_player_set_switchToWeapon( "mp5" );
else
so_player_set_switchToWeapon( "m1014" );
so_player_setup_body( num );
}
///////////////////////////////////////////////
// SavePlayerWeaponStatePersistent
//
// Saves the player's weapons and ammo state persistently( in the game variable )
// so that it can be restored in a different map.
// You can use strings for the slot:
//
// SavePlayerWeaponStatePersistent( "russianCampaign" );
//
// Or you can just use numbers:
//
// SavePlayerWeaponStatePersistent( 0 );
// SavePlayerWeaponStatePersistent( 1 ); etc.
//
// In a different map, you can restore using RestorePlayerWeaponStatePersistent( slot );
// Make sure that you always persist the data between map changes.
SavePlayerWeaponStatePersistent( slot )
{
level.player endon( "death" );
if ( level.player.health == 0 )
return;
current = level.player GetCurrentPrimaryWeapon();
if ( ( !isdefined( current ) ) || ( current == "none" ) )
assertmsg( "Player's current weapon is 'none' or undefined. Make sure 'disableWeapons()' has not been called on the player when trying to save weapon states." );
game[ "weaponstates" ][ slot ][ "current" ] = current;
offhand = level.player getcurrentoffhand();
game[ "weaponstates" ][ slot ][ "offhand" ] = offhand;
game[ "weaponstates" ][ slot ][ "list" ] = [];
weapList = array_combine( level.player GetWeaponsListPrimaries(), level.player GetWeaponsListOffhands() );
for ( weapIdx = 0; weapIdx < weapList.size; weapIdx++ )
{
game[ "weaponstates" ][ slot ][ "list" ][ weapIdx ][ "name" ] = weapList[ weapIdx ];
// below is only used if we want to NOT give max ammo
// game[ "weaponstates" ][ slot ][ "list" ][ weapIdx ][ "clip" ] = level.player GetWeaponAmmoClip( weapList[ weapIdx ] );
// game[ "weaponstates" ][ slot ][ "list" ][ weapIdx ][ "stock" ] = level.player GetWeaponAmmoStock( weapList[ weapIdx ] );
}
}
RestorePlayerWeaponStatePersistent( slot )
{
if ( !isDefined( game[ "weaponstates" ] ) )
return false;
if ( !isDefined( game[ "weaponstates" ][ slot ] ) )
return false;
level.player takeallweapons();
for ( weapIdx = 0; weapIdx < game[ "weaponstates" ][ slot ][ "list" ].size; weapIdx++ )
{
weapName = game[ "weaponstates" ][ slot ][ "list" ][ weapIdx ][ "name" ];
if ( isdefined( level.legit_weapons ) )
{
// weapon doesn't exist in this level
if ( !isdefined( level.legit_weapons[ weapName ] ) )
continue;
}
// don't carry over C4 or claymores
if ( weapName == "c4" )
continue;
if ( weapName == "claymore" )
continue;
level.player GiveWeapon( weapName );
level.player GiveMaxAmmo( weapName );
// below is only used if we want to NOT give max ammo
// level.player SetWeaponAmmoClip( weapName, game[ "weaponstates" ][ slot ][ "list" ][ weapIdx ][ "clip" ] );
// level.player SetWeaponAmmoStock( weapName, game[ "weaponstates" ][ slot ][ "list" ][ weapIdx ][ "stock" ] );
}
if ( isdefined( level.legit_weapons ) )
{
weapname = game[ "weaponstates" ][ slot ][ "offhand" ];
if ( isdefined( level.legit_weapons[ weapName ] ) )
level.player switchtooffhand( weapname );
weapname = game[ "weaponstates" ][ slot ][ "current" ];
if ( isdefined( level.legit_weapons[ weapName ] ) )
level.player SwitchToWeapon( weapname );
}
else
{
level.player switchtooffhand( game[ "weaponstates" ][ slot ][ "offhand" ] );
level.player SwitchToWeapon( game[ "weaponstates" ][ slot ][ "current" ] );
}
return true;
}
sniper_escape_initial_secondary_weapon_loadout()
{
level.player giveWeapon( "claymore" );
level.player giveWeapon( "c4" );
if ( level.gameskill >= 2 )
{
level.player SetWeaponAmmoClip( "claymore", 10 );
level.player SetWeaponAmmoClip( "c4", 6 );
}
else
{
level.player SetWeaponAmmoClip( "claymore", 8 );
level.player SetWeaponAmmoClip( "c4", 3 );
}
level.player SetActionSlot( 4, "weapon", "claymore" );
level.player SetActionSlot( 2, "weapon", "c4" );
level.player giveWeapon( "fraggrenade" );
level.player giveWeapon( "flash_grenade" );
level.player setOffhandSecondaryClass( "flash" );
level.player setViewmodel( "viewhands_marine_sniper" );
}
set_legit_weapons_for_sniper_escape()
{
legit_weapons = [];
legit_weapons = [];
legit_weapons[ "mp5" ] = true;
legit_weapons[ "usp_silencer" ] = true;
legit_weapons[ "ak47" ] = true;
legit_weapons[ "g3" ] = true;
legit_weapons[ "usp" ] = true;
legit_weapons[ level.sniperescape_main_weapon ] = true;
legit_weapons[ "dragunov" ] = true;
legit_weapons[ "winchester1200" ] = true;
legit_weapons[ "beretta" ] = true;
legit_weapons[ "rpd" ] = true;
legit_weapons[ "rpg" ] = true;
level.legit_weapons = legit_weapons;
}
set_legit_weapons_for_favela_escape()
{
legit_weapons = [];
legit_weapons[ level.favela_escape_main_weapon ] = true;
legit_weapons[ "beretta" ] = true;
legit_weapons[ "glock" ] = true;
legit_weapons[ "uzi" ] = true;
legit_weapons[ "mp5" ] = true;
legit_weapons[ "ump45" ] = true;
legit_weapons[ "ump45_acog" ] = true;
legit_weapons[ "ump45_reflex" ] = true;
legit_weapons[ "ranger" ] = true;
legit_weapons[ "model1887" ] = true;
legit_weapons[ "m4m203_reflex" ] = true;
legit_weapons[ "m4m203_eotech" ] = true;
legit_weapons[ "m4_grenadier" ] = true;
legit_weapons[ "m4_grunt" ] = true;
legit_weapons[ "tavor_mars" ] = true;
legit_weapons[ "tavor_acog" ] = true;
legit_weapons[ "masada" ] = true;
legit_weapons[ "masada_acog" ] = true;
legit_weapons[ "masada_reflex" ] = true;
legit_weapons[ "scar_h" ] = true;
legit_weapons[ "scar_h_acog" ] = true;
legit_weapons[ "scar_h_reflex" ] = true;
legit_weapons[ "scar_h_shotgun" ] = true;
legit_weapons[ "ak47" ] = true;
legit_weapons[ "ak47_acog" ] = true;
legit_weapons[ "ak47_reflex" ] = true;
legit_weapons[ "dragunov" ] = true;
legit_weapons[ "rpd" ] = true;
legit_weapons[ "m240_reflex" ] = true;
legit_weapons[ "rpg" ] = true;
legit_weapons[ "m79" ] = true;
level.legit_weapons = legit_weapons;
}
set_legit_weapons_for_dc_whitehouse()
{
legit_weapons = [];
legit_weapons[ level.dc_whitehouse_main_weapon ] = true;
legit_weapons[ "beretta" ] = true;
legit_weapons[ "glock" ] = true;
legit_weapons[ "uzi" ] = true;
legit_weapons[ "mp5" ] = true;
legit_weapons[ "ump45" ] = true;
legit_weapons[ "ump45_acog" ] = true;
legit_weapons[ "ump45_reflex" ] = true;
legit_weapons[ "ranger" ] = true;
legit_weapons[ "model1887" ] = true;
legit_weapons[ "m4m203_reflex" ] = true;
legit_weapons[ "m4m203_eotech" ] = true;
legit_weapons[ "m4_grenadier" ] = true;
legit_weapons[ "m4_grunt" ] = true;
legit_weapons[ "tavor_mars" ] = true;
legit_weapons[ "tavor_acog" ] = true;
legit_weapons[ "masada" ] = true;
legit_weapons[ "masada_acog" ] = true;
legit_weapons[ "masada_reflex" ] = true;
legit_weapons[ "scar_h" ] = true;
legit_weapons[ "scar_h_acog" ] = true;
legit_weapons[ "scar_h_reflex" ] = true;
legit_weapons[ "scar_h_shotgun" ] = true;
legit_weapons[ "ak47" ] = true;
legit_weapons[ "ak47_acog" ] = true;
legit_weapons[ "ak47_reflex" ] = true;
legit_weapons[ "dragunov" ] = true;
legit_weapons[ "rpd" ] = true;
legit_weapons[ "m240_reflex" ] = true;
legit_weapons[ "rpg" ] = true;
legit_weapons[ "m79" ] = true;
level.legit_weapons = legit_weapons;
}
max_ammo_on_legit_sniper_escape_weapon()
{
heldweapons = level.player GetWeaponsListAll();
for ( i = 0; i < heldweapons.size; i++ )
{
weapon = heldweapons[ i ];
if ( !isdefined( level.legit_weapons[ weapon ] ) )
continue;
if ( weapon == "rpg" )
continue;
level.player givemaxammo( weapon );
}
}
force_player_to_use_legit_sniper_escape_weapon()
{
heldweapons = level.player GetWeaponsListAll();
// take away weapons mo has in scoutsniper that we dont have in sniperescape
held_weapons = [];
count = 0;
for ( i = 0; i < heldweapons.size; i++ )
{
weapon = heldweapons[ i ];
held_weapons[ weapon ] = true;
if ( isdefined( level.legit_weapons[ weapon ] ) )
{
count++ ;
continue;
}
level.player takeweapon( weapon );
}
if ( count == 2 )
return;
if ( count == 0 )
{
// need to fill in a slot
level.player giveweapon( "ak47" );
level.player switchtoWeapon( "ak47" );
}
// does player have a sniper rifle?
if ( !isdefined( held_weapons[ level.sniperescape_main_weapon ] ) && !isdefined( held_weapons[ "dragunov" ] ) )
{
level.player giveweapon( level.sniperescape_main_weapon );
level.player switchtoWeapon( level.sniperescape_main_weapon );
}
}
//======================prototype=======================
// coop character selection script:
coop_gamesetup_menu()
{
assert( is_coop() );
// update difficulty:
maps\_gameskill::setGlobalDifficulty();
foreach ( idx, player in level.players )
player maps\_gameskill::setDifficulty();
// character selection:
level.character_switched = false;
flag_init( "character_selected" );
char_select_levels = ""; // "co_blackout co_suburban_america co_overgrown
levels_array = [];
levels_array = strTok( char_select_levels, " " );
foreach ( level_string in levels_array )
{
if ( level_string == level.script )
{
// non-switched
flag_set( "character_selected" );
//precacheMenu( "coop_characterselect" );
//character_select_menu();
}
}
char_select_coop_ac130 = "so_ac130_co_hunted co_hunted co_ac130";
levels_array_ac130 = [];
levels_array_ac130 = strTok( char_select_coop_ac130, " " );
foreach ( level_string in levels_array_ac130 )
{
if ( is_coop() && ( level_string == level.script ) )
{
pilot_num = getdvar( "ui_ac130_pilot_num" );
if ( isdefined( pilot_num ) && pilot_num != "0" )
level.character_switched = true;
//reset
//setdvar ( "ui_ac130_pilot_num", "" );
flag_set( "character_selected" );
//precacheMenu( "coop_characterselect" );
//character_select_menu();
}
}
}
/*
character_select_menu()
{
setup_character_menu();
// close previous menus and open character selection
level.response_queue = [];
setblur( 2, .1 );
foreach ( idx, player in level.players )
{
player closepopupMenu();
player freezecontrols( true );
player openpopupMenu( "coop_characterselect" );
flag_init( "player" + idx + "_ready" );
thread waittill_each_ready( player, "player" + idx + "_ready" );
add_wait( ::flag_wait, "player" + idx + "_ready" );
}
do_wait();
setblur( 0, .2 );
foreach ( player in level.players )
{
player closepopupMenu();
player freezecontrols( false );
}
// responses
assert( isdefined( level.response_queue[ 0 ] ) );
first_player = level.response_queue[ 0 ][ "player" ];
first_player_response = level.response_queue[ 0 ][ "response" ];
//assert( isdefined( level.response_queue[ 1 ] ) );
//second_player = level.response_queue[ 1 ][ "player" ];
//second_player_response = level.response_queue[ 1 ][ "response" ];
// coop two player situation:
if ( first_player == level.player )
{
if ( first_player_response == "char2" )
{
level.character_switched = true;
maps\_loadout::give_loadout( true );
}
}
else
{
if ( first_player_response == "char1" )
{
level.character_switched = true;
maps\_loadout::give_loadout( true );
}
}
flag_set( "character_selected" );
//autosave_now( true );
}
*/
/*
waittill_each_ready( player, ready_flag )
{
response = " ";
while ( response != "char1" && response != "char2" )
{
player waittill( "menuresponse", menu, response );
index = level.response_queue.size;
level.response_queue[ index ] = [];
level.response_queue[ index ][ "player" ] = player;
level.response_queue[ index ][ "response" ] = response;
break;
}
flag_set( ready_flag );
}
*/
/*
// temp - prototype, will be using string tables in the future
setup_character_menu()
{
if ( level.script == "co_ac130" || level.script == "co_hunted" )
{
setdvar( "ui_character1_name", "AC130" );
setdvar( "ui_character1_image", "level_character_ac130" );
setdvar( "ui_character1_primary", "ui_transparent" );
setdvar( "ui_character1_inv", "ui_transparent" );
setdvar( "ui_character1_inv_counter", "" );
setdvar( "ui_character2_name", "James" );
setdvar( "ui_character2_image", "level_character_james" );
setdvar( "ui_character2_primary", "weapon_m4carbine" );
setdvar( "ui_character2_inv", "weapon_attachment_m203" );
setdvar( "ui_character2_inv_counter", "x10" );
return;
}
else if ( level.script == "co_blackout" )
{
setdvar( "ui_character1_name", "Price" );
setdvar( "ui_character1_image", "level_character_price" );
setdvar( "ui_character1_primary", "weapon_m4carbine" );
setdvar( "ui_character1_inv", "weapon_attachment_m203" );
setdvar( "ui_character1_inv_counter", "x10" );
setdvar( "ui_character2_name", "Gaz" );
setdvar( "ui_character2_image", "level_character_gaz" );
setdvar( "ui_character2_primary", "weapon_m14_scoped" );
setdvar( "ui_character2_inv", "ui_transparent" );
setdvar( "ui_character2_inv_counter", "" );
return;
}
else if ( level.script == "co_overgrown" )
{
setdvar( "ui_character1_name", "Price" );
setdvar( "ui_character1_image", "level_character_price" );
setdvar( "ui_character1_primary", "weapon_m4carbine" );
setdvar( "ui_character1_inv", "weapon_attachment_m203" );
setdvar( "ui_character1_inv_counter", "x10" );
setdvar( "ui_character2_name", "Gaz" );
setdvar( "ui_character2_image", "level_character_gaz" );
setdvar( "ui_character2_primary", "weapon_m14_scoped" );
setdvar( "ui_character2_inv", "weapon_claymore" );
setdvar( "ui_character2_inv_counter", "x10" );
return;
}
else if ( level.script == "co_suburban_america" )
{
setdvar( "ui_character1_name", "Price" );
setdvar( "ui_character1_image", "level_character_price" );
setdvar( "ui_character1_primary", "weapon_m4carbine" );
setdvar( "ui_character1_inv", "weapon_attachment_m203" );
setdvar( "ui_character1_inv_counter", "x10" );
setdvar( "ui_character2_name", "Gaz" );
setdvar( "ui_character2_image", "level_character_gaz" );
setdvar( "ui_character2_primary", "weapon_m14_scoped" );
setdvar( "ui_character2_inv", "weapon_claymore" );
setdvar( "ui_character2_inv_counter", "x10" );
return;
}
// Default
setdvar( "ui_character1_name", "Price" );
setdvar( "ui_character1_image", "level_character_price" );
setdvar( "ui_character1_primary", "weapon_m4carbine" );
setdvar( "ui_character1_inv", "weapon_attachment_m203" );
setdvar( "ui_character1_inv_counter", "x10" );
setdvar( "ui_character2_name", "Gaz" );
setdvar( "ui_character2_image", "level_character_gaz" );
setdvar( "ui_character2_primary", "weapon_m14_scoped" );
setdvar( "ui_character2_inv", "weapon_claymore" );
setdvar( "ui_character2_inv_counter", "x10" );
}
*/
//==========================================
/*
=============
///ScriptDocBegin
"Name: coop_gamesetup_ac130()"
"Summary: Opens difficulty menus for both co-op players and returns selected AC130 pilot (player entity). Must call precacheMenu("coop_setup"); precacheMenu("coop_setup2"); in level script."
"Module: gameskill"
"Example: ac130_pilot = coop_gamesetup_ac130();"
"SPMP: singleplayer"
///ScriptDocEnd
=============
*/
coop_gamesetup_ac130()
{
assertex( isdefined( level.specops_character_selector ), "Failed to select character" );
if ( level.specops_character_selector == "so_char_host" )
return level.players[ 0 ];
if ( level.specops_character_selector == "so_char_client" )
return level.players[ 1 ];
// failed to select
return level.players[ 0 ];
/*
if ( cointoss() )
return level.player2;
else
return level.player;
*/
/*
if ( isdefined( level.character_switched ) && level.character_switched )
return level.player2;
return level.player;
*/
}
so_player_num( num )
{
level.so_player_num = num;
level.so_player_add_player_giveWeapon[ num ] = [];
// level vars if this becomes more commmonly used should put the init somewhere above the loadout section.
if ( !isdefined( level.so_player_set_maxammo ) )
level.so_player_set_maxammo = [];
if ( !isdefined( level.so_player_set_setViewmodel ) )
level.so_player_set_setViewmodel = [];
if ( !isdefined( level.so_player_add_player_giveWeapon ) )
level.so_player_add_player_giveWeapon = [];
if ( !isdefined( level.so_player_set_setOffhandSecondaryClass ) )
level.so_player_set_setOffhandSecondaryClass = [];
if ( !isdefined( level.so_player_set_switchToWeapon ) )
level.so_player_set_switchToWeapon = [];
if ( !isdefined( level.so_player_SetModelFunc ) )
level.so_player_SetModelFunc = [];
if ( !isdefined( level.so_player_SetModelFunc_precache ) )
level.so_player_SetModelFunc_precache = [];
if ( !isdefined( level.so_player_SetActionSlot ) )
level.so_player_SetActionSlot = [];
level.so_player_set_maxammo[ num ] = [];
level.so_player_set_setOffhandSecondaryClass[ num ] = [];
level.so_player_add_player_giveWeapon[ num ] = [];
}
so_player_giveWeapon( weapon )
{
assert( isdefined( level.so_player_num ) );
num = level.so_player_num;
if ( ! level.character_selected )
precacheitem( weapon );
level.so_player_add_player_giveWeapon[ num ][ weapon ] = 1;
}
so_player_set_maxammo( weapon )
{
assert( isdefined( level.so_player_num ) );
num = level.so_player_num;
level.so_player_set_maxammo[ num ][ weapon ] = 1;
}
so_player_set_setOffhandSecondaryClass( weapon )
{
assert( isdefined( level.so_player_num ) );
num = level.so_player_num;
level.so_player_set_setOffhandSecondaryClass[ num ] = weapon ;
}
so_player_set_switchToWeapon( weapon )
{
assert( isdefined( level.so_player_num ) );
num = level.so_player_num;
level.so_player_set_switchToWeapon[ num ] = weapon;
}
so_player_set_setViewmodel( model )
{
assert( isdefined( level.so_player_num ) );
num = level.so_player_num;
if ( ! level.character_selected )
precachemodel( model );
level.so_player_set_setViewmodel[ num ] = model ;
}
so_player_SetModelFunc( func, precache_func )
{
assert( isdefined( level.so_player_num ) );
num = level.so_player_num;
level.so_player_SetModelFunc[ num ] = func;
assert( isdefined( precache_func ) );
if ( ! level.character_selected )
[[ precache_func ]]();
}
so_player_SetActionSlot( slot, parm1, parm2 )
{
assert( isdefined( slot ) );
assert( isdefined( parm1 ) );
assert( isdefined( level.so_player_num ) );
num = level.so_player_num;
struct = spawnstruct();
struct.slot = slot;
struct.parm1 = parm1;
if ( isdefined( parm2 ) )
struct.parm2 = parm2;
if ( isdefined( level.so_player_SetActionSlot[ num ] ) )
index = level.so_player_SetActionSlot[ num ].size;
else
index = 0;
level.so_player_SetActionSlot[ num ][ index ] = struct;
}
#using_animtree( "multiplayer" );
so_player_give_loadout( num )
{
player = self;
if ( isdefined( level.so_player_SetModelFunc[ num ] ) )
{
player setmodelfunc( level.so_player_SetModelFunc[ num ] );
player setanim( %code, 1, 0 );
}
weapons = getarraykeys( level.so_player_add_player_giveWeapon[ num ] );
foreach ( weapon in weapons )
{
player giveweapon( weapon );
if ( isdefined( level.so_player_set_maxammo[ num ][ weapon ] ) )
player givemaxammo( weapon );
}
if ( isdefined( level.so_player_set_setOffhandSecondaryClass[ num ] ) )
player setOffhandSecondaryClass( "flash" );
if ( isdefined( level.so_player_SetActionSlot[ num ] ) )
player so_players_give_action( num );
if ( isdefined( level.so_player_set_switchToWeapon[ num ] ) )
player switchtoweapon( level.so_player_set_switchToWeapon[ num ] );
if ( isdefined( level.so_player_set_setViewmodel[ num ] ) )
player setviewmodel( level.so_player_set_setViewmodel[ num ] );
}
so_players_give_action( num )
{
player = self;
foreach( struct in level.so_player_SetActionSlot[ num ] )
{
if ( isdefined( struct.parm2 ) )
player SetActionSlot( struct.slot, struct.parm1, struct.parm2 );
else
player SetActionSlot( struct.slot, struct.parm1 );
}
}
so_players_give_loadout()
{
foreach ( playerIndex, player in level.players )
{
player so_player_give_loadout( playerIndex );
}
}
UpdateModel( modelFunc )
{
self notify( "newupdatemodel" );
if ( !isdefined( modelFunc ) )
{
self DetachAll();
self setModel( "" );
return;
}
self.last_modelfunc = modelFunc;
if ( isdefined( self.is_hidden ) && self.is_hidden )
return;
self endon( "newupdatemodel" );
for ( ;; )
{
self DetachAll();
[[ modelFunc ]]();
weapon_model = self GetPlayerWeaponModel();
if ( isdefined( weapon_model ) )
{
switch ( weapon_model )
{
case "weapon_riot_shield":
self attach( weapon_model, "tag_weapon_left", false );
break;
case "weapon_claymore":
case "weapon_c4":
case "weapon_claymore_no_legs":
self attach( weapon_model, "tag_inhand", false );
break;
default:
self attach( weapon_model, "tag_weapon_right", true );
break;
}
}
// Figure out what, if anything, to put in the left hand.
knife_model = self GetPlayerKnifeModel();
if ( isdefined( knife_model ) )
{
self attach( knife_model, "tag_inhand", true );
}
else
if ( self isDualWielding() )
{
if ( isdefined( weapon_model ) )
self attach( weapon_model, "tag_weapon_left", true );
}
// Need to swap this to do all weapons that are visible when stowing is supported.
// Note: Dual Wielded weapons don't properly hide the extra hand.
weapon = self GetCurrentWeapon();
weapon_model = self GetPlayerWeaponModel();
if ( isdefined( weapon_model ) )
{
hide_tag_list = GetWeaponHideTags( weapon );
if ( isDefined( hide_tag_list ) )
{
foreach ( part in hide_tag_list )
self HidePart_AllInstances( part, weapon_model );
}
}
self waittill( "weaponchange" );
}
}
so_player_setup_body( num )
{
so_player_set_setViewmodel( so_player_get_hands() );
if ( is_coop() )
so_player_SetModelFunc( so_player_get_bodyfunc( num ), so_player_get_bodyfunc_precache( num ) );
}
so_player_get_bodyfunc( num )
{
switch ( level.so_campaign )
{
case "ranger": return ::so_body_player_ranger;
case "seal": return ::so_body_player_seal;
case "arctic": return ::so_body_player_arctic;
case "woodland": return ::so_body_player_woodland;
case "desert": return ::so_body_player_desert;
case "ghillie": return ::so_body_player_ghillie;
default: assertex( false, "Special Ops requires level.campaign to be set to a valid value in order to setup the character body." );
}
return ;
}
so_player_get_bodyfunc_precache( num )
{
switch ( level.so_campaign )
{
case "ranger": return ::so_body_player_ranger_precache;
case "seal": return ::so_body_player_seal_precache;
case "arctic": return ::so_body_player_arctic_precache;
case "woodland": return ::so_body_player_woodland_precache;
case "desert": return ::so_body_player_desert_precache;
case "ghillie": return ::so_body_player_ghillie_precache;
}
return ;
}
so_player_get_hands()
{
switch ( level.so_campaign )
{
case "ranger": return "viewmodel_base_viewhands";
case "seal": return "viewhands_udt";
case "arctic": return "viewhands_arctic";
case "woodland": return "viewhands_sas_woodland";
case "desert": return "viewhands_tf141";
case "ghillie": return "viewhands_marine_sniper";
}
}
so_body_player_ranger() { self setModel( "coop_body_us_army" ); self attach( "coop_head_us_army", "", true ); }
so_body_player_seal() { self setModel( "coop_body_seal_udt" ); self attach( "coop_head_seal_udt", "", true ); }
so_body_player_arctic() { self setModel( "coop_body_tf141_arctic" ); self attach( "coop_head_tf141_arctic", "", true ); }
so_body_player_woodland() { self setModel( "coop_body_tf141_forest" ); self attach( "coop_head_tf141_forest", "", true ); }
so_body_player_desert() { self setModel( "coop_body_tf141_desert" ); self attach( "coop_head_tf141_desert", "", true ); }
so_body_player_ghillie() { self setModel( "coop_body_ghillie_forest" ); self attach( "coop_head_ghillie_forest", "", true ); }
so_body_player_ranger_precache() { precachemodel( "coop_body_us_army" ); precachemodel( "coop_head_us_army" ); }
so_body_player_seal_precache() { precachemodel( "coop_body_seal_udt" ); precachemodel( "coop_head_seal_udt" ); }
so_body_player_arctic_precache() { precachemodel( "coop_body_tf141_arctic" ); precachemodel( "coop_head_tf141_arctic" ); }
so_body_player_woodland_precache() { precachemodel( "coop_body_tf141_forest" ); precachemodel( "coop_head_tf141_forest" ); }
so_body_player_desert_precache() { precachemodel( "coop_body_tf141_desert" ); precachemodel( "coop_head_tf141_desert" ); }
so_body_player_ghillie_precache() { precachemodel( "coop_body_ghillie_forest" ); precachemodel( "coop_head_ghillie_forest" ); }