iw6-scripts/maps/_loadout_code.gsc
2024-02-13 13:20:49 +01:00

177 lines
4.2 KiB
Plaintext

// IW6 GSC SOURCE
// Generated by https://github.com/xensik/gsc-tool
saveplayerweaponstatepersistent( var_0, var_1 )
{
if ( !isdefined( var_1 ) )
var_1 = 0;
level.player endon( "death" );
if ( level.player.health == 0 )
return;
var_2 = level.player getcurrentprimaryweapon();
if ( !isdefined( var_2 ) || var_2 == "none" )
{
}
game["weaponstates"][var_0]["current"] = var_2;
var_3 = level.player getcurrentoffhand();
game["weaponstates"][var_0]["offhand"] = var_3;
game["weaponstates"][var_0]["list"] = [];
var_4 = common_scripts\utility::array_combine( level.player getweaponslistprimaries(), level.player getweaponslistoffhands() );
for ( var_5 = 0; var_5 < var_4.size; var_5++ )
{
game["weaponstates"][var_0]["list"][var_5]["name"] = var_4[var_5];
if ( var_1 )
{
game["weaponstates"][var_0]["list"][var_5]["clip"] = level.player getweaponammoclip( var_4[var_5] );
game["weaponstates"][var_0]["list"][var_5]["stock"] = level.player getweaponammostock( var_4[var_5] );
}
}
}
restoreplayerweaponstatepersistent( var_0, var_1, var_2 )
{
var_3 = common_scripts\utility::ter_op( isdefined( var_2 ) && var_2, ::switchtoweaponimmediate, ::switchtoweapon );
if ( !isdefined( var_1 ) )
var_1 = 0;
if ( !isdefined( game["weaponstates"] ) )
return 0;
if ( !isdefined( game["weaponstates"][var_0] ) )
return 0;
level.player takeallweapons();
for ( var_4 = 0; var_4 < game["weaponstates"][var_0]["list"].size; var_4++ )
{
var_5 = game["weaponstates"][var_0]["list"][var_4]["name"];
if ( var_5 == "c4" )
continue;
if ( var_5 == "claymore" )
continue;
level.player giveweapon( var_5 );
level.player givemaxammo( var_5 );
if ( var_1 )
{
level.player setweaponammoclip( var_5, game["weaponstates"][var_0]["list"][var_4]["clip"] );
level.player setweaponammostock( var_5, game["weaponstates"][var_0]["list"][var_4]["stock"] );
}
}
level.player switchtooffhand( game["weaponstates"][var_0]["offhand"] );
level.player call [[ var_3 ]]( game["weaponstates"][var_0]["current"] );
return 1;
}
setdefaultactionslot()
{
self setactionslot( 1, "" );
self setactionslot( 2, "" );
self setactionslot( 3, "altMode" );
self setactionslot( 4, "" );
}
init_player()
{
setdefaultactionslot();
self takeallweapons();
}
get_loadout()
{
if ( isdefined( level.loadout ) )
return level.loadout;
return level.script;
}
campaign( var_0 )
{
level._lc = var_0;
}
persist( var_0, var_1, var_2 )
{
var_3 = get_loadout();
if ( var_0 != var_3 )
return;
if ( !isdefined( game["previous_map"] ) )
return;
level._lc_persists = 1;
if ( isdefined( var_2 ) )
level.player setoffhandsecondaryclass( var_2 );
restoreplayerweaponstatepersistent( get_loadout(), 1 );
level.has_loadout = 1;
}
loadout( var_0, var_1, var_2, var_3, var_4, var_5, var_6 )
{
if ( isdefined( var_0 ) )
{
var_7 = get_loadout();
if ( var_0 != var_7 || isdefined( level._lc_persists ) )
return;
}
if ( isdefined( var_1 ) )
{
level.default_weapon = var_1;
level.player giveweapon( var_1 );
}
if ( isdefined( var_6 ) )
level.player setoffhandsecondaryclass( var_6 );
if ( isdefined( var_2 ) )
level.player giveweapon( var_2 );
if ( isdefined( var_3 ) )
level.player giveweapon( var_3 );
if ( isdefined( var_4 ) )
level.player giveweapon( var_4 );
level.player switchtoweapon( var_1 );
if ( isdefined( var_5 ) )
level.player setviewmodel( var_5 );
level.campaign = level._lc;
level._lc = undefined;
level.has_loadout = 1;
}
loadout_complete()
{
level.loadoutcomplete = 1;
level notify( "loadout complete" );
}
default_loadout_if_notset()
{
if ( level.has_loadout )
return;
loadout( undefined, "kriss", undefined, "flash_grenade", "fraggrenade", "viewmodel_base_viewhands", "flash" );
level.map_without_loadout = 1;
}