boiii-scripts/mp/_load.csc
2023-04-13 17:30:38 +02:00

161 lines
14 KiB
Plaintext

#using scripts\codescripts\struct;
#using scripts\shared\archetype_shared\archetype_shared;
#using scripts\shared\audio_shared;//DO NOT REMOVE - needed for system registration
#using scripts\shared\clientfield_shared;
#using scripts\shared\clientfaceanim_shared;
#using scripts\shared\flagsys_shared;
#using scripts\shared\footsteps_shared;//DO NOT REMOVE - needed for system registration
#using scripts\shared\load_shared;
#using scripts\shared\music_shared;
#using scripts\shared\player_shared;//DO NOT REMOVE - needed for system registration
#using scripts\shared\_oob;
#using scripts\shared\scene_shared;
#using scripts\shared\system_shared;
#using scripts\shared\turret_shared;
#using scripts\shared\postfx_shared;
#using scripts\shared\util_shared;
#using scripts\shared\vehicle_shared;
#using scripts\shared\weapons\_bouncingbetty;
#using scripts\shared\weapons\_hive_gun;
#using scripts\shared\weapons\spike_charge;
#using scripts\shared\weapons\_lightninggun;
#using scripts\shared\weapons\_pineapple_gun;
#using scripts\shared\weapons\_proximity_grenade;
#using scripts\shared\weapons\_riotshield;
#using scripts\shared\weapons\_satchel_charge;
#using scripts\shared\weapons\_tacticalinsertion;
#using scripts\shared\weapons\_trophy_system;
#using scripts\shared\weapons\_weaponobjects;
#using scripts\shared\weapons\multilockapguidance;
#using scripts\mp\_util;
//System registration
#using scripts\mp\_ambient;
#using scripts\shared\_burnplayer;
#using scripts\mp\_callbacks;
#using scripts\mp\_ctf;
#using scripts\mp\_destructible;
// #using scripts\mp\_devgui; // never add this to mp (it's for mp frontend only)
#using scripts\mp\_global_fx;
#using scripts\mp\_multi_extracam;
#using scripts\mp\_perks;
#using scripts\mp\_radiant_live_update;
#using scripts\mp\_rewindobjects;
#using scripts\mp\_rotating_object;
#using scripts\mp\_vehicle;
#using scripts\mp\_end_game_flow;
#using scripts\mp\mpdialog;
//Gametype registration
#using scripts\mp\gametypes\_classicmode;
//Weapon registration
#using scripts\shared\weapons\_sticky_grenade;
#using scripts\mp\_bouncingbetty;
#using scripts\mp\_hacker_tool;
#using scripts\mp\_hive_gun;
#using scripts\mp\_claymore;
#using scripts\mp\_decoy;
#using scripts\mp\_explosive_bolt;
#using scripts\mp\_flashgrenades;
#using scripts\mp\_gravity_spikes;
#using scripts\mp\_lightninggun;
#using scripts\mp\_proximity_grenade;
#using scripts\mp\_riotshield;
#using scripts\mp\_satchel_charge;
#using scripts\mp\_threat_detector;
#using scripts\mp\_tacticalinsertion;
#using scripts\mp\_trophy_system;
#using scripts\mp\gametypes\_weaponobjects;
//Killstreak registration
#using scripts\mp\_helicopter_sounds;
#using scripts\mp\killstreaks\_counteruav;
#using scripts\mp\killstreaks\_dart;
#using scripts\mp\killstreaks\_emp;
#using scripts\mp\killstreaks\_helicopter;
#using scripts\mp\killstreaks\_helicopter_gunner;
#using scripts\mp\killstreaks\_flak_drone;
#using scripts\mp\killstreaks\_microwave_turret;
#using scripts\mp\killstreaks\_planemortar;
#using scripts\mp\killstreaks\_remotemissile;
#using scripts\mp\killstreaks\_raps;
#using scripts\mp\killstreaks\_turret;
#using scripts\mp\killstreaks\_killstreak_detect;
//Abilities registration
#using scripts\shared\abilities\_ability_player;
#namespace load;
function levelNotifyHandler(clientNum, state, oldState)
{
if(state != "")
{
level notify(state,clientNum);
}
}
function main()
{
/#
Assert( isdefined( level.first_frame ), "There should be no waits before load::main." );
#/
level thread util::serverTime();
level thread util::init_utility();
util::registerSystem("levelNotify",&levelNotifyHandler);
register_clientfields();
level.createFX_disable_fx = (GetDvarInt("disable_fx") == 1);
//The functions are threaded just in case any of them create 'wait's. Note these functions should not have 'wait's in their 'init' and 'main' functions.
// footsteps();
system::wait_till( "all" );
level flagsys::set( "load_main_complete" );
}
/*footsteps()
{
util::setFootstepEffect( "asphalt", "_t6/bio/player/fx_footstep_dust" );
util::setFootstepEffect( "brick", "_t6/bio/player/fx_footstep_dust" );
util::setFootstepEffect( "carpet", "_t6/bio/player/fx_footstep_dust" );
util::setFootstepEffect( "cloth", "_t6/bio/player/fx_footstep_dust" );
util::setFootstepEffect( "concrete", "_t6/bio/player/fx_footstep_dust" );
util::setFootstepEffect( "dirt", "_t6/bio/player/fx_footstep_sand" );
util::setFootstepEffect( "foliage", "_t6/bio/player/fx_footstep_dust" );
util::setFootstepEffect( "gravel", "_t6/bio/player/fx_footstep_sand" );
util::setFootstepEffect( "grass", "_t6/bio/player/fx_footstep_sand" );
util::setFootstepEffect( "metal", "_t6/bio/player/fx_footstep_dust" );
util::setFootstepEffect( "mud", "_t6/bio/player/fx_footstep_mud" );
util::setFootstepEffect( "paper", "_t6/bio/player/fx_footstep_dust" );
util::setFootstepEffect( "plaster", "_t6/bio/player/fx_footstep_dust" );
util::setFootstepEffect( "rock", "_t6/bio/player/fx_footstep_sand" );
util::setFootstepEffect( "sand", "_t6/bio/player/fx_footstep_sand" );
util::setFootstepEffect( "water", "_t6/bio/player/fx_footstep_water" );
util::setFootstepEffect( "wood", "_t6/bio/player/fx_footstep_dust" );
}*/
function register_clientfields()
{
clientfield::register( "missile", "cf_m_proximity", 1, 1, "int", &callback::callback_proximity, !true, !true );
clientfield::register( "missile", "cf_m_emp", 1, 1, "int", &callback::callback_emp, !true, !true );
clientfield::register( "missile", "cf_m_stun", 1, 1, "int", &callback::callback_stunned, !true, !true );
//clientfield::register( "scriptmover", "cf_s_emp", VERSION_SHIP, 1, "int", &callback::callback_emp, !CF_HOST_ONLY, !CF_CALLBACK_ZERO_ON_NEW_ENT );
//clientfield::register( "scriptmover", "cf_s_stun", VERSION_SHIP, 1, "int", &callback::callback_stunned, !CF_HOST_ONLY, !CF_CALLBACK_ZERO_ON_NEW_ENT );
}