mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-07 17:17:50 -05:00
1843 lines
65 KiB
Plaintext
1843 lines
65 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: _cloak.gsc
|
|
* Game: Call of Duty: Advanced Warfare
|
|
* Platform: PC
|
|
* Function Count: 58
|
|
* Decompile Time: 1004 ms
|
|
* Timestamp: 4/22/2024 2:20:16 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
main()
|
|
{
|
|
precachestring(&"cloaking_hud_update");
|
|
precacheshader("overlay_hunted_black");
|
|
precacheshader("overlay_static");
|
|
precacheshader("cinematic");
|
|
precacheshader("qr_noise");
|
|
precacheshader("dpad_icon_cloak");
|
|
precacheshader("dpad_icon_cloak_off");
|
|
precacheshader("nightvision_overlay_goggles");
|
|
precachemodel("viewhands_s1_pmc_cloak");
|
|
precachemodel("viewhands_player_sentinel_cloak");
|
|
if(isdefined(0) && 0)
|
|
{
|
|
precacheshader("hud_temperature_gauge");
|
|
}
|
|
|
|
level._cloaked_stealth_settings = spawnstruct();
|
|
level._cloaked_stealth_settings.cloak_on = 0;
|
|
level._cloaked_stealth_settings.visibility_range_version = 1;
|
|
init_cloaked_stealth_settings();
|
|
init_player_cloak_state();
|
|
init_cloak_view_model_anims();
|
|
maps\_utility::add_global_spawn_function("allies",::allies_check_cloak_state);
|
|
maps\_utility::add_global_spawn_function("allies",::clear_stencil_on_death);
|
|
thread cloak_hud();
|
|
do_player_cloak_update_threads();
|
|
if(isdefined(0) && 0)
|
|
{
|
|
thread temp_cloak_gauge();
|
|
}
|
|
|
|
createthreatbiasgroup("cloak_friendly_npcs");
|
|
createthreatbiasgroup("cloak_enemy_npcs");
|
|
setignoremegroup("cloak_friendly_npcs","cloak_enemy_npcs");
|
|
common_scripts\utility::flag_init("flag_player_cloak_enabled");
|
|
common_scripts\utility::flag_set("_cloaked_stealth_enabled");
|
|
maps\_stealth_utility::stealth_set_default_stealth_function("cloak_enemy_relaxed",::maps\_cloak_enemy_behavior::cloak_enemy_default_setup);
|
|
setomnvar("ui_cloak",1);
|
|
setomnvar("ui_meterhud_enable",1);
|
|
setomnvar("ui_meterhud_ar_and_2d",1);
|
|
}
|
|
|
|
//Function Number: 2
|
|
init_cloak_view_model_anims()
|
|
{
|
|
level.scr_animtree["cloak_view_model"] = #animtree;
|
|
level.scr_model["cloak_view_model"] = "viewhands_player_sentinel_cloak";
|
|
level.scr_anim["cloak_view_model"]["cloak_on"] = %vm_turn_on_cloak;
|
|
maps\_anim::addnotetrack_customfunction("cloak_view_model","cloak_on",::_cloak_toggle_internal,"cloak_on");
|
|
}
|
|
|
|
//Function Number: 3
|
|
allies_check_cloak_state()
|
|
{
|
|
if(level._cloaked_stealth_settings.cloak_on == 1)
|
|
{
|
|
setalertstencilstate();
|
|
}
|
|
}
|
|
|
|
//Function Number: 4
|
|
axis_check_cloak_state()
|
|
{
|
|
if(level._cloaked_stealth_settings.cloak_on == 1)
|
|
{
|
|
setalertstencilstate_axis();
|
|
}
|
|
}
|
|
|
|
//Function Number: 5
|
|
clear_stencil_on_death()
|
|
{
|
|
self waittill("death");
|
|
clearstencilstateondeath();
|
|
}
|
|
|
|
//Function Number: 6
|
|
cloaked_stealth_enable_lab_hud_cinematic()
|
|
{
|
|
level._cloaked_stealth_settings.playing_lab_cinematic = 1;
|
|
}
|
|
|
|
//Function Number: 7
|
|
cloaked_stealth_disable_lab_hud_cinematic()
|
|
{
|
|
level._cloaked_stealth_settings.playing_lab_cinematic = 0;
|
|
}
|
|
|
|
//Function Number: 8
|
|
cloaked_stealth_enable_battery_hud()
|
|
{
|
|
level._cloaked_stealth_settings.battery_hud_is_visible = 1;
|
|
}
|
|
|
|
//Function Number: 9
|
|
cloaked_stealth_disable_battery_hud()
|
|
{
|
|
level._cloaked_stealth_settings.battery_hud_is_visible = 0;
|
|
}
|
|
|
|
//Function Number: 10
|
|
cloaked_stealth_player_setup(param_00)
|
|
{
|
|
if(isdefined(param_00) && param_00)
|
|
{
|
|
common_scripts\utility::flag_set("flag_player_cloak_enabled");
|
|
}
|
|
|
|
maps\_stealth_utility::stealth_default();
|
|
}
|
|
|
|
//Function Number: 11
|
|
init_player_cloak_overlay()
|
|
{
|
|
level.cloak_overlay = newhudelem();
|
|
level.cloak_overlay.x = 0;
|
|
level.cloak_overlay.y = 0;
|
|
level.cloak_overlay.alignx = "left";
|
|
level.cloak_overlay.aligny = "top";
|
|
level.cloak_overlay.horzalign = "fullscreen";
|
|
level.cloak_overlay.vertalign = "fullscreen";
|
|
level.cloak_overlay.color = (1,0,0);
|
|
level.cloak_overlay setshader("overlay_static",640,480);
|
|
level.cloak_overlay.alpha = 0;
|
|
}
|
|
|
|
//Function Number: 12
|
|
_cloak_toggle_internal(param_00)
|
|
{
|
|
if(level._cloaked_stealth_settings.cloak_on == 1)
|
|
{
|
|
turn_off_the_cloak_effect();
|
|
level._cloaked_stealth_settings.penalty_timer = 1;
|
|
return;
|
|
}
|
|
|
|
turn_on_the_cloak_effect();
|
|
}
|
|
|
|
//Function Number: 13
|
|
_play_view_model_cloak_toggle_anim()
|
|
{
|
|
level._cloaked_stealth_settings.playing_view_model_cloak_toggle_anim = 1;
|
|
level.player disableweapons();
|
|
level.player waittill("weapon_change");
|
|
var_00 = maps\_utility::spawn_anim_model("cloak_view_model");
|
|
level._cloaked_stealth_settings.player_rig = var_00;
|
|
var_00 linktoplayerview(level.player,"tag_origin",(0,0,0),(0,0,0),1);
|
|
var_00 drawpostresolve();
|
|
if(level._cloaked_stealth_settings.cloak_on == 1)
|
|
{
|
|
var_00 setmaterialscriptparam(0,0);
|
|
}
|
|
else
|
|
{
|
|
var_00 setmaterialscriptparam(1,0);
|
|
}
|
|
|
|
soundscripts\_snd::snd_message("exo_cloak_button_press");
|
|
level.player maps\_anim::anim_single_solo(var_00,"cloak_on");
|
|
level.player enableweapons();
|
|
var_00 unlink();
|
|
level._cloaked_stealth_settings.player_rig = undefined;
|
|
var_00 delete();
|
|
if(level._cloaked_stealth_settings.cloak_on == 0)
|
|
{
|
|
level.player overrideviewmodelmaterialreset();
|
|
}
|
|
|
|
level._cloaked_stealth_settings.playing_view_model_cloak_toggle_anim = 0;
|
|
}
|
|
|
|
//Function Number: 14
|
|
set_cloak_material_for_vm_weapon()
|
|
{
|
|
if(level.player getcurrentweapon() != "iw5_unarmed")
|
|
{
|
|
level.player overrideviewmodelmaterialreset();
|
|
if(issubstr(level.player getcurrentweapon(),"iw5_ak12_sp"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_ak12_base_nocamo","mtl_ak12_base_nocamo_cloak");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"iw5_arx160_sp"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_arx160_base_nocamo","cloak_generic");
|
|
level.player overrideviewmodelmaterial("mtl_arx160_iron_sights_base","cloak_generic");
|
|
level.player overrideviewmodelmaterial("mtl_arx160_strap_base","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"iw5_asm1_sp"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_asm1_base_nocamo","mtl_asm1_base_nocamo_cloak");
|
|
level.player overrideviewmodelmaterial("mtl_asm1_magazine_02_base","mtl_asm1_magazine_02_base_cloak");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"iw5_bal27_sp"))
|
|
{
|
|
level.player overrideviewmodelmaterial("_base_black","mtl_bal27_base_black_cloak");
|
|
level.player overrideviewmodelmaterial("mtl_bal27_screen_a_green","cloak_generic");
|
|
level.player overrideviewmodelmaterial("mtl_bal27_magazine_out","cloak_generic");
|
|
level.player overrideviewmodelmaterial("mtl_bal27_magazine_inside","cloak_generic");
|
|
level.player overrideviewmodelmaterial("mtl_bal27_iron_sights","mtl_bal27_base_black_cloak");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"iw5_em1_sp"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_em1_base_nocamo","cloak_generic");
|
|
level.player overrideviewmodelmaterial("mtl_en_base_damage","cloak_generic");
|
|
level.player overrideviewmodelmaterial("mtl_em1_iron_sights_base","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"iw5_gm6_sp"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_gm6_base_nocamo","cloak_generic");
|
|
level.player overrideviewmodelmaterial("mtl_gm6_scope_base","cloak_generic");
|
|
level.player overrideviewmodelmaterial("mtl_gm6_sight_base","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"iw5_hbra3_sp"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_hbra3_base_nocamo","mtl_hbra3_base_nocamo_cloak");
|
|
level.player overrideviewmodelmaterial("mtl_hbra3_base","cloak_generic");
|
|
level.player overrideviewmodelmaterial("mtl_hbra3_sight","cloak_generic");
|
|
level.player overrideviewmodelmaterial("mtl_hbra3_screen","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"iw5_himar_sp"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_himar_base","mtl_himar_base_cloak");
|
|
level.player overrideviewmodelmaterial("mtl_himar_glass_base","mtl_himar_glass_base_cloak");
|
|
level.player overrideviewmodelmaterial("mtl_ar_base_handling_01","mtl_ar_base_handling_01_cloak");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"iw5_hmr9_sp"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_hmr9_base_nocamo","cloak_generic");
|
|
level.player overrideviewmodelmaterial("mtl_hmr9_bungee_chord","cloak_generic");
|
|
level.player overrideviewmodelmaterial("mtl_mag_dual_clip_base","cloak_generic");
|
|
level.player overrideviewmodelmaterial("mtl_hmr9_ironsights_base","cloak_generic");
|
|
level.player overrideviewmodelmaterial("mtl_hmr9_screen","cloak_generic");
|
|
level.player overrideviewmodelmaterial("mtl_hmr9_text_decals","cloak_generic");
|
|
level.player overrideviewmodelmaterial("mtl_hmr9_stock_base","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"iw5_kf5_sp"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_kf5_base","mtl_kf5_base_nocamo_cloak");
|
|
level.player overrideviewmodelmaterial("mtl_kf5_iron_sights_base","mtl_kf5_iron_sights_base_cloak");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"iw5_lsat_sp"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_lsat_base","mtl_lsat_base_cloak");
|
|
level.player overrideviewmodelmaterial("mtl_lsat_iron_sights_base","mtl_lsat_iron_sights_base_cloak");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"iw5_m990_sp"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_m990_base_nocamo","cloak_generic");
|
|
level.player overrideviewmodelmaterial("mtl_m990_scope","cloak_generic");
|
|
level.player overrideviewmodelmaterial("mtl_m990_sight","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"iw5_maaws_sp"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_maaws_base_nocamo","cloak_generic");
|
|
level.player overrideviewmodelmaterial("mtl_maaws_missile_base","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"iw5_maul_sp"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_maul_base_nocamo","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"iw5_mdl_sp"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_mdl_base","cloak_generic");
|
|
level.player overrideviewmodelmaterial("mtl_mdl_optic","cloak_generic");
|
|
level.player overrideviewmodelmaterial("mtl_mdl_optic_glass","mtl_mdl_optic_glass");
|
|
level.player overrideviewmodelmaterial("mtl_mdl_optic_glow","mtl_mdl_optic_glow");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"iw5_mk14_sp"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_mk14_ebr_base_nocamo","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"iw5_mors_sp"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_mors_base_nocamo","cloak_generic");
|
|
level.player overrideviewmodelmaterial("mtl_mors_scope","cloak_generic");
|
|
level.player overrideviewmodelmaterial("mtl_mors_sights","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"iw5_mp11_sp"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_cbj_ms_base","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"iw5_mp443_sp"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_mp443_base_nocamo","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"iw5_rhino_sp"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_rhino_base_nocamo","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"iw5_rw1_sp"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_rw1_main_base_nocamo","cloak_generic");
|
|
level.player overrideviewmodelmaterial("mtl_rw1_scope_base","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"iw5_sac3_sp"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_sac3_base","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"iw5_sn6_sp"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_sn6_base_black","mtl_sn6_base_black_nocamo_cloak");
|
|
level.player overrideviewmodelmaterial("mtl_sn6_iron_sights_black","mtl_sn6_iron_sights_black_nocamo_cloak");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"iw5_stinger_sp"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_npc_stingerm7_base_black_nocamo","cloak_generic");
|
|
level.player overrideviewmodelmaterial("mtl_stingerm7_base_bottom_black_nocamo","cloak_generic");
|
|
level.player overrideviewmodelmaterial("mtl_stingerm7_base_top_black_nocamo","cloak_generic");
|
|
level.player overrideviewmodelmaterial("mtl_stingerm7_missile_01","cloak_generic");
|
|
level.player overrideviewmodelmaterial("mtl_stingerm7_screens_green","cloak_generic");
|
|
level.player overrideviewmodelmaterial("mtl_stingerm7_iron_sight_black","cloak_generic");
|
|
level.player overrideviewmodelmaterial("mtl_stingerm7_glass","mtl_stingerm7_glass");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"iw5_thor_sp"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_thor_base_nocamo","cloak_generic");
|
|
level.player overrideviewmodelmaterial("mtl_thor_scope_base","cloak_generic");
|
|
level.player overrideviewmodelmaterial("mtl_thor_scope_lens","mtl_thor_scope_lens");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"iw5_titan45_sp"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_titan45_base_nocamo","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"iw5_uts19_sp"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_uts_19_add_on_nocamo","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"iw5_vbr_sp"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_vbr_base_nocamo","cloak_generic");
|
|
level.player overrideviewmodelmaterial("mtl_vbr_siderail","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"opticsacog2"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_acog2_base","mtl_acog2_base_cloak");
|
|
level.player overrideviewmodelmaterial("mtl_mors_lens","mtl_mors_lens_cloak");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"himarscope"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_himar_computer_base","mtl_himar_computer_base_cloak");
|
|
level.player overrideviewmodelmaterial("mtl_himar_reddot_body","mtl_himar_reddot_body_cloak");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"opticsreddot"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_weapon_reddot_body","cloak_generic");
|
|
level.player overrideviewmodelmaterial("mtl_weapon_reddot_lens","mtl_weapon_reddot_lens");
|
|
level.player overrideviewmodelmaterial("mtl_optics_red_dot_small","mtl_optics_red_dot_small");
|
|
level.player overrideviewmodelmaterial("mtl_weapon_reflex_red_dot","mtl_weapon_reflex_red_dot");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"silencer01") || issubstr(level.player getcurrentweapon(),"silencerpistol"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_weapon_silencer_01","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"opticstargetenhancer"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_optics_target_enhancer_body","mtl_optics_target_enhancer_body_cloak");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"variablereddot"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_optics_variable_red_dot","mtl_optics_variable_red_dot_cloak");
|
|
level.player overrideviewmodelmaterial("mtl_optics_variable_red_dot_square","mtl_optics_variable_red_dot_square");
|
|
level.player overrideviewmodelmaterial("mtl_optics_variable_red_dot_glass02","mtl_optics_variable_red_dot_glass02_nodraw");
|
|
level.player overrideviewmodelmaterial("mtl_optics_variable_red_dot_reticle","mtl_optics_variable_red_dot_reticle");
|
|
level.player overrideviewmodelmaterial("mtl_optics_variable_red_dot_cross_reticle","mtl_optics_variable_red_dot_cross_reticle");
|
|
level.player overrideviewmodelmaterial("mtl_optics_variable_red_dot_small","mtl_optics_variable_red_dot_small");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"directhack"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_directhack","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"foregrip"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_foregrip","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"parabolicmicrophone"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_mic_parabolic","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"detech"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_optics_de_tech","cloak_generic");
|
|
level.player overrideviewmodelmaterial("mtl_optics_de_tech_led","mtl_optics_de_tech_led");
|
|
level.player overrideviewmodelmaterial("mtl_optics_de_tech_lens","mtl_optics_de_tech_lens");
|
|
level.player overrideviewmodelmaterial("mtl_optics_de_tech_reticle_base","mtl_optics_de_tech_reticle_base");
|
|
level.player overrideviewmodelmaterial("mtl_weapon_reflex_red_dot","mtl_weapon_reflex_red_dot");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"lasersight"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_weapon_lasersight_01","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"ironsights"))
|
|
{
|
|
level.player overrideviewmodelmaterial("_iron_sights_black","cloak_generic");
|
|
level.player overrideviewmodelmaterial("_iron_sights_color","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"opticseotech"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_weapon_eotech_body","mtl_weapon_eotech_body_cloak");
|
|
level.player overrideviewmodelmaterial("mtl_weapon_eotech_lense","mtl_weapon_eotech_lense_nodraw");
|
|
level.player overrideviewmodelmaterial("mtl_weapon_reflex_red_dot","mtl_weapon_reflex_red_dot");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"opticsthermal"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_weapon_thermal_scope_iw5","cloak_generic");
|
|
level.player overrideviewmodelmaterial("mtl_weapon_thermal_scope_iw5_lens","cloak_generic");
|
|
level.player overrideviewmodelmaterial("mtl_weapon_thermal_scope_scanlines","mtl_weapon_thermal_scope_scanlines");
|
|
level.player overrideviewmodelmaterial("mtl_weapon_thermal_scope_screen","mtl_weapon_thermal_scope_screen");
|
|
level.player overrideviewmodelmaterial("scope_overlay_m14_night","scope_overlay_m14_night");
|
|
level.player overrideviewmodelmaterial("scope_overlay_m14_night_low_res","scope_overlay_m14_night_low_res");
|
|
level.player overrideviewmodelmaterial("scope_overlay_m14_night_emp","scope_overlay_m14_night_emp");
|
|
level.player overrideviewmodelmaterial("scope_overlay_m14_night_emp_low_res","scope_overlay_m14_night_emp_low_res");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentoffhand(),"grenade"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_variable_grenade_lethal","cloak_generic");
|
|
level.player overrideviewmodelmaterial("mtl_variable_grenade_nonlethal","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(level.player getcurrentweapon(),"exo_shield"))
|
|
{
|
|
level.player overrideviewmodelmaterial("mtl_exo_riot_shield_base","cloak_generic");
|
|
level.player overrideviewmodelmaterial("mtl_exo_riot_shield_canvas","cloak_generic");
|
|
level.player overrideviewmodelmaterial("mtl_exo_riot_shield_mesh","cloak_generic");
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 15
|
|
set_cloak_material_for_npc_weapon()
|
|
{
|
|
if(self.weapon != "iw5_unarmed")
|
|
{
|
|
if(issubstr(self.weapon,"iw5_ak12_sp"))
|
|
{
|
|
self overridematerial("mtl_ak12_base_nocamo","mtl_ak12_base_nocamo_cloak");
|
|
}
|
|
|
|
if(issubstr(self.weapon,"iw5_arx160_sp"))
|
|
{
|
|
level.player overridematerial("mtl_arx160_base_nocamo","cloak_generic");
|
|
self overridematerial("mtl_arx160_iron_sights_base","cloak_generic");
|
|
self overridematerial("mtl_arx160_strap_base","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(self.weapon,"iw5_asm1_sp"))
|
|
{
|
|
self overridematerial("mtl_asm1_base_nocamo","mtl_asm1_base_nocamo_cloak");
|
|
self overridematerial("mtl_asm1_magazine_02_base","mtl_asm1_magazine_02_base_cloak");
|
|
}
|
|
|
|
if(issubstr(self.weapon,"iw5_bal27_sp"))
|
|
{
|
|
self overridematerial("_base_black","mtl_bal27_base_black_cloak");
|
|
self overridematerial("mtl_bal27_screen_a_green","cloak_generic");
|
|
self overridematerial("mtl_bal27_magazine_out","cloak_generic");
|
|
self overridematerial("mtl_bal27_magazine_inside","cloak_generic");
|
|
self overridematerial("mtl_bal27_iron_sights","mtl_bal27_base_black_cloak");
|
|
}
|
|
|
|
if(issubstr(self.weapon,"iw5_em1_sp"))
|
|
{
|
|
self overridematerial("mtl_em1_base_nocamo","cloak_generic");
|
|
self overridematerial("mtl_en_base_damage","cloak_generic");
|
|
self overridematerial("mtl_em1_iron_sights_base","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(self.weapon,"iw5_gm6_sp"))
|
|
{
|
|
self overridematerial("mtl_gm6_base_nocamo","cloak_generic");
|
|
self overridematerial("mtl_gm6_scope_base","cloak_generic");
|
|
self overridematerial("mtl_gm6_sight_base","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(self.weapon,"iw5_hbra3_sp"))
|
|
{
|
|
self overridematerial("mtl_hbra3_base_nocamo","mtl_hbra3_base_nocamo_cloak");
|
|
self overridematerial("mtl_hbra3_base","mtl_hbra3_base_cloak");
|
|
self overridematerial("mtl_hbra3_sight","mtl_hbra3_sight_cloak");
|
|
self overridematerial("mtl_hbra3_screen","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(self.weapon,"iw5_himar_sp"))
|
|
{
|
|
self overridematerial("mtl_himar_base","mtl_himar_base_cloak");
|
|
self overridematerial("mtl_himar_glass_base","mtl_himar_glass_base_cloak");
|
|
self overridematerial("mtl_ar_base_handling_01","mtl_ar_base_handling_01_cloak");
|
|
self overridematerial("mtl_himar_iron_sights_base","mtl_himar_iron_sights_base_cloak");
|
|
}
|
|
|
|
if(issubstr(self.weapon,"iw5_hmr9_sp"))
|
|
{
|
|
self overridematerial("mtl_hmr9_base_nocamo","cloak_generic");
|
|
self overridematerial("mtl_hmr9_ironsights_base","cloak_generic");
|
|
self overridematerial("mtl_hmr9_screen","cloak_generic");
|
|
self overridematerial("mtl_hmr9_text_decals","cloak_generic");
|
|
self overridematerial("mtl_hmr9_stock_base","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(self.weapon,"iw5_kf5_sp"))
|
|
{
|
|
self overridematerial("mtl_kf5_base","mtl_kf5_base_nocamo_cloak");
|
|
self overridematerial("mtl_kf5_iron_sights_base","mtl_kf5_iron_sights_base_cloak");
|
|
}
|
|
|
|
if(issubstr(self.weapon,"iw5_lsat_sp"))
|
|
{
|
|
self overridematerial("mtl_lsat_base_nocamo","mtl_lsat_base_nocamo_cloak");
|
|
self overridematerial("mtl_lsat_iron_sights_base","mtl_lsat_iron_sights_base_cloak");
|
|
}
|
|
|
|
if(issubstr(self.weapon,"iw5_m990_sp"))
|
|
{
|
|
self overridematerial("mtl_m990_base_nocamo","cloak_generic");
|
|
self overridematerial("mtl_m990_scope","cloak_generic");
|
|
self overridematerial("mtl_m990_sight","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(self.weapon,"iw5_maaws_sp"))
|
|
{
|
|
self overridematerial("mtl_maaws_base_nocamo","cloak_generic");
|
|
self overridematerial("mtl_maaws_missile_base","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(self.weapon,"iw5_maul_sp"))
|
|
{
|
|
self overridematerial("mtl_maul_base_nocamo","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(self.weapon,"iw5_mdl_sp"))
|
|
{
|
|
self overridematerial("mtl_mdl_base","cloak_generic");
|
|
self overridematerial("mtl_mdl_optic","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(self.weapon,"iw5_mk14_sp"))
|
|
{
|
|
self overridematerial("mtl_mk14_ebr_base_nocamo","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(self.weapon,"iw5_mors_sp"))
|
|
{
|
|
self overridematerial("mtl_mors_base_nocamo","cloak_generic");
|
|
self overridematerial("mtl_mors_scope","cloak_generic");
|
|
self overridematerial("mtl_mors_sights","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(self.weapon,"iw5_mp11_sp"))
|
|
{
|
|
self overridematerial("mtl_cbj_ms_base","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(self.weapon,"iw5_mp443_sp"))
|
|
{
|
|
self overridematerial("mtl_mp443_base_nocamo","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(self.weapon,"iw5_rhino_sp"))
|
|
{
|
|
self overridematerial("mtl_rhino_base_nocamo","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(self.weapon,"iw5_rw1_sp"))
|
|
{
|
|
self overridematerial("mtl_rw1_main_base_nocamo","cloak_generic");
|
|
self overridematerial("mtl_rw1_scope_base","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(self.weapon,"iw5_sac3_sp"))
|
|
{
|
|
self overridematerial("mtl_sac3_base","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(self.weapon,"iw5_sn6_sp"))
|
|
{
|
|
self overridematerial("mtl_sn6_base_black","mtl_sn6_base_black_nocamo_cloak");
|
|
self overridematerial("mtl_sn6_iron_sights_black","mtl_sn6_iron_sights_black_nocamo_cloak");
|
|
}
|
|
|
|
if(issubstr(self.weapon,"iw5_stinger_sp"))
|
|
{
|
|
self overridematerial("mtl_npc_stingerm7_base_black_nocamo","cloak_generic");
|
|
self overridematerial("mtl_stingerm7_base_bottom_black_nocamo","cloak_generic");
|
|
self overridematerial("mtl_stingerm7_base_top_black_nocamo","cloak_generic");
|
|
self overridematerial("mtl_stingerm7_missile_01","cloak_generic");
|
|
self overridematerial("mtl_stingerm7_screens_green","cloak_generic");
|
|
self overridematerial("mtl_stingerm7_iron_sight_black","cloak_generic");
|
|
self overridematerial("mtl_stingerm7_glass","mtl_stingerm7_glass");
|
|
}
|
|
|
|
if(issubstr(self.weapon,"iw5_thor_sp"))
|
|
{
|
|
self overridematerial("mtl_thor_base_nocamo","cloak_generic");
|
|
self overridematerial("mtl_thor_scope_base","cloak_generic");
|
|
self overridematerial("mtl_thor_scope_lens","mtl_thor_scope_lens");
|
|
}
|
|
|
|
if(issubstr(self.weapon,"iw5_titan45_sp"))
|
|
{
|
|
self overridematerial("mtl_titan45_base_nocamo","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(self.weapon,"iw5_uts19_sp"))
|
|
{
|
|
self overridematerial("mtl_uts_19_add_on_nocamo","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(self.weapon,"iw5_vbr_sp"))
|
|
{
|
|
self overridematerial("mtl_vbr_base_nocamo","cloak_generic");
|
|
self overridematerial("mtl_vbr_siderail","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(self.weapon,"opticsacog2"))
|
|
{
|
|
self overridematerial("mtl_acog2_base","mtl_acog2_base_cloak");
|
|
}
|
|
|
|
if(issubstr(self.weapon,"himarscope"))
|
|
{
|
|
self overridematerial("mtl_himar_computer_base","mtl_himar_computer_base_cloak");
|
|
self overridematerial("mtl_himar_reddot_body","mtl_himar_reddot_body_cloak");
|
|
}
|
|
|
|
if(issubstr(self.weapon,"opticsreddot"))
|
|
{
|
|
self overridematerial("mtl_weapon_reddot_body","mtl_weapon_reddot_body_cloak");
|
|
}
|
|
|
|
if(issubstr(self.weapon,"silencer01"))
|
|
{
|
|
self overridematerial("mtl_weapon_silencer_01","mtl_weapon_silencer_01_cloak");
|
|
}
|
|
|
|
if(issubstr(self.weapon,"opticstargetenhancer"))
|
|
{
|
|
self overridematerial("mtl_optics_target_enhancer_body","mtl_optics_target_enhancer_body_cloak");
|
|
}
|
|
|
|
if(issubstr(self.weapon,"variablereddot"))
|
|
{
|
|
self overridematerial("mtl_optics_variable_red_dot","mtl_optics_variable_red_dot_cloak");
|
|
self overridematerial("mtl_optics_variable_red_dot_glass02","mtl_optics_variable_red_dot_glass02_nodraw");
|
|
}
|
|
|
|
if(issubstr(self.weapon,"directhack"))
|
|
{
|
|
self overridematerial("mtl_directhack","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(self.weapon,"foregrip"))
|
|
{
|
|
self overridematerial("mtl_foregrip","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(self.weapon,"parabolicmicrophone"))
|
|
{
|
|
self overridematerial("mtl_mic_parabolic","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(self.weapon,"detech"))
|
|
{
|
|
self overridematerial("mtl_optics_de_tech","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(self.weapon,"lasersight"))
|
|
{
|
|
self overridematerial("mtl_weapon_lasersight_01","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(self.weapon,"ironsights"))
|
|
{
|
|
self overridematerial("_iron_sights_black","cloak_generic");
|
|
self overridematerial("_iron_sights_color","cloak_generic");
|
|
}
|
|
|
|
if(issubstr(self.weapon,"opticseotech"))
|
|
{
|
|
self overridematerial("mtl_weapon_eotech_body","mtl_weapon_eotech_body_cloak");
|
|
}
|
|
|
|
if(issubstr(self.weapon,"opticsthermal"))
|
|
{
|
|
self overridematerial("mtl_weapon_thermal_scope","mtl_weapon_thermal_scope_cloak");
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 16
|
|
cloak_vm_weapon_instantaneous()
|
|
{
|
|
set_cloak_material_for_vm_weapon();
|
|
level.player setviewmodelmaterialscriptparam(0,0);
|
|
}
|
|
|
|
//Function Number: 17
|
|
cloak_vm_weapon_blend()
|
|
{
|
|
wait(0.1);
|
|
set_cloak_material_for_vm_weapon();
|
|
level.player setviewmodelmaterialscriptparam(1,0);
|
|
wait(0.05);
|
|
level.player setviewmodelmaterialscriptparam(0,0.75);
|
|
}
|
|
|
|
//Function Number: 18
|
|
cloak_npc_weapon_instantaneous()
|
|
{
|
|
set_cloak_material_for_npc_weapon();
|
|
self setmaterialscriptparam(0,0);
|
|
}
|
|
|
|
//Function Number: 19
|
|
monitor_player_weapon_for_cloak()
|
|
{
|
|
var_00 = level.player getcurrentweapon();
|
|
for(;;)
|
|
{
|
|
var_01 = level.player getcurrentweapon();
|
|
if(var_01 != var_00)
|
|
{
|
|
if(level._cloaked_stealth_settings.cloak_on)
|
|
{
|
|
wait(0.1);
|
|
cloak_vm_weapon_instantaneous();
|
|
}
|
|
|
|
var_00 = var_01;
|
|
}
|
|
|
|
if(level.player ismeleeing())
|
|
{
|
|
if(level._cloaked_stealth_settings.cloak_on)
|
|
{
|
|
wait(0.1);
|
|
cloak_vm_weapon_instantaneous();
|
|
}
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 20
|
|
check_for_npc_weapon_cloak_status_update()
|
|
{
|
|
self endon("death");
|
|
self notify("check_for_npc_weapon_cloak_status_update");
|
|
self endon("check_for_npc_weapon_cloak_status_update");
|
|
var_00 = self.weapon;
|
|
for(;;)
|
|
{
|
|
if(isdefined(self.cloak))
|
|
{
|
|
var_01 = self.weapon;
|
|
if(var_01 != var_00)
|
|
{
|
|
if(self.cloak == "on")
|
|
{
|
|
wait(0.1);
|
|
cloak_npc_weapon_instantaneous();
|
|
}
|
|
|
|
var_00 = var_01;
|
|
}
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 21
|
|
turn_on_the_cloak_effect_when_able()
|
|
{
|
|
while(isdefined(level._cloaked_stealth_settings.cloaking_visual_effect_in_progress))
|
|
{
|
|
wait(0.05);
|
|
}
|
|
|
|
level._cloaked_stealth_settings.cloaking_visual_effect_in_progress = 1;
|
|
var_00 = 0;
|
|
level.player setviewmodel("viewhands_s1_pmc_cloak");
|
|
thread cloak_vm_weapon_blend();
|
|
level.player drawpostresolve();
|
|
level.player hudoutlineenable(0);
|
|
if(isdefined(level._cloaked_stealth_settings.player_rig))
|
|
{
|
|
level._cloaked_stealth_settings.player_rig setmaterialscriptparam(0,0.3);
|
|
var_00 = 0.3;
|
|
level._cloaked_stealth_settings.player_rig hudoutlineenable(0);
|
|
}
|
|
|
|
if(isdefined(level.scr_model["player_rig"]))
|
|
{
|
|
level.scr_model["player_rig"] = "viewbody_sentinel_covert_cloak";
|
|
}
|
|
|
|
if(isdefined(level.player_rig))
|
|
{
|
|
level.player_rig setmodel(level.scr_model["player_rig"]);
|
|
level.player_rig drawpostresolve();
|
|
level.player_rig setmaterialscriptparam(0,0.3);
|
|
var_00 = 0.3;
|
|
level.player_rig hudoutlineenable(0);
|
|
}
|
|
|
|
wait(var_00);
|
|
level._cloaked_stealth_settings.cloaking_visual_effect_in_progress = undefined;
|
|
}
|
|
|
|
//Function Number: 22
|
|
turn_on_the_cloak_effect()
|
|
{
|
|
level._cloaked_stealth_settings.cloak_on = 1;
|
|
soundscripts\_snd::snd_message("exo_cloak_enable");
|
|
if(level._cloaked_stealth_settings.visibility_range_version == 1)
|
|
{
|
|
maps\_stealth_utility::stealth_detect_ranges_set(level._cloaked_stealth_settings.ranges["cloak_on_hidden"],level._cloaked_stealth_settings.ranges["cloak_on_spotted"]);
|
|
}
|
|
|
|
thread turn_on_the_cloak_effect_when_able();
|
|
}
|
|
|
|
//Function Number: 23
|
|
turn_off_the_cloak_effect_when_able()
|
|
{
|
|
while(level.player ismeleeing() || isdefined(level._cloaked_stealth_settings.cloaking_visual_effect_in_progress))
|
|
{
|
|
wait(0.05);
|
|
}
|
|
|
|
level._cloaked_stealth_settings.cloaking_visual_effect_in_progress = 1;
|
|
var_00 = 0;
|
|
level.player setviewmodel("viewhands_player_sentinel");
|
|
level.player drawpostresolveoff();
|
|
level.player hudoutlinedisable();
|
|
if(isdefined(level._cloaked_stealth_settings.player_rig))
|
|
{
|
|
level._cloaked_stealth_settings.player_rig setmaterialscriptparam(1,0.2);
|
|
var_00 = 0.2;
|
|
level._cloaked_stealth_settings.player_rig hudoutlinedisable();
|
|
soundscripts\_snd::snd_message("exo_cloak_disable");
|
|
}
|
|
|
|
level.player overrideviewmodelmaterialreset();
|
|
if(isdefined(level.scr_model["player_rig"]))
|
|
{
|
|
level.scr_model["player_rig"] = "viewbody_sentinel_covert";
|
|
}
|
|
|
|
if(isdefined(level.player_rig))
|
|
{
|
|
level.player_rig drawpostresolveoff();
|
|
level.player_rig setmaterialscriptparam(1,0.3);
|
|
var_00 = 0.3;
|
|
level.player_rig setmodel(level.scr_model["player_rig"]);
|
|
level.player_rig hudoutlinedisable();
|
|
}
|
|
|
|
wait(var_00);
|
|
level._cloaked_stealth_settings.cloaking_visual_effect_in_progress = undefined;
|
|
}
|
|
|
|
//Function Number: 24
|
|
turn_off_the_cloak_effect()
|
|
{
|
|
level._cloaked_stealth_settings.cloak_on = 0;
|
|
if(level._cloaked_stealth_settings.visibility_range_version == 1)
|
|
{
|
|
maps\_stealth_utility::stealth_detect_ranges_set(level._cloaked_stealth_settings.ranges["cloak_off_hidden"],level._cloaked_stealth_settings.ranges["cloak_off_spotted"]);
|
|
}
|
|
|
|
thread turn_off_the_cloak_effect_when_able();
|
|
}
|
|
|
|
//Function Number: 25
|
|
set_player_detection_distance_for_speed(param_00)
|
|
{
|
|
if(!isdefined(level._cloaked_stealth_settings.current_speed))
|
|
{
|
|
level._cloaked_stealth_settings.current_speed = -1;
|
|
}
|
|
|
|
if(level._cloaked_stealth_settings.current_speed != param_00)
|
|
{
|
|
level._cloaked_stealth_settings.current_speed = param_00;
|
|
if(isdefined(level.player._stealth) && level.player [[ level.player._stealth.logic.getinshadow_func ]]())
|
|
{
|
|
maps\_stealth_utility::stealth_detect_ranges_set(level._cloaked_stealth_settings.visibility_distance["shadow"][param_00],level._cloaked_stealth_settings.visibility_distance["shadow"][param_00]);
|
|
}
|
|
else
|
|
{
|
|
maps\_stealth_utility::stealth_detect_ranges_set(level._cloaked_stealth_settings.visibility_distance[param_00],level._cloaked_stealth_settings.visibility_distance[param_00]);
|
|
}
|
|
|
|
if(param_00 == 1000)
|
|
{
|
|
maps\_stealth_visibility_system::system_default_event_distances();
|
|
var_01 = level._stealth.logic.detection_level;
|
|
maps\_stealth_visibility_system::system_event_change(var_01);
|
|
}
|
|
else if(isdefined(level.player._stealth) && level.player [[ level.player._stealth.logic.getinshadow_func ]]())
|
|
{
|
|
maps\_stealth_utility::stealth_ai_event_dist_custom(level._cloaked_stealth_settings.event_distance["shadow"][param_00]);
|
|
}
|
|
else
|
|
{
|
|
maps\_stealth_utility::stealth_ai_event_dist_custom(level._cloaked_stealth_settings.event_distance[param_00]);
|
|
}
|
|
}
|
|
|
|
if(level.player maps\_utility::ent_flag_exist("_stealth_in_mute_radius") && level.player maps\_utility::ent_flag("_stealth_in_mute_radius"))
|
|
{
|
|
override_event_distances_for_mute_volume();
|
|
}
|
|
}
|
|
|
|
//Function Number: 26
|
|
do_player_cloak_update_threads()
|
|
{
|
|
if(level._cloaked_stealth_settings.visibility_range_version == 2)
|
|
{
|
|
thread monitor_player_speed_for_cloak();
|
|
}
|
|
|
|
thread monitor_player_weapon_for_cloak();
|
|
thread monitor_player_damage_for_cloak();
|
|
thread monitor_player_fire_for_cloak();
|
|
}
|
|
|
|
//Function Number: 27
|
|
monitor_player_damage_for_cloak()
|
|
{
|
|
while(!isdefined(level.player))
|
|
{
|
|
wait(0.1);
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
level.player waittill("damage");
|
|
if(level._cloaked_stealth_settings.cloak_on == 1 && !isdefined(level._cloaked_stealth_settings.cloak_disabled))
|
|
{
|
|
cloak_device_hit_by_electro_magnetic_pulse();
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 28
|
|
monitor_player_fire_for_cloak()
|
|
{
|
|
while(!isdefined(level.player))
|
|
{
|
|
wait(0.1);
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
level.player waittill("weapon_fired",var_00);
|
|
if(!common_scripts\utility::flag("flag_player_cloak_enabled"))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(issubstr(var_00,"silence"))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(level._cloaked_stealth_settings.cloak_on == 1 && !isdefined(level._cloaked_stealth_settings.cloak_disabled))
|
|
{
|
|
cloak_device_hit_by_electro_magnetic_pulse();
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 29
|
|
monitor_player_speed_for_cloak()
|
|
{
|
|
for(;;)
|
|
{
|
|
if(isdefined(level.player) && isdefined(level._cloaked_stealth_settings))
|
|
{
|
|
if(level._cloaked_stealth_settings.cloak_on == 1 && !isdefined(level._cloaked_stealth_settings.cloak_disabled))
|
|
{
|
|
var_00 = level.player maps\_shg_utility::get_differentiated_speed();
|
|
if(var_00 < 50)
|
|
{
|
|
set_player_detection_distance_for_speed(0);
|
|
}
|
|
else if(var_00 < 100)
|
|
{
|
|
set_player_detection_distance_for_speed(50);
|
|
}
|
|
else if(var_00 < 150)
|
|
{
|
|
set_player_detection_distance_for_speed(100);
|
|
}
|
|
else if(var_00 < 200)
|
|
{
|
|
set_player_detection_distance_for_speed(150);
|
|
}
|
|
else if(var_00 < 250)
|
|
{
|
|
set_player_detection_distance_for_speed(200);
|
|
}
|
|
else if(var_00 < 300)
|
|
{
|
|
set_player_detection_distance_for_speed(250);
|
|
}
|
|
else if(var_00 < 350)
|
|
{
|
|
set_player_detection_distance_for_speed(300);
|
|
}
|
|
else if(var_00 < 400)
|
|
{
|
|
set_player_detection_distance_for_speed(350);
|
|
}
|
|
else
|
|
{
|
|
set_player_detection_distance_for_speed(400);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
set_player_detection_distance_for_speed(1000);
|
|
}
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 30
|
|
cloak_device_hit_by_electro_magnetic_pulse()
|
|
{
|
|
level._cloaked_stealth_settings.cloak_battery_level = level._cloaked_stealth_settings.battery_min;
|
|
turn_off_the_cloak_effect();
|
|
soundscripts\_snd::snd_message("exo_cloak_battery_dead");
|
|
level._cloaked_stealth_settings.penalty_timer = 5;
|
|
level._cloaked_stealth_settings.must_wait_for_full_charge = 1;
|
|
}
|
|
|
|
//Function Number: 31
|
|
cloak_battery_hud()
|
|
{
|
|
self endon("death");
|
|
var_00 = 0.05;
|
|
var_01 = var_00 / 120;
|
|
var_02 = var_00 / 22;
|
|
var_03 = var_00 / 2.5;
|
|
var_04 = var_00 / 90;
|
|
level._cloaked_stealth_settings.battery_min = 0.01;
|
|
level._cloaked_stealth_settings.cloak_battery_level = 1;
|
|
level._cloaked_stealth_settings.penalty_timer = 0;
|
|
level._cloaked_stealth_settings.must_wait_for_full_charge = 0;
|
|
level._cloaked_stealth_settings.auto_recloak = 0;
|
|
var_05 = 0;
|
|
for(;;)
|
|
{
|
|
if(level._cloaked_stealth_settings.cloak_on == 1)
|
|
{
|
|
if(1)
|
|
{
|
|
var_06 = level.player maps\_shg_utility::get_differentiated_speed();
|
|
if(var_06 < 10)
|
|
{
|
|
if(var_05 > 0)
|
|
{
|
|
var_05 = var_05 - var_00;
|
|
}
|
|
else
|
|
{
|
|
level._cloaked_stealth_settings.cloak_battery_level = level._cloaked_stealth_settings.cloak_battery_level + var_04;
|
|
if(level._cloaked_stealth_settings.cloak_battery_level > 1)
|
|
{
|
|
level._cloaked_stealth_settings.cloak_battery_level = 1;
|
|
level._cloaked_stealth_settings.must_wait_for_full_charge = 0;
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var_05 = 1;
|
|
var_07 = var_06 / 500;
|
|
if(var_07 < 0)
|
|
{
|
|
var_07 = 0;
|
|
}
|
|
else if(var_07 > 1)
|
|
{
|
|
var_07 = 1;
|
|
}
|
|
|
|
var_08 = 40 * var_07 * var_07 * var_07;
|
|
level._cloaked_stealth_settings.cloak_battery_level = level._cloaked_stealth_settings.cloak_battery_level - var_08 * var_02;
|
|
if(level._cloaked_stealth_settings.cloak_battery_level <= level._cloaked_stealth_settings.battery_min)
|
|
{
|
|
level._cloaked_stealth_settings.cloak_battery_level = level._cloaked_stealth_settings.battery_min;
|
|
turn_off_the_cloak_effect();
|
|
soundscripts\_snd::snd_message("exo_cloak_battery_dead");
|
|
level._cloaked_stealth_settings.penalty_timer = 1;
|
|
level._cloaked_stealth_settings.must_wait_for_full_charge = 1;
|
|
if(0)
|
|
{
|
|
level._cloaked_stealth_settings.auto_recloak = 1;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
level._cloaked_stealth_settings.cloak_battery_level = level._cloaked_stealth_settings.cloak_battery_level - var_02;
|
|
if(level._cloaked_stealth_settings.cloak_battery_level <= level._cloaked_stealth_settings.battery_min)
|
|
{
|
|
level._cloaked_stealth_settings.cloak_battery_level = level._cloaked_stealth_settings.battery_min;
|
|
turn_off_the_cloak_effect();
|
|
soundscripts\_snd::snd_message("exo_cloak_battery_dead");
|
|
level._cloaked_stealth_settings.penalty_timer = 1;
|
|
level._cloaked_stealth_settings.must_wait_for_full_charge = 1;
|
|
}
|
|
}
|
|
}
|
|
else if(1)
|
|
{
|
|
if(var_05 > 0 || level._cloaked_stealth_settings.penalty_timer > 0)
|
|
{
|
|
var_05 = var_05 - var_00;
|
|
level._cloaked_stealth_settings.penalty_timer = level._cloaked_stealth_settings.penalty_timer - var_00;
|
|
}
|
|
else
|
|
{
|
|
level._cloaked_stealth_settings.cloak_battery_level = level._cloaked_stealth_settings.cloak_battery_level + var_03;
|
|
if(level._cloaked_stealth_settings.cloak_battery_level > 1)
|
|
{
|
|
level._cloaked_stealth_settings.cloak_battery_level = 1;
|
|
level._cloaked_stealth_settings.must_wait_for_full_charge = 0;
|
|
if(0 && level._cloaked_stealth_settings.auto_recloak)
|
|
{
|
|
level._cloaked_stealth_settings.auto_recloak = 0;
|
|
turn_on_the_cloak_effect();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else if(level._cloaked_stealth_settings.penalty_timer > 0)
|
|
{
|
|
level._cloaked_stealth_settings.penalty_timer = level._cloaked_stealth_settings.penalty_timer - var_00;
|
|
}
|
|
else
|
|
{
|
|
level._cloaked_stealth_settings.cloak_battery_level = level._cloaked_stealth_settings.cloak_battery_level + var_03;
|
|
if(level._cloaked_stealth_settings.cloak_battery_level > 1)
|
|
{
|
|
level._cloaked_stealth_settings.cloak_battery_level = 1;
|
|
level._cloaked_stealth_settings.must_wait_for_full_charge = 0;
|
|
if(0 && level._cloaked_stealth_settings.auto_recloak)
|
|
{
|
|
level._cloaked_stealth_settings.auto_recloak = 0;
|
|
turn_on_the_cloak_effect();
|
|
}
|
|
}
|
|
}
|
|
|
|
var_09 = int(100 * level._cloaked_stealth_settings.cloak_battery_level);
|
|
if(isdefined(level._cloaked_stealth_settings.battery_hud_is_visible) && level._cloaked_stealth_settings.battery_hud_is_visible == 1)
|
|
{
|
|
level.player setclientomnvar("ui_cloak",common_scripts\utility::flag("flag_player_cloak_enabled"));
|
|
level.player setclientomnvar("ui_cloak_cinematic",0);
|
|
level.player setclientomnvar("ui_cloak_on",level._cloaked_stealth_settings.cloak_on);
|
|
level.player setclientomnvar("ui_cloak_health",var_09);
|
|
level.player setclientomnvar("ui_meterhud_toggle",common_scripts\utility::flag("flag_player_cloak_enabled"));
|
|
level.player setclientomnvar("ui_meterhud_text",level._cloaked_stealth_settings.cloak_on);
|
|
level.player setclientomnvar("ui_meterhud_level",level._cloaked_stealth_settings.cloak_battery_level);
|
|
}
|
|
else
|
|
{
|
|
level.player setclientomnvar("ui_cloak",0);
|
|
level.player setclientomnvar("ui_meterhud_toggle",0);
|
|
level.player setclientomnvar("ui_meterhud_text",level._cloaked_stealth_settings.cloak_on);
|
|
}
|
|
|
|
wait(var_00);
|
|
}
|
|
}
|
|
|
|
//Function Number: 32
|
|
cloak_hud()
|
|
{
|
|
level.player endon("death");
|
|
level.player notifyonplayercommand("cloak_button_pressed","+actionslot 4");
|
|
level.player setweaponhudiconoverride("actionslot4","dpad_icon_cloak");
|
|
thread cloak_battery_hud();
|
|
level._cloaked_stealth_settings.playing_view_model_cloak_toggle_anim = 0;
|
|
if(level._cloaked_stealth_settings.cloak_on == 1)
|
|
{
|
|
turn_on_the_cloak_effect();
|
|
}
|
|
else
|
|
{
|
|
turn_off_the_cloak_effect();
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
level.player waittill("cloak_button_pressed");
|
|
if(common_scripts\utility::flag("flag_player_cloak_enabled"))
|
|
{
|
|
if(!common_scripts\utility::flag("flag_player_cloak_on_pressed"))
|
|
{
|
|
common_scripts\utility::flag_set("flag_player_cloak_on_pressed");
|
|
}
|
|
|
|
if(!level._cloaked_stealth_settings.playing_view_model_cloak_toggle_anim)
|
|
{
|
|
if(level._cloaked_stealth_settings.cloak_on == 1)
|
|
{
|
|
if(!isdefined(level.player_rig))
|
|
{
|
|
thread _play_view_model_cloak_toggle_anim();
|
|
}
|
|
|
|
continue;
|
|
}
|
|
|
|
if(level._cloaked_stealth_settings.cloak_battery_level > level._cloaked_stealth_settings.battery_min)
|
|
{
|
|
if(level._cloaked_stealth_settings.must_wait_for_full_charge == 0)
|
|
{
|
|
if(!isdefined(level.player_rig))
|
|
{
|
|
thread _play_view_model_cloak_toggle_anim();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 33
|
|
_ensure_player_is_decloaked()
|
|
{
|
|
while(level._cloaked_stealth_settings.playing_view_model_cloak_toggle_anim)
|
|
{
|
|
wait(0.05);
|
|
}
|
|
|
|
if(level._cloaked_stealth_settings.cloak_on == 1)
|
|
{
|
|
_play_view_model_cloak_toggle_anim();
|
|
}
|
|
}
|
|
|
|
//Function Number: 34
|
|
disable_cloak_system(param_00)
|
|
{
|
|
common_scripts\utility::flag_clear("flag_player_cloak_enabled");
|
|
cloaked_stealth_disable_battery_hud();
|
|
level.player setweaponhudiconoverride("actionslot4","dpad_icon_cloak_off");
|
|
if(isdefined(param_00) && param_00)
|
|
{
|
|
thread _ensure_player_is_decloaked();
|
|
return;
|
|
}
|
|
|
|
if(level._cloaked_stealth_settings.cloak_on == 1)
|
|
{
|
|
turn_off_the_cloak_effect();
|
|
}
|
|
}
|
|
|
|
//Function Number: 35
|
|
init_cloaked_stealth_settings()
|
|
{
|
|
if(level._cloaked_stealth_settings.visibility_range_version == 1)
|
|
{
|
|
init_cloaked_stealth_visibility_range_v1();
|
|
}
|
|
else
|
|
{
|
|
init_cloaked_stealth_detection_range();
|
|
}
|
|
|
|
set_corpse_detection_ranges_for_cloak_system();
|
|
soundscripts\_snd::snd_message("snd_cloak_init");
|
|
}
|
|
|
|
//Function Number: 36
|
|
init_player_cloak_state()
|
|
{
|
|
if(level._cloaked_stealth_settings.visibility_range_version == 1)
|
|
{
|
|
maps\_stealth_utility::stealth_detect_ranges_set(level._cloaked_stealth_settings.ranges["cloak_off_hidden"],level._cloaked_stealth_settings.ranges["cloak_off_spotted"]);
|
|
return;
|
|
}
|
|
|
|
set_player_detection_distance_for_speed(0);
|
|
}
|
|
|
|
//Function Number: 37
|
|
init_cloaked_stealth_visibility_range_v1()
|
|
{
|
|
level._cloaked_stealth_settings.ranges = [];
|
|
level._cloaked_stealth_settings.ranges["cloak_on_hidden"]["prone"] = 70;
|
|
level._cloaked_stealth_settings.ranges["cloak_on_hidden"]["crouch"] = 90;
|
|
level._cloaked_stealth_settings.ranges["cloak_on_hidden"]["stand"] = 150;
|
|
level._cloaked_stealth_settings.ranges["cloak_on_spotted"]["prone"] = 150;
|
|
level._cloaked_stealth_settings.ranges["cloak_on_spotted"]["crouch"] = 400;
|
|
level._cloaked_stealth_settings.ranges["cloak_on_spotted"]["stand"] = 512;
|
|
level._cloaked_stealth_settings.ranges["cloak_off_hidden"]["prone"] = 70;
|
|
level._cloaked_stealth_settings.ranges["cloak_off_hidden"]["crouch"] = 600;
|
|
level._cloaked_stealth_settings.ranges["cloak_off_hidden"]["stand"] = 1024;
|
|
level._cloaked_stealth_settings.ranges["cloak_off_spotted"]["prone"] = 512;
|
|
level._cloaked_stealth_settings.ranges["cloak_off_spotted"]["crouch"] = 5000;
|
|
level._cloaked_stealth_settings.ranges["cloak_off_spotted"]["stand"] = 8000;
|
|
}
|
|
|
|
//Function Number: 38
|
|
get_detection_distance_for_player_speed(param_00)
|
|
{
|
|
var_01 = 92;
|
|
var_02 = 200;
|
|
var_03 = 400;
|
|
return var_02 - var_01 * param_00 / var_03 + var_01;
|
|
}
|
|
|
|
//Function Number: 39
|
|
init_uncloaked_detection_distance_setting(param_00)
|
|
{
|
|
var_01 = 450;
|
|
level._cloaked_stealth_settings.visibility_distance[param_00]["prone"] = var_01 * 0.6;
|
|
level._cloaked_stealth_settings.visibility_distance[param_00]["crouch"] = var_01 * 0.8;
|
|
level._cloaked_stealth_settings.visibility_distance[param_00]["stand"] = var_01;
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistDeath"] = [];
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistPain"] = [];
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistBullet"] = [];
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistFootstep"] = [];
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistFootstepWalk"] = [];
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistFootstepSprint"] = [];
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistNewEnemy"] = [];
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistGunShot"] = [];
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistExplosion"] = [];
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistDeath"]["spotted"] = var_01;
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistDeath"]["hidden"] = var_01;
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistPain"]["spotted"] = var_01;
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistPain"]["hidden"] = var_01;
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistBullet"]["spotted"] = var_01;
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistBullet"]["hidden"] = var_01;
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistFootstep"]["spotted"] = var_01;
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistFootstep"]["hidden"] = var_01;
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistFootstepWalk"]["spotted"] = var_01;
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistFootstepWalk"]["hidden"] = var_01;
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistFootstepSprint"]["spotted"] = var_01;
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistFootstepSprint"]["hidden"] = var_01;
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistNewEnemy"]["spotted"] = var_01;
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistNewEnemy"]["hidden"] = var_01;
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistGunShot"]["spotted"] = 6000;
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistGunShot"]["hidden"] = 6000;
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistExplosion"]["spotted"] = 6000;
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistExplosion"]["hidden"] = 6000;
|
|
}
|
|
|
|
//Function Number: 40
|
|
init_detection_distance_setting(param_00,param_01)
|
|
{
|
|
level._cloaked_stealth_settings.visibility_distance[param_00]["prone"] = param_01;
|
|
level._cloaked_stealth_settings.visibility_distance[param_00]["crouch"] = param_01;
|
|
level._cloaked_stealth_settings.visibility_distance[param_00]["stand"] = param_01;
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistDeath"] = [];
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistPain"] = [];
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistBullet"] = [];
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistFootstep"] = [];
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistFootstepWalk"] = [];
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistFootstepSprint"] = [];
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistNewEnemy"] = [];
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistGunShot"] = [];
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistExplosion"] = [];
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistDeath"]["spotted"] = param_01;
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistDeath"]["hidden"] = param_01;
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistPain"]["spotted"] = param_01;
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistPain"]["hidden"] = param_01;
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistBullet"]["spotted"] = param_01;
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistBullet"]["hidden"] = param_01;
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistFootstep"]["spotted"] = param_01;
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistFootstep"]["hidden"] = param_01;
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistFootstepWalk"]["spotted"] = param_01;
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistFootstepWalk"]["hidden"] = param_01;
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistFootstepSprint"]["spotted"] = param_01;
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistFootstepSprint"]["hidden"] = param_01;
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistNewEnemy"]["spotted"] = param_01;
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistNewEnemy"]["hidden"] = param_01;
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistGunShot"]["spotted"] = 6000;
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistGunShot"]["hidden"] = 6000;
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistExplosion"]["spotted"] = 6000;
|
|
level._cloaked_stealth_settings.event_distance[param_00]["ai_eventDistExplosion"]["hidden"] = 6000;
|
|
}
|
|
|
|
//Function Number: 41
|
|
init_uncloaked_detection_distance_setting_for_shadow(param_00)
|
|
{
|
|
var_01 = 225;
|
|
level._cloaked_stealth_settings.visibility_distance["shadow"][param_00]["prone"] = var_01 * 0.6;
|
|
level._cloaked_stealth_settings.visibility_distance["shadow"][param_00]["crouch"] = var_01 * 0.8;
|
|
level._cloaked_stealth_settings.visibility_distance["shadow"][param_00]["stand"] = var_01;
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistDeath"] = [];
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistPain"] = [];
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistBullet"] = [];
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistFootstep"] = [];
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistFootstepWalk"] = [];
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistFootstepSprint"] = [];
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistNewEnemy"] = [];
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistGunShot"] = [];
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistExplosion"] = [];
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistDeath"]["spotted"] = var_01;
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistDeath"]["hidden"] = var_01;
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistPain"]["spotted"] = var_01;
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistPain"]["hidden"] = var_01;
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistBullet"]["spotted"] = var_01;
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistBullet"]["hidden"] = var_01;
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistFootstep"]["spotted"] = var_01;
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistFootstep"]["hidden"] = var_01;
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistFootstepWalk"]["spotted"] = var_01;
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistFootstepWalk"]["hidden"] = var_01;
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistFootstepSprint"]["spotted"] = var_01;
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistFootstepSprint"]["hidden"] = var_01;
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistNewEnemy"]["spotted"] = var_01;
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistNewEnemy"]["hidden"] = var_01;
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistGunShot"]["spotted"] = 6000;
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistGunShot"]["hidden"] = 6000;
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistExplosion"]["spotted"] = 6000;
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistExplosion"]["hidden"] = 6000;
|
|
}
|
|
|
|
//Function Number: 42
|
|
init_detection_distance_setting_for_shadow(param_00,param_01)
|
|
{
|
|
level._cloaked_stealth_settings.visibility_distance["shadow"][param_00]["prone"] = param_01;
|
|
level._cloaked_stealth_settings.visibility_distance["shadow"][param_00]["crouch"] = param_01;
|
|
level._cloaked_stealth_settings.visibility_distance["shadow"][param_00]["stand"] = param_01;
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistDeath"] = [];
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistPain"] = [];
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistBullet"] = [];
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistFootstep"] = [];
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistFootstepWalk"] = [];
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistFootstepSprint"] = [];
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistNewEnemy"] = [];
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistGunShot"] = [];
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistExplosion"] = [];
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistDeath"]["spotted"] = param_01;
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistDeath"]["hidden"] = param_01;
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistPain"]["spotted"] = param_01;
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistPain"]["hidden"] = param_01;
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistBullet"]["spotted"] = param_01;
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistBullet"]["hidden"] = param_01;
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistFootstep"]["spotted"] = param_01;
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistFootstep"]["hidden"] = param_01;
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistFootstepWalk"]["spotted"] = param_01;
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistFootstepWalk"]["hidden"] = param_01;
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistFootstepSprint"]["spotted"] = param_01;
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistFootstepSprint"]["hidden"] = param_01;
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistNewEnemy"]["spotted"] = param_01;
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistNewEnemy"]["hidden"] = param_01;
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistGunShot"]["spotted"] = 6000;
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistGunShot"]["hidden"] = 6000;
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistExplosion"]["spotted"] = 6000;
|
|
level._cloaked_stealth_settings.event_distance["shadow"][param_00]["ai_eventDistExplosion"]["hidden"] = 6000;
|
|
}
|
|
|
|
//Function Number: 43
|
|
init_computed_detection_distance_setting(param_00)
|
|
{
|
|
var_01 = get_detection_distance_for_player_speed(param_00);
|
|
init_detection_distance_setting(param_00,var_01);
|
|
init_detection_distance_setting_for_shadow(param_00,var_01 * 0.5);
|
|
}
|
|
|
|
//Function Number: 44
|
|
init_cloaked_stealth_detection_range()
|
|
{
|
|
level._cloaked_stealth_settings.visibility_distance = [];
|
|
level._cloaked_stealth_settings.event_distance = [];
|
|
init_computed_detection_distance_setting(0);
|
|
init_computed_detection_distance_setting(50);
|
|
init_computed_detection_distance_setting(100);
|
|
init_computed_detection_distance_setting(150);
|
|
init_computed_detection_distance_setting(200);
|
|
init_computed_detection_distance_setting(250);
|
|
init_computed_detection_distance_setting(300);
|
|
init_computed_detection_distance_setting(350);
|
|
init_computed_detection_distance_setting(400);
|
|
init_uncloaked_detection_distance_setting(1000);
|
|
init_uncloaked_detection_distance_setting_for_shadow(1000);
|
|
}
|
|
|
|
//Function Number: 45
|
|
set_corpse_detection_ranges_for_cloak_system()
|
|
{
|
|
var_00["player_dist"] = 0;
|
|
var_00["sight_dist"] = 0;
|
|
var_00["detect_dist"] = 0;
|
|
maps\_stealth_utility::stealth_corpse_ranges_custom(var_00);
|
|
}
|
|
|
|
//Function Number: 46
|
|
debug_monitor_for_all_cloaked_stealth_enemies(param_00,param_01)
|
|
{
|
|
var_02 = 1;
|
|
for(;;)
|
|
{
|
|
if(isdefined(level._cloak_enemy_array))
|
|
{
|
|
level._cloak_enemy_array = maps\_utility::array_removedead(level._cloak_enemy_array);
|
|
foreach(var_04 in level._cloak_enemy_array)
|
|
{
|
|
var_04 thread maps\_stealth_debug::stealth_enemy_minimal_debug_monitor();
|
|
if(isdefined(param_01) && param_01 == 1)
|
|
{
|
|
var_04 thread show_detailed_cloak_enemy_state();
|
|
}
|
|
|
|
if(isdefined(param_00) && param_00 == 1)
|
|
{
|
|
var_04 thread maps\_stealth_debug::last_known_position_monitor();
|
|
}
|
|
}
|
|
}
|
|
|
|
wait(var_02);
|
|
}
|
|
}
|
|
|
|
//Function Number: 47
|
|
show_detailed_cloak_enemy_state()
|
|
{
|
|
self notify("show_detailed_cloak_enemy_state");
|
|
self endon("show_detailed_cloak_enemy_state");
|
|
self endon("death");
|
|
for(;;)
|
|
{
|
|
if(isdefined(self._cloak_enemy_state))
|
|
{
|
|
var_00 = "";
|
|
if(self._cloak_enemy_state == "default_stealth_state")
|
|
{
|
|
if(isdefined(self._stealth.debug_state))
|
|
{
|
|
var_00 = self._stealth.debug_state;
|
|
}
|
|
else
|
|
{
|
|
var_00 = "unknown state";
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var_00 = self._cloak_enemy_state;
|
|
}
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 48
|
|
is_player_cloaked()
|
|
{
|
|
return level._cloaked_stealth_settings.cloak_on;
|
|
}
|
|
|
|
//Function Number: 49
|
|
set_cloak_on_model()
|
|
{
|
|
self drawpostresolve();
|
|
self setmaterialscriptparam(0,0.3);
|
|
}
|
|
|
|
//Function Number: 50
|
|
set_event_distance(param_00,param_01)
|
|
{
|
|
setsaveddvar(param_00,param_01);
|
|
var_02 = "ai_busyEvent" + getsubstr(param_00,8);
|
|
setsaveddvar(var_02,param_01);
|
|
}
|
|
|
|
//Function Number: 51
|
|
override_event_distances_for_mute_volume()
|
|
{
|
|
set_event_distance("ai_eventDistDeath",1);
|
|
set_event_distance("ai_eventDistPain",1);
|
|
set_event_distance("ai_eventDistBullet",1);
|
|
set_event_distance("ai_eventDistFootstep",1);
|
|
set_event_distance("ai_eventDistFootstepWalk",1);
|
|
set_event_distance("ai_eventDistFootstepSprint",1);
|
|
set_event_distance("ai_eventDistNewEnemy",1);
|
|
set_event_distance("ai_eventDistGunShot",1);
|
|
set_event_distance("ai_eventDistExplosion",1);
|
|
}
|
|
|
|
//Function Number: 52
|
|
activate_mute_volume(param_00,param_01)
|
|
{
|
|
if(!level.player maps\_utility::ent_flag_exist("_stealth_in_mute_radius"))
|
|
{
|
|
level.player maps\_utility::ent_flag_init("_stealth_in_mute_radius");
|
|
}
|
|
|
|
var_02 = 0.05;
|
|
var_03 = self;
|
|
var_04 = param_00 * param_00;
|
|
var_05 = param_01;
|
|
for(;;)
|
|
{
|
|
var_05 = var_05 - var_02;
|
|
if(var_05 < 0)
|
|
{
|
|
level.player maps\_utility::ent_flag_clear("_stealth_in_mute_radius");
|
|
maps\_stealth_visibility_system::system_default_event_distances();
|
|
maps\_stealth_visibility_system::system_event_change(level._stealth.logic.detection_level);
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(var_03))
|
|
{
|
|
level.player maps\_utility::ent_flag_clear("_stealth_in_mute_radius");
|
|
maps\_stealth_visibility_system::system_default_event_distances();
|
|
maps\_stealth_visibility_system::system_event_change(level._stealth.logic.detection_level);
|
|
return;
|
|
}
|
|
|
|
var_06 = distancesquared(var_03.origin,level.player.origin);
|
|
if(var_06 < var_04)
|
|
{
|
|
mute_event_distances();
|
|
maps\_stealth_visibility_system::system_event_change(level._stealth.logic.detection_level);
|
|
level.player maps\_utility::ent_flag_set("_stealth_in_mute_radius");
|
|
}
|
|
else
|
|
{
|
|
maps\_stealth_visibility_system::system_default_event_distances();
|
|
maps\_stealth_visibility_system::system_event_change(level._stealth.logic.detection_level);
|
|
level.player maps\_utility::ent_flag_clear("_stealth_in_mute_radius");
|
|
}
|
|
|
|
wait(var_02);
|
|
}
|
|
}
|
|
|
|
//Function Number: 53
|
|
mute_event_distances()
|
|
{
|
|
var_00["ai_eventDistDeath"] = [];
|
|
var_00["ai_eventDistPain"] = [];
|
|
var_00["ai_eventDistExplosion"] = [];
|
|
var_00["ai_eventDistBullet"] = [];
|
|
var_00["ai_eventDistFootstep"] = [];
|
|
var_00["ai_eventDistFootstepWalk"] = [];
|
|
var_00["ai_eventDistFootstepSprint"] = [];
|
|
var_00["ai_eventDistGunShot"] = [];
|
|
var_00["ai_eventDistGunShotTeam"] = [];
|
|
var_00["ai_eventDistNewEnemy"] = [];
|
|
var_00["ai_eventDistDeath"]["spotted"] = getdvar("ai_eventDistDeath");
|
|
var_00["ai_eventDistDeath"]["hidden"] = 1;
|
|
var_00["ai_eventDistPain"]["spotted"] = getdvar("ai_eventDistPain");
|
|
var_00["ai_eventDistPain"]["hidden"] = 1;
|
|
var_00["ai_eventDistExplosion"]["spotted"] = 4000;
|
|
var_00["ai_eventDistExplosion"]["hidden"] = 1;
|
|
var_00["ai_eventDistBullet"]["spotted"] = 96;
|
|
var_00["ai_eventDistBullet"]["hidden"] = 1;
|
|
var_00["ai_eventDistFootstep"]["spotted"] = 1;
|
|
var_00["ai_eventDistFootstep"]["hidden"] = 1;
|
|
var_00["ai_eventDistFootstepWalk"]["spotted"] = 256;
|
|
var_00["ai_eventDistFootstepWalk"]["hidden"] = 1;
|
|
var_00["ai_eventDistFootstepSprint"]["spotted"] = 400;
|
|
var_00["ai_eventDistFootstepSprint"]["hidden"] = 1;
|
|
var_00["ai_eventDistGunShot"]["spotted"] = 2048;
|
|
var_00["ai_eventDistGunShot"]["hidden"] = 1;
|
|
var_00["ai_eventDistGunShotTeam"]["spotted"] = 750;
|
|
var_00["ai_eventDistGunShotTeam"]["hidden"] = 1;
|
|
var_00["ai_eventDistNewEnemy"]["spotted"] = 750;
|
|
var_00["ai_eventDistNewEnemy"]["hidden"] = 1;
|
|
maps\_stealth_visibility_system::system_set_event_distances(var_00);
|
|
}
|
|
|
|
//Function Number: 54
|
|
setalertstencilstate(param_00)
|
|
{
|
|
if(isdefined(param_00))
|
|
{
|
|
setsaveddvar("r_hudoutlinecloaklumscale",0);
|
|
thread maps\_utility::lerp_saveddvar("r_hudoutlinecloaklumscale",0.75,param_00);
|
|
}
|
|
else
|
|
{
|
|
setsaveddvar("r_hudoutlinecloaklumscale",0.75);
|
|
}
|
|
|
|
setsaveddvar("r_hudoutlinewidth",1);
|
|
setsaveddvar("r_hudoutlinepostmode",4);
|
|
setsaveddvar("r_hudoutlinecloakblurradius",0.35);
|
|
self hudoutlineenable(6,1);
|
|
}
|
|
|
|
//Function Number: 55
|
|
clearalertstencilstate()
|
|
{
|
|
if(isdefined(self))
|
|
{
|
|
self hudoutlinedisable();
|
|
self hudoutlineenable(0,0);
|
|
self hudoutlinedisable();
|
|
setsaveddvar("r_hudoutlinewidth",1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 56
|
|
clearstencilstateondeath()
|
|
{
|
|
if(isdefined(self))
|
|
{
|
|
self hudoutlinedisable();
|
|
self hudoutlineenable(0,0);
|
|
}
|
|
}
|
|
|
|
//Function Number: 57
|
|
setalertstencilstate_axis()
|
|
{
|
|
self endon("death");
|
|
setsaveddvar("r_hudoutlinewidth",1);
|
|
self hudoutlineenable(4,1);
|
|
}
|
|
|
|
//Function Number: 58
|
|
temp_cloak_gauge()
|
|
{
|
|
var_00 = 620;
|
|
var_01 = 240;
|
|
var_02 = 156;
|
|
var_03 = int(10);
|
|
var_04 = newhudelem();
|
|
var_04.x = var_00 - 0.5 * 20 - var_03;
|
|
var_04.y = var_01 - int(40);
|
|
var_04.alignx = "right";
|
|
var_04.aligny = "bottom";
|
|
var_04.horzalign = "fullscreen";
|
|
var_04.vertalign = "fullscreen";
|
|
var_04.color = (0.1,0.6,0.1);
|
|
var_04 setshader("white",var_03,int(var_02 * level._cloaked_stealth_settings.cloak_battery_level));
|
|
var_05 = newhudelem();
|
|
var_05.x = var_00;
|
|
var_05.y = var_01;
|
|
var_05.alignx = var_04.alignx;
|
|
var_05.aligny = var_04.aligny;
|
|
var_05.horzalign = var_04.horzalign;
|
|
var_05.vertalign = var_04.vertalign;
|
|
var_05.color = (1,1,1);
|
|
var_05 setshader("hud_temperature_gauge",20,200);
|
|
var_06 = 0.05;
|
|
for(;;)
|
|
{
|
|
if(isdefined(level._cloaked_stealth_settings.battery_hud_is_visible) && level._cloaked_stealth_settings.battery_hud_is_visible == 1)
|
|
{
|
|
var_04.alpha = 1;
|
|
var_05.alpha = 1;
|
|
var_07 = level._cloaked_stealth_settings.cloak_battery_level;
|
|
var_04 scaleovertime(var_06,var_03,int(var_02 * var_07));
|
|
if(var_07 > 0.5)
|
|
{
|
|
var_04.color = (0.1,0.6,0.1);
|
|
}
|
|
else if(var_07 > 0.2)
|
|
{
|
|
var_04.color = (1,1,0.1);
|
|
}
|
|
else
|
|
{
|
|
var_04.color = (1,0.1,0.1);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var_04.alpha = 0;
|
|
var_05.alpha = 0;
|
|
}
|
|
|
|
wait(var_06);
|
|
}
|
|
} |