mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-07 17:17:50 -05:00
2382 lines
53 KiB
Plaintext
2382 lines
53 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: _trigger.gsc
|
|
* Game: Call of Duty: Advanced Warfare
|
|
* Platform: PC
|
|
* Function Count: 86
|
|
* Decompile Time: 1248 ms
|
|
* Timestamp: 4/22/2024 2:23:32 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
get_load_trigger_classes()
|
|
{
|
|
var_00 = [];
|
|
var_00["trigger_multiple_nobloodpool"] = ::trigger_nobloodpool;
|
|
var_00["trigger_multiple_flag_set"] = ::trigger_flag_set;
|
|
var_00["trigger_multiple_flag_clear"] = ::trigger_flag_clear;
|
|
var_00["trigger_multiple_sun_off"] = ::trigger_sun_off;
|
|
var_00["trigger_multiple_sun_on"] = ::trigger_sun_on;
|
|
var_00["trigger_use_flag_set"] = ::trigger_flag_set;
|
|
var_00["trigger_use_flag_clear"] = ::trigger_flag_clear;
|
|
var_00["trigger_multiple_flag_set_touching"] = ::trigger_flag_set_touching;
|
|
var_00["trigger_multiple_flag_lookat"] = ::trigger_lookat;
|
|
var_00["trigger_multiple_flag_looking"] = ::trigger_looking;
|
|
var_00["trigger_multiple_no_prone"] = ::trigger_no_prone;
|
|
var_00["trigger_multiple_no_crouch_or_prone"] = ::trigger_no_crouch_or_prone;
|
|
var_00["trigger_multiple_compass"] = ::trigger_multiple_compass;
|
|
var_00["trigger_multiple_specialops_flag_set"] = ::trigger_flag_set_specialops;
|
|
var_00["trigger_multiple_fx_volume"] = ::trigger_multiple_fx_volume;
|
|
var_00["trigger_multiple_fx_fxzone"] = ::trigger_flag_set_touching;
|
|
var_00["trigger_multiple_light_sunshadow"] = ::maps\_lights::sun_shadow_trigger;
|
|
if(!maps\_utility::is_no_game_start())
|
|
{
|
|
var_00["trigger_multiple_autosave"] = ::maps\_autosave::trigger_autosave;
|
|
var_00["trigger_multiple_spawn"] = ::maps\_spawner::trigger_spawner;
|
|
var_00["trigger_multiple_spawn_reinforcement"] = ::maps\_spawner::trigger_spawner_reinforcement;
|
|
}
|
|
|
|
var_00["trigger_multiple_slide"] = ::trigger_slide;
|
|
var_00["trigger_multiple_statscheckpoint"] = ::trigger_stats;
|
|
var_00["trigger_multiple_fog"] = ::trigger_fog;
|
|
var_00["trigger_multiple_depthoffield"] = ::trigger_multiple_depthoffield;
|
|
var_00["trigger_multiple_tessellationcutoff"] = ::trigger_multiple_tessellationcutoff;
|
|
var_00["trigger_damage_player_flag_set"] = ::trigger_damage_player_flag_set;
|
|
var_00["trigger_multiple_visionset"] = ::trigger_multiple_visionset;
|
|
var_00["trigger_multiple_sunflare"] = ::trigger_multiple_sunflare;
|
|
var_00["trigger_multiple_glass_break"] = ::trigger_glass_break;
|
|
var_00["trigger_radius_glass_break"] = ::trigger_glass_break;
|
|
var_00["trigger_multiple_friendly_respawn"] = ::trigger_friendly_respawn;
|
|
var_00["trigger_multiple_enemy_respawn"] = ::trigger_enemy_respawn;
|
|
var_00["trigger_multiple_friendly_stop_respawn"] = ::trigger_friendly_stop_respawn;
|
|
var_00["trigger_multiple_enemy_stop_respawn"] = ::trigger_enemy_stop_respawn;
|
|
var_00["trigger_multiple_physics"] = ::trigger_physics;
|
|
var_00["trigger_multiple_fx_watersheeting"] = ::trigger_multiple_fx_watersheeting;
|
|
var_00["trigger_multiple_fx_wakevolume"] = ::trigger_wakevolume_think;
|
|
var_00["trigger_multiple_fx_fallingwatervolume"] = ::trigger_fallingwatervolume_think;
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 2
|
|
trigger_multiple_fx_watersheeting(param_00)
|
|
{
|
|
var_01 = 3;
|
|
if(isdefined(param_00.script_duration))
|
|
{
|
|
var_01 = param_00.script_duration;
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
param_00 waittill("trigger",var_02);
|
|
if(isplayer(var_02))
|
|
{
|
|
var_02 setwatersheeting(1,var_01);
|
|
wait(var_01 * 0.2);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 3
|
|
get_load_trigger_funcs()
|
|
{
|
|
var_00 = [];
|
|
var_00["friendly_wave"] = ::maps\_spawner::friendly_wave;
|
|
var_00["friendly_wave_off"] = ::maps\_spawner::friendly_wave;
|
|
var_00["friendly_mgTurret"] = ::maps\_spawner::friendly_mgturret;
|
|
if(!maps\_utility::is_no_game_start())
|
|
{
|
|
var_00["camper_spawner"] = ::maps\_spawner::camper_trigger_think;
|
|
var_00["flood_spawner"] = ::maps\_spawner::flood_trigger_think;
|
|
var_00["trigger_spawner"] = ::maps\_spawner::trigger_spawner;
|
|
var_00["trigger_autosave"] = ::maps\_autosave::trigger_autosave;
|
|
var_00["trigger_spawngroup"] = ::trigger_spawngroup;
|
|
var_00["two_stage_spawner"] = ::maps\_spawner::two_stage_spawner_think;
|
|
var_00["trigger_vehicle_spline_spawn"] = ::trigger_vehicle_spline_spawn;
|
|
var_00["trigger_vehicle_spawn"] = ::trigger_vehicle_spawn;
|
|
var_00["trigger_vehicle_getin_spawn"] = ::trigger_vehicle_getin_spawn;
|
|
var_00["random_spawn"] = ::maps\_spawner::random_spawn;
|
|
}
|
|
|
|
var_00["autosave_now"] = ::maps\_autosave::autosave_now_trigger;
|
|
var_00["trigger_autosave_tactical"] = ::maps\_autosave::trigger_autosave_tactical;
|
|
var_00["trigger_autosave_stealth"] = ::maps\_autosave::trigger_autosave_stealth;
|
|
var_00["trigger_unlock"] = ::trigger_unlock;
|
|
var_00["trigger_lookat"] = ::trigger_lookat;
|
|
var_00["trigger_looking"] = ::trigger_looking;
|
|
var_00["trigger_cansee"] = ::trigger_cansee;
|
|
var_00["autosave_immediate"] = ::maps\_autosave::trigger_autosave_immediate;
|
|
var_00["flag_set"] = ::trigger_flag_set;
|
|
if(maps\_utility::is_coop())
|
|
{
|
|
var_00["flag_set_coop"] = ::trigger_flag_set_coop;
|
|
}
|
|
|
|
var_00["flag_set_player"] = ::trigger_flag_set_player;
|
|
var_00["flag_unset"] = ::trigger_flag_clear;
|
|
var_00["flag_clear"] = ::trigger_flag_clear;
|
|
var_00["objective_event"] = ::maps\_spawner::objective_event_init;
|
|
var_00["friendly_respawn_trigger"] = ::trigger_friendly_respawn;
|
|
var_00["enemy_respawn_trigger"] = ::trigger_enemy_respawn;
|
|
var_00["radio_trigger"] = ::trigger_radio;
|
|
var_00["trigger_ignore"] = ::trigger_ignore;
|
|
var_00["trigger_pacifist"] = ::trigger_pacifist;
|
|
var_00["trigger_delete"] = ::trigger_turns_off;
|
|
var_00["trigger_delete_on_touch"] = ::trigger_delete_on_touch;
|
|
var_00["trigger_off"] = ::trigger_turns_off;
|
|
var_00["trigger_outdoor"] = ::maps\_spawner::outdoor_think;
|
|
var_00["trigger_indoor"] = ::maps\_spawner::indoor_think;
|
|
var_00["trigger_hint"] = ::trigger_hint;
|
|
var_00["trigger_grenade_at_player"] = ::trigger_throw_grenade_at_player;
|
|
var_00["flag_on_cleared"] = ::trigger_flag_on_cleared;
|
|
var_00["flag_set_touching"] = ::trigger_flag_set_touching;
|
|
var_00["delete_link_chain"] = ::trigger_delete_link_chain;
|
|
var_00["trigger_fog"] = ::trigger_fog;
|
|
var_00["trigger_slide"] = ::trigger_slide;
|
|
var_00["trigger_stats"] = ::trigger_stats;
|
|
var_00["trigger_dooropen"] = ::trigger_dooropen;
|
|
var_00["no_crouch_or_prone"] = ::trigger_no_crouch_or_prone;
|
|
var_00["no_prone"] = ::trigger_no_prone;
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 4
|
|
init_script_triggers()
|
|
{
|
|
var_00 = get_load_trigger_classes();
|
|
var_01 = get_load_trigger_funcs();
|
|
foreach(var_05, var_03 in var_00)
|
|
{
|
|
var_04 = getentarray(var_05,"classname");
|
|
common_scripts\utility::array_levelthread(var_04,var_03);
|
|
}
|
|
|
|
var_06 = getentarray("trigger_multiple","classname");
|
|
var_07 = getentarray("trigger_radius","classname");
|
|
var_04 = maps\_utility::array_merge(var_06,var_07);
|
|
var_08 = getentarray("trigger_disk","classname");
|
|
var_04 = maps\_utility::array_merge(var_04,var_08);
|
|
var_09 = getentarray("trigger_once","classname");
|
|
var_04 = maps\_utility::array_merge(var_04,var_09);
|
|
if(!maps\_utility::is_no_game_start())
|
|
{
|
|
for(var_0A = 0;var_0A < var_04.size;var_0A++)
|
|
{
|
|
if(var_04[var_0A].spawnflags & 32)
|
|
{
|
|
thread maps\_spawner::trigger_spawner(var_04[var_0A]);
|
|
}
|
|
}
|
|
}
|
|
|
|
for(var_0B = 0;var_0B < 7;var_0B++)
|
|
{
|
|
switch(var_0B)
|
|
{
|
|
case 0:
|
|
var_0C = "trigger_multiple";
|
|
break;
|
|
|
|
case 1:
|
|
var_0C = "trigger_once";
|
|
break;
|
|
|
|
case 2:
|
|
var_0C = "trigger_use";
|
|
break;
|
|
|
|
case 3:
|
|
var_0C = "trigger_radius";
|
|
break;
|
|
|
|
case 4:
|
|
var_0C = "trigger_lookat";
|
|
break;
|
|
|
|
case 5:
|
|
var_0C = "trigger_disk";
|
|
break;
|
|
|
|
default:
|
|
var_0C = "trigger_damage";
|
|
break;
|
|
}
|
|
|
|
var_04 = getentarray(var_0C,"code_classname");
|
|
for(var_0A = 0;var_0A < var_04.size;var_0A++)
|
|
{
|
|
if(isdefined(var_04[var_0A].script_flag_true))
|
|
{
|
|
level thread trigger_script_flag_true(var_04[var_0A]);
|
|
}
|
|
|
|
if(isdefined(var_04[var_0A].script_flag_false))
|
|
{
|
|
level thread trigger_script_flag_false(var_04[var_0A]);
|
|
}
|
|
|
|
if(isdefined(var_04[var_0A].script_autosavename) || isdefined(var_04[var_0A].script_autosave))
|
|
{
|
|
level thread maps\_autosave::autosavenamethink(var_04[var_0A]);
|
|
}
|
|
|
|
if(isdefined(var_04[var_0A].script_fallback))
|
|
{
|
|
level thread maps\_spawner::fallback_think(var_04[var_0A]);
|
|
}
|
|
|
|
if(isdefined(var_04[var_0A].script_mgturretauto))
|
|
{
|
|
level thread maps\_mgturret::mgturret_auto(var_04[var_0A]);
|
|
}
|
|
|
|
if(isdefined(var_04[var_0A].script_killspawner))
|
|
{
|
|
level thread maps\_spawner::kill_spawner(var_04[var_0A]);
|
|
}
|
|
|
|
if(isdefined(var_04[var_0A].script_kill_vehicle_spawner))
|
|
{
|
|
level thread maps\_vehicle_code::kill_vehicle_spawner(var_04[var_0A]);
|
|
}
|
|
|
|
if(isdefined(var_04[var_0A].script_emptyspawner))
|
|
{
|
|
level thread maps\_spawner::empty_spawner(var_04[var_0A]);
|
|
}
|
|
|
|
if(isdefined(var_04[var_0A].script_prefab_exploder))
|
|
{
|
|
var_04[var_0A].script_exploder = var_04[var_0A].script_prefab_exploder;
|
|
}
|
|
|
|
if(isdefined(var_04[var_0A].script_exploder))
|
|
{
|
|
level thread maps\_load::exploder_load(var_04[var_0A]);
|
|
}
|
|
|
|
if(isdefined(var_04[var_0A].ambient))
|
|
{
|
|
var_04[var_0A] thread soundscripts\_audio::trigger_multiple_audio_trigger(1);
|
|
}
|
|
|
|
if(isdefined(var_04[var_0A].script_audio_zones) || isdefined(var_04[var_0A].script_audio_enter_msg) || isdefined(var_04[var_0A].script_audio_exit_msg) || isdefined(var_04[var_0A].script_audio_progress_msg) || isdefined(var_04[var_0A].script_audio_enter_func) || isdefined(var_04[var_0A].script_audio_exit_func) || isdefined(var_04[var_0A].script_audio_progress_func) || isdefined(var_04[var_0A].script_audio_point_func))
|
|
{
|
|
var_04[var_0A] thread soundscripts\_audio::trigger_multiple_audio_trigger();
|
|
}
|
|
|
|
if(isdefined(var_04[var_0A].script_triggered_playerseek))
|
|
{
|
|
level thread trigger_playerseek(var_04[var_0A]);
|
|
}
|
|
|
|
if(isdefined(var_04[var_0A].script_bctrigger))
|
|
{
|
|
level thread trigger_battlechatter(var_04[var_0A]);
|
|
}
|
|
|
|
if(isdefined(var_04[var_0A].script_trigger_group))
|
|
{
|
|
var_04[var_0A] thread trigger_group();
|
|
}
|
|
|
|
if(isdefined(var_04[var_0A].script_random_killspawner))
|
|
{
|
|
level thread maps\_spawner::random_killspawner(var_04[var_0A]);
|
|
}
|
|
|
|
if(isdefined(var_04[var_0A].targetname))
|
|
{
|
|
var_0D = var_04[var_0A].targetname;
|
|
if(isdefined(var_01[var_0D]))
|
|
{
|
|
level thread [[ var_01[var_0D] ]](var_04[var_0A]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 5
|
|
trigger_createart_transient(param_00)
|
|
{
|
|
var_01 = 1;
|
|
if(var_01)
|
|
{
|
|
param_00 delete();
|
|
}
|
|
}
|
|
|
|
//Function Number: 6
|
|
createart_transient_thread()
|
|
{
|
|
}
|
|
|
|
//Function Number: 7
|
|
trigger_damage_player_flag_set(param_00)
|
|
{
|
|
var_01 = param_00 maps\_utility::get_trigger_flag();
|
|
if(!isdefined(level.flag[var_01]))
|
|
{
|
|
common_scripts\utility::flag_init(var_01);
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
param_00 waittill("trigger",var_02);
|
|
if(!isalive(var_02))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!isplayer(var_02))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
param_00 maps\_utility::script_delay();
|
|
common_scripts\utility::flag_set(var_01,var_02);
|
|
}
|
|
}
|
|
|
|
//Function Number: 8
|
|
trigger_flag_clear(param_00)
|
|
{
|
|
var_01 = param_00 maps\_utility::get_trigger_flag();
|
|
if(!isdefined(level.flag[var_01]))
|
|
{
|
|
common_scripts\utility::flag_init(var_01);
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
param_00 waittill("trigger");
|
|
param_00 maps\_utility::script_delay();
|
|
common_scripts\utility::flag_clear(var_01);
|
|
}
|
|
}
|
|
|
|
//Function Number: 9
|
|
trigger_flag_on_cleared(param_00)
|
|
{
|
|
var_01 = param_00 maps\_utility::get_trigger_flag();
|
|
if(!isdefined(level.flag[var_01]))
|
|
{
|
|
common_scripts\utility::flag_init(var_01);
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
param_00 waittill("trigger");
|
|
wait(1);
|
|
if(param_00 found_toucher())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
break;
|
|
}
|
|
|
|
common_scripts\utility::flag_set(var_01);
|
|
}
|
|
|
|
//Function Number: 10
|
|
found_toucher()
|
|
{
|
|
var_00 = getaiarray("bad_guys");
|
|
for(var_01 = 0;var_01 < var_00.size;var_01++)
|
|
{
|
|
var_02 = var_00[var_01];
|
|
if(!isalive(var_02))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(var_02 istouching(self))
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
wait(0.1);
|
|
}
|
|
|
|
var_00 = getaiarray("bad_guys");
|
|
for(var_01 = 0;var_01 < var_00.size;var_01++)
|
|
{
|
|
var_02 = var_00[var_01];
|
|
if(var_02 istouching(self))
|
|
{
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 11
|
|
trigger_flag_set(param_00)
|
|
{
|
|
var_01 = param_00 maps\_utility::get_trigger_flag();
|
|
if(!isdefined(level.flag[var_01]))
|
|
{
|
|
common_scripts\utility::flag_init(var_01);
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
param_00 waittill("trigger",var_02);
|
|
param_00 maps\_utility::script_delay();
|
|
common_scripts\utility::flag_set(var_01,var_02);
|
|
}
|
|
}
|
|
|
|
//Function Number: 12
|
|
trigger_flag_set_coop(param_00)
|
|
{
|
|
var_01 = param_00 maps\_utility::get_trigger_flag();
|
|
if(!isdefined(level.flag[var_01]))
|
|
{
|
|
common_scripts\utility::flag_init(var_01);
|
|
}
|
|
|
|
var_02 = [];
|
|
for(;;)
|
|
{
|
|
param_00 waittill("trigger",var_03);
|
|
if(!isplayer(var_03))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_04 = [];
|
|
var_04[var_04.size] = var_03;
|
|
var_02 = maps\_utility::array_merge(var_02,var_04);
|
|
if(var_02.size == level.players.size)
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
|
|
param_00 maps\_utility::script_delay();
|
|
common_scripts\utility::flag_set(var_01);
|
|
}
|
|
|
|
//Function Number: 13
|
|
trigger_flag_set_specialops(param_00)
|
|
{
|
|
var_01 = param_00 maps\_utility::get_trigger_flag();
|
|
if(!isdefined(level.flag[var_01]))
|
|
{
|
|
common_scripts\utility::flag_init(var_01);
|
|
}
|
|
|
|
param_00.player_touched_arr = level.players;
|
|
param_00 thread trigger_flag_set_specialops_clear(var_01);
|
|
for(;;)
|
|
{
|
|
param_00 waittill("trigger",var_02);
|
|
param_00.player_touched_arr = common_scripts\utility::array_remove(param_00.player_touched_arr,var_02);
|
|
if(param_00.player_touched_arr.size)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
param_00 maps\_utility::script_delay();
|
|
common_scripts\utility::flag_set(var_01,var_02);
|
|
}
|
|
}
|
|
|
|
//Function Number: 14
|
|
trigger_flag_set_specialops_clear(param_00)
|
|
{
|
|
for(;;)
|
|
{
|
|
level waittill(param_00);
|
|
if(common_scripts\utility::flag(param_00))
|
|
{
|
|
self.player_touched_arr = [];
|
|
continue;
|
|
}
|
|
|
|
self.player_touched_arr = level.players;
|
|
}
|
|
}
|
|
|
|
//Function Number: 15
|
|
trigger_friendly_respawn(param_00)
|
|
{
|
|
param_00 endon("death");
|
|
var_01 = getent(param_00.target,"targetname");
|
|
var_02 = undefined;
|
|
if(isdefined(var_01))
|
|
{
|
|
var_02 = var_01.origin;
|
|
var_01 delete();
|
|
}
|
|
else
|
|
{
|
|
var_01 = common_scripts\utility::getstruct(param_00.target,"targetname");
|
|
var_02 = var_01.origin;
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
param_00 waittill("trigger");
|
|
maps\_colors::colornode_set_respawn_point(var_02,"allies");
|
|
common_scripts\utility::flag_set("respawn_friendlies");
|
|
wait(0.5);
|
|
}
|
|
}
|
|
|
|
//Function Number: 16
|
|
trigger_friendly_stop_respawn(param_00)
|
|
{
|
|
for(;;)
|
|
{
|
|
param_00 waittill("trigger");
|
|
common_scripts\utility::flag_clear("respawn_friendlies");
|
|
}
|
|
}
|
|
|
|
//Function Number: 17
|
|
trigger_enemy_respawn(param_00)
|
|
{
|
|
param_00 endon("death");
|
|
var_01 = getent(param_00.target,"targetname");
|
|
var_02 = undefined;
|
|
if(isdefined(var_01))
|
|
{
|
|
var_02 = var_01.origin;
|
|
var_01 delete();
|
|
}
|
|
else
|
|
{
|
|
var_01 = common_scripts\utility::getstruct(param_00.target,"targetname");
|
|
var_02 = var_01.origin;
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
param_00 waittill("trigger");
|
|
maps\_colors::colornode_set_respawn_point(var_02,"axis");
|
|
common_scripts\utility::flag_set("respawn_enemies");
|
|
wait(0.5);
|
|
}
|
|
}
|
|
|
|
//Function Number: 18
|
|
trigger_enemy_stop_respawn(param_00)
|
|
{
|
|
for(;;)
|
|
{
|
|
param_00 waittill("trigger");
|
|
common_scripts\utility::flag_clear("respawn_enemies");
|
|
}
|
|
}
|
|
|
|
//Function Number: 19
|
|
trigger_flag_set_touching(param_00)
|
|
{
|
|
var_01 = param_00 maps\_utility::get_trigger_flag();
|
|
if(!isdefined(level.flag[var_01]))
|
|
{
|
|
common_scripts\utility::flag_init(var_01);
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
param_00 waittill("trigger",var_02);
|
|
param_00 maps\_utility::script_delay();
|
|
if(isalive(var_02) && var_02 istouching(param_00) && isdefined(param_00))
|
|
{
|
|
common_scripts\utility::flag_set(var_01);
|
|
}
|
|
|
|
while(isalive(var_02) && var_02 istouching(param_00) && isdefined(param_00))
|
|
{
|
|
wait(0.25);
|
|
}
|
|
|
|
common_scripts\utility::flag_clear(var_01);
|
|
}
|
|
}
|
|
|
|
//Function Number: 20
|
|
trigger_group()
|
|
{
|
|
thread trigger_group_remove();
|
|
level endon("trigger_group_" + self.script_trigger_group);
|
|
self waittill("trigger");
|
|
level notify("trigger_group_" + self.script_trigger_group,self);
|
|
}
|
|
|
|
//Function Number: 21
|
|
trigger_group_remove()
|
|
{
|
|
level waittill("trigger_group_" + self.script_trigger_group,var_00);
|
|
if(self != var_00)
|
|
{
|
|
self delete();
|
|
}
|
|
}
|
|
|
|
//Function Number: 22
|
|
trigger_nobloodpool(param_00)
|
|
{
|
|
for(;;)
|
|
{
|
|
param_00 waittill("trigger",var_01);
|
|
if(!isalive(var_01))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_01.skipbloodpool = 1;
|
|
var_01 thread set_wait_then_clear_skipbloodpool();
|
|
}
|
|
}
|
|
|
|
//Function Number: 23
|
|
set_wait_then_clear_skipbloodpool()
|
|
{
|
|
self notify("notify_wait_then_clear_skipBloodPool");
|
|
self endon("notify_wait_then_clear_skipBloodPool");
|
|
self endon("death");
|
|
wait(2);
|
|
self.skipbloodpool = undefined;
|
|
}
|
|
|
|
//Function Number: 24
|
|
trigger_physics(param_00)
|
|
{
|
|
var_01 = [];
|
|
var_02 = common_scripts\utility::getstructarray(param_00.target,"targetname");
|
|
var_03 = getentarray(param_00.target,"targetname");
|
|
foreach(var_05 in var_03)
|
|
{
|
|
var_06 = spawnstruct();
|
|
var_06.origin = var_05.origin;
|
|
var_06.script_parameters = var_05.script_parameters;
|
|
var_06.script_damage = var_05.script_damage;
|
|
var_06.radius = var_05.radius;
|
|
var_02[var_02.size] = var_06;
|
|
var_05 delete();
|
|
}
|
|
|
|
param_00.org = var_02[0].origin;
|
|
param_00 waittill("trigger");
|
|
param_00 maps\_utility::script_delay();
|
|
foreach(var_06 in var_02)
|
|
{
|
|
var_09 = var_06.radius;
|
|
var_0A = var_06.script_parameters;
|
|
var_0B = var_06.script_damage;
|
|
if(!isdefined(var_09))
|
|
{
|
|
var_09 = 350;
|
|
}
|
|
|
|
if(!isdefined(var_0A))
|
|
{
|
|
var_0A = 0.25;
|
|
}
|
|
|
|
setdvar("tempdvar",var_0A);
|
|
var_0A = getdvarfloat("tempdvar");
|
|
if(isdefined(var_0B))
|
|
{
|
|
radiusdamage(var_06.origin,var_09,var_0B,var_0B * 0.5);
|
|
}
|
|
|
|
physicsexplosionsphere(var_06.origin,var_09,var_09 * 0.5,var_0A);
|
|
}
|
|
}
|
|
|
|
//Function Number: 25
|
|
trigger_playerseek(param_00)
|
|
{
|
|
var_01 = param_00.script_triggered_playerseek;
|
|
param_00 waittill("trigger");
|
|
var_02 = getaiarray();
|
|
for(var_03 = 0;var_03 < var_02.size;var_03++)
|
|
{
|
|
if(!isalive(var_02[var_03]))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(var_02[var_03].script_triggered_playerseek) && var_02[var_03].script_triggered_playerseek == var_01)
|
|
{
|
|
var_02[var_03].goalradius = 800;
|
|
var_02[var_03] setgoalentity(level.player);
|
|
level thread maps\_spawner::delayed_player_seek_think(var_02[var_03]);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 26
|
|
trigger_script_flag_false(param_00)
|
|
{
|
|
var_01 = common_scripts\utility::create_flags_and_return_tokens(param_00.script_flag_false);
|
|
param_00 add_tokens_to_trigger_flags(var_01);
|
|
param_00 common_scripts\utility::update_trigger_based_on_flags();
|
|
}
|
|
|
|
//Function Number: 27
|
|
trigger_script_flag_true(param_00)
|
|
{
|
|
var_01 = common_scripts\utility::create_flags_and_return_tokens(param_00.script_flag_true);
|
|
param_00 add_tokens_to_trigger_flags(var_01);
|
|
param_00 common_scripts\utility::update_trigger_based_on_flags();
|
|
}
|
|
|
|
//Function Number: 28
|
|
add_tokens_to_trigger_flags(param_00)
|
|
{
|
|
for(var_01 = 0;var_01 < param_00.size;var_01++)
|
|
{
|
|
var_02 = param_00[var_01];
|
|
if(!isdefined(level.trigger_flags[var_02]))
|
|
{
|
|
level.trigger_flags[var_02] = [];
|
|
}
|
|
|
|
level.trigger_flags[var_02][level.trigger_flags[var_02].size] = self;
|
|
}
|
|
}
|
|
|
|
//Function Number: 29
|
|
trigger_spawngroup(param_00)
|
|
{
|
|
waittillframeend;
|
|
var_01 = param_00.script_spawngroup;
|
|
if(!isdefined(level.spawn_groups[var_01]))
|
|
{
|
|
return;
|
|
}
|
|
|
|
param_00 waittill("trigger");
|
|
var_02 = common_scripts\utility::random(level.spawn_groups[var_01]);
|
|
foreach(var_04 in var_02)
|
|
{
|
|
var_04 maps\_utility::spawn_ai();
|
|
}
|
|
}
|
|
|
|
//Function Number: 30
|
|
trigger_sun_off(param_00)
|
|
{
|
|
for(;;)
|
|
{
|
|
param_00 waittill("trigger",var_01);
|
|
if(getdvarint("sm_sunenable") == 0)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
setsaveddvar("sm_sunenable",0);
|
|
}
|
|
}
|
|
|
|
//Function Number: 31
|
|
trigger_sun_on(param_00)
|
|
{
|
|
for(;;)
|
|
{
|
|
param_00 waittill("trigger",var_01);
|
|
if(getdvarint("sm_sunenable") == 1)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
setsaveddvar("sm_sunenable",1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 32
|
|
trigger_vehicle_getin_spawn(param_00)
|
|
{
|
|
var_01 = getentarray(param_00.target,"targetname");
|
|
foreach(var_03 in var_01)
|
|
{
|
|
var_04 = getentarray(var_03.target,"targetname");
|
|
foreach(var_06 in var_04)
|
|
{
|
|
if(!issubstr(var_06.code_classname,"actor"))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!var_06.spawnflags & 1)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_06.dont_auto_ride = 1;
|
|
}
|
|
}
|
|
|
|
param_00 waittill("trigger");
|
|
var_01 = getentarray(param_00.target,"targetname");
|
|
common_scripts\utility::array_thread(var_01,maps\_vehicle_free_drive::spawn_vehicle_and_attach_to_free_path(undefined,0,1));
|
|
}
|
|
|
|
//Function Number: 33
|
|
trigger_vehicle_spline_spawn(param_00)
|
|
{
|
|
param_00 waittill("trigger");
|
|
var_01 = getentarray(param_00.target,"targetname");
|
|
foreach(var_03 in var_01)
|
|
{
|
|
var_03 thread maps\_vehicle_free_drive::spawn_vehicle_and_attach_to_free_path(70);
|
|
wait(0.05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 34
|
|
get_trigger_targs()
|
|
{
|
|
var_00 = [];
|
|
var_01 = undefined;
|
|
if(isdefined(self.target))
|
|
{
|
|
var_02 = getentarray(self.target,"targetname");
|
|
var_03 = [];
|
|
foreach(var_05 in var_02)
|
|
{
|
|
if(var_05.classname == "script_origin")
|
|
{
|
|
var_03[var_03.size] = var_05;
|
|
}
|
|
|
|
if(issubstr(var_05.classname,"trigger"))
|
|
{
|
|
var_00[var_00.size] = var_05;
|
|
}
|
|
}
|
|
|
|
var_02 = common_scripts\utility::getstructarray(self.target,"targetname");
|
|
foreach(var_05 in var_02)
|
|
{
|
|
var_03[var_03.size] = var_05;
|
|
}
|
|
|
|
if(var_03.size == 1)
|
|
{
|
|
var_09 = var_03[0];
|
|
var_01 = var_09.origin;
|
|
if(isdefined(var_09.code_classname))
|
|
{
|
|
var_09 delete();
|
|
}
|
|
}
|
|
}
|
|
|
|
var_0A = [];
|
|
var_0A["triggers"] = var_00;
|
|
var_0A["target_origin"] = var_01;
|
|
return var_0A;
|
|
}
|
|
|
|
//Function Number: 35
|
|
trigger_lookat(param_00)
|
|
{
|
|
trigger_lookat_think(param_00,1);
|
|
}
|
|
|
|
//Function Number: 36
|
|
trigger_looking(param_00)
|
|
{
|
|
trigger_lookat_think(param_00,0);
|
|
}
|
|
|
|
//Function Number: 37
|
|
trigger_lookat_think(param_00,param_01)
|
|
{
|
|
var_02 = 0.78;
|
|
if(isdefined(param_00.script_dot))
|
|
{
|
|
var_02 = param_00.script_dot;
|
|
}
|
|
|
|
var_03 = param_00 get_trigger_targs();
|
|
var_04 = var_03["triggers"];
|
|
var_05 = var_03["target_origin"];
|
|
var_06 = isdefined(param_00.script_flag) || isdefined(param_00.script_noteworthy);
|
|
var_07 = undefined;
|
|
if(var_06)
|
|
{
|
|
var_07 = param_00 maps\_utility::get_trigger_flag();
|
|
if(!isdefined(level.flag[var_07]))
|
|
{
|
|
common_scripts\utility::flag_init(var_07);
|
|
}
|
|
}
|
|
else if(!var_04.size)
|
|
{
|
|
}
|
|
|
|
if(param_01 && var_06)
|
|
{
|
|
level endon(var_07);
|
|
}
|
|
|
|
param_00 endon("death");
|
|
var_08 = 0;
|
|
if(isdefined(param_00.script_parameters))
|
|
{
|
|
var_08 = !issubstr("no_sight",param_00.script_parameters);
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
if(var_06)
|
|
{
|
|
common_scripts\utility::flag_clear(var_07);
|
|
}
|
|
|
|
param_00 waittill("trigger",var_09);
|
|
var_0A = [];
|
|
while(var_09 istouching(param_00))
|
|
{
|
|
if(var_08 && !sighttracepassed(var_09 geteye(),var_05,0,undefined))
|
|
{
|
|
if(var_06)
|
|
{
|
|
common_scripts\utility::flag_clear(var_07);
|
|
}
|
|
|
|
wait(0.5);
|
|
continue;
|
|
}
|
|
|
|
var_0B = vectornormalize(var_05 - var_09.origin);
|
|
var_0C = var_09 getplayerangles();
|
|
var_0D = anglestoforward(var_0C);
|
|
var_0E = vectordot(var_0D,var_0B);
|
|
if(var_0E >= var_02)
|
|
{
|
|
common_scripts\utility::array_thread(var_04,::maps\_utility::send_notify,"trigger");
|
|
if(var_06)
|
|
{
|
|
common_scripts\utility::flag_set(var_07,var_09);
|
|
}
|
|
|
|
if(param_01)
|
|
{
|
|
return;
|
|
}
|
|
|
|
wait(2);
|
|
}
|
|
else if(var_06)
|
|
{
|
|
common_scripts\utility::flag_clear(var_07);
|
|
}
|
|
|
|
if(var_08)
|
|
{
|
|
wait(0.5);
|
|
continue;
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 38
|
|
trigger_cansee(param_00)
|
|
{
|
|
var_01 = [];
|
|
var_02 = undefined;
|
|
var_03 = param_00 get_trigger_targs();
|
|
var_01 = var_03["triggers"];
|
|
var_02 = var_03["target_origin"];
|
|
var_04 = isdefined(param_00.script_flag) || isdefined(param_00.script_noteworthy);
|
|
var_05 = undefined;
|
|
if(var_04)
|
|
{
|
|
var_05 = param_00 maps\_utility::get_trigger_flag();
|
|
if(!isdefined(level.flag[var_05]))
|
|
{
|
|
common_scripts\utility::flag_init(var_05);
|
|
}
|
|
}
|
|
else if(!var_01.size)
|
|
{
|
|
}
|
|
|
|
param_00 endon("death");
|
|
var_06 = 12;
|
|
var_07 = [];
|
|
var_07[var_07.size] = (0,0,0);
|
|
var_07[var_07.size] = (var_06,0,0);
|
|
var_07[var_07.size] = (var_06 * -1,0,0);
|
|
var_07[var_07.size] = (0,var_06,0);
|
|
var_07[var_07.size] = (0,var_06 * -1,0);
|
|
var_07[var_07.size] = (0,0,var_06);
|
|
for(;;)
|
|
{
|
|
if(var_04)
|
|
{
|
|
common_scripts\utility::flag_clear(var_05);
|
|
}
|
|
|
|
param_00 waittill("trigger",var_08);
|
|
while(level.player istouching(param_00))
|
|
{
|
|
if(!var_08 cantraceto(var_02,var_07))
|
|
{
|
|
if(var_04)
|
|
{
|
|
common_scripts\utility::flag_clear(var_05);
|
|
}
|
|
|
|
wait(0.1);
|
|
continue;
|
|
}
|
|
|
|
if(var_04)
|
|
{
|
|
common_scripts\utility::flag_set(var_05);
|
|
}
|
|
|
|
common_scripts\utility::array_thread(var_01,::maps\_utility::send_notify,"trigger");
|
|
wait(0.5);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 39
|
|
cantraceto(param_00,param_01)
|
|
{
|
|
for(var_02 = 0;var_02 < param_01.size;var_02++)
|
|
{
|
|
if(sighttracepassed(self geteye(),param_00 + param_01[var_02],1,self))
|
|
{
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 40
|
|
trigger_unlock(param_00)
|
|
{
|
|
var_01 = "not_set";
|
|
if(isdefined(param_00.script_noteworthy))
|
|
{
|
|
var_01 = param_00.script_noteworthy;
|
|
}
|
|
|
|
var_02 = getentarray(param_00.target,"targetname");
|
|
param_00 thread trigger_unlock_death(param_00.target);
|
|
for(;;)
|
|
{
|
|
common_scripts\utility::array_thread(var_02,::common_scripts\utility::trigger_off);
|
|
param_00 waittill("trigger");
|
|
common_scripts\utility::array_thread(var_02,::common_scripts\utility::trigger_on);
|
|
wait_for_an_unlocked_trigger(var_02,var_01);
|
|
maps\_utility::array_notify(var_02,"relock");
|
|
}
|
|
}
|
|
|
|
//Function Number: 41
|
|
trigger_unlock_death(param_00)
|
|
{
|
|
self waittill("death");
|
|
var_01 = getentarray(param_00,"targetname");
|
|
common_scripts\utility::array_thread(var_01,::common_scripts\utility::trigger_off);
|
|
}
|
|
|
|
//Function Number: 42
|
|
wait_for_an_unlocked_trigger(param_00,param_01)
|
|
{
|
|
level endon("unlocked_trigger_hit" + param_01);
|
|
var_02 = spawnstruct();
|
|
for(var_03 = 0;var_03 < param_00.size;var_03++)
|
|
{
|
|
param_00[var_03] thread report_trigger(var_02,param_01);
|
|
}
|
|
|
|
var_02 waittill("trigger");
|
|
level notify("unlocked_trigger_hit" + param_01);
|
|
}
|
|
|
|
//Function Number: 43
|
|
report_trigger(param_00,param_01)
|
|
{
|
|
self endon("relock");
|
|
level endon("unlocked_trigger_hit" + param_01);
|
|
self waittill("trigger");
|
|
param_00 notify("trigger");
|
|
}
|
|
|
|
//Function Number: 44
|
|
trigger_battlechatter(param_00)
|
|
{
|
|
var_01 = undefined;
|
|
if(isdefined(param_00.target))
|
|
{
|
|
var_02 = getentarray(param_00.target,"targetname");
|
|
if(issubstr(var_02[0].classname,"trigger"))
|
|
{
|
|
var_01 = var_02[0];
|
|
}
|
|
}
|
|
|
|
if(isdefined(var_01))
|
|
{
|
|
var_01 waittill("trigger",var_03);
|
|
}
|
|
else
|
|
{
|
|
var_01 waittill("trigger",var_03);
|
|
}
|
|
|
|
var_04 = undefined;
|
|
if(isdefined(var_01))
|
|
{
|
|
if(var_03.team != level.player.team && level.player istouching(param_00))
|
|
{
|
|
var_04 = level.player animscripts\battlechatter::getclosestfriendlyspeaker("custom");
|
|
}
|
|
else if(var_03.team == level.player.team)
|
|
{
|
|
var_05 = "axis";
|
|
if(level.player.team == "axis")
|
|
{
|
|
var_05 = "allies";
|
|
}
|
|
|
|
var_06 = animscripts\battlechatter::getspeakers("custom",var_05);
|
|
var_06 = common_scripts\utility::get_array_of_farthest(level.player.origin,var_06);
|
|
foreach(var_08 in var_06)
|
|
{
|
|
if(var_08 istouching(param_00))
|
|
{
|
|
var_04 = var_08;
|
|
if(battlechatter_dist_check(var_08.origin))
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
else if(isplayer(var_03))
|
|
{
|
|
var_04 = var_03 animscripts\battlechatter::getclosestfriendlyspeaker("custom");
|
|
}
|
|
else
|
|
{
|
|
var_04 = var_03;
|
|
}
|
|
|
|
if(!isdefined(var_04))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(battlechatter_dist_check())
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_0A = var_04 maps\_utility::custom_battlechatter(param_00.script_bctrigger);
|
|
if(!var_0A)
|
|
{
|
|
level maps\_utility::delaythread(0.25,::trigger_battlechatter,param_00);
|
|
return;
|
|
}
|
|
|
|
param_00 notify("custom_battlechatter_done");
|
|
}
|
|
|
|
//Function Number: 45
|
|
battlechatter_dist_check(param_00)
|
|
{
|
|
return distancesquared(param_00,level.player getorigin()) <= 262144;
|
|
}
|
|
|
|
//Function Number: 46
|
|
trigger_vehicle_spawn(param_00)
|
|
{
|
|
param_00 waittill("trigger");
|
|
var_01 = getentarray(param_00.target,"targetname");
|
|
foreach(var_03 in var_01)
|
|
{
|
|
var_03 thread maps\_vehicle::spawn_vehicle_and_gopath();
|
|
wait(0.05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 47
|
|
trigger_dooropen(param_00)
|
|
{
|
|
param_00 waittill("trigger");
|
|
var_01 = getentarray(param_00.target,"targetname");
|
|
var_02 = [];
|
|
var_02["left_door"] = -170;
|
|
var_02["right_door"] = 170;
|
|
foreach(var_04 in var_01)
|
|
{
|
|
var_05 = var_02[var_04.script_noteworthy];
|
|
var_04 connectpaths();
|
|
var_04 rotateyaw(var_05,1,0,0.5);
|
|
}
|
|
}
|
|
|
|
//Function Number: 48
|
|
trigger_glass_break(param_00)
|
|
{
|
|
var_01 = getglassarray(param_00.target);
|
|
if(!isdefined(var_01) || var_01.size == 0)
|
|
{
|
|
return;
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
level waittill("glass_break",var_02);
|
|
if(var_02 istouching(param_00))
|
|
{
|
|
var_03 = var_02.origin;
|
|
wait(0.05);
|
|
var_04 = var_02.origin;
|
|
var_05 = undefined;
|
|
if(var_03 != var_04)
|
|
{
|
|
var_05 = var_04 - var_03;
|
|
}
|
|
|
|
if(isdefined(var_05))
|
|
{
|
|
foreach(var_07 in var_01)
|
|
{
|
|
destroyglass(var_07,var_05);
|
|
}
|
|
|
|
break;
|
|
}
|
|
else
|
|
{
|
|
foreach(var_07 in var_01)
|
|
{
|
|
destroyglass(var_07);
|
|
}
|
|
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
param_00 delete();
|
|
}
|
|
|
|
//Function Number: 49
|
|
trigger_delete_link_chain(param_00)
|
|
{
|
|
param_00 waittill("trigger");
|
|
var_01 = param_00 get_script_linkto_targets();
|
|
common_scripts\utility::array_thread(var_01,::delete_links_then_self);
|
|
}
|
|
|
|
//Function Number: 50
|
|
get_script_linkto_targets()
|
|
{
|
|
var_00 = [];
|
|
if(!isdefined(self.script_linkto))
|
|
{
|
|
return var_00;
|
|
}
|
|
|
|
var_01 = strtok(self.script_linkto," ");
|
|
for(var_02 = 0;var_02 < var_01.size;var_02++)
|
|
{
|
|
var_03 = var_01[var_02];
|
|
var_04 = getent(var_03,"script_linkname");
|
|
if(isdefined(var_04))
|
|
{
|
|
var_00[var_00.size] = var_04;
|
|
}
|
|
}
|
|
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 51
|
|
delete_links_then_self()
|
|
{
|
|
var_00 = get_script_linkto_targets();
|
|
common_scripts\utility::array_thread(var_00,::delete_links_then_self);
|
|
self delete();
|
|
}
|
|
|
|
//Function Number: 52
|
|
trigger_throw_grenade_at_player(param_00)
|
|
{
|
|
param_00 endon("death");
|
|
param_00 waittill("trigger");
|
|
maps\_utility::throwgrenadeatplayerasap();
|
|
}
|
|
|
|
//Function Number: 53
|
|
trigger_hint(param_00)
|
|
{
|
|
if(!isdefined(level.displayed_hints))
|
|
{
|
|
level.displayed_hints = [];
|
|
}
|
|
|
|
waittillframeend;
|
|
var_01 = param_00.script_hint;
|
|
param_00 waittill("trigger",var_02);
|
|
if(isdefined(level.displayed_hints[var_01]))
|
|
{
|
|
return;
|
|
}
|
|
|
|
level.displayed_hints[var_01] = 1;
|
|
var_02 maps\_utility::display_hint(var_01);
|
|
}
|
|
|
|
//Function Number: 54
|
|
trigger_delete_on_touch(param_00)
|
|
{
|
|
for(;;)
|
|
{
|
|
param_00 waittill("trigger",var_01);
|
|
if(isdefined(var_01))
|
|
{
|
|
var_01 delete();
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 55
|
|
trigger_turns_off(param_00)
|
|
{
|
|
param_00 waittill("trigger");
|
|
param_00 common_scripts\utility::trigger_off();
|
|
if(!isdefined(param_00.script_linkto))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_01 = strtok(param_00.script_linkto," ");
|
|
for(var_02 = 0;var_02 < var_01.size;var_02++)
|
|
{
|
|
common_scripts\utility::array_thread(getentarray(var_01[var_02],"script_linkname"),::common_scripts\utility::trigger_off);
|
|
}
|
|
}
|
|
|
|
//Function Number: 56
|
|
trigger_ignore(param_00)
|
|
{
|
|
thread trigger_runs_function_on_touch(param_00,::maps\_utility::set_ignoreme,::maps\_utility::get_ignoreme);
|
|
}
|
|
|
|
//Function Number: 57
|
|
trigger_pacifist(param_00)
|
|
{
|
|
thread trigger_runs_function_on_touch(param_00,::maps\_utility::set_pacifist,::maps\_utility::get_pacifist);
|
|
}
|
|
|
|
//Function Number: 58
|
|
trigger_runs_function_on_touch(param_00,param_01,param_02)
|
|
{
|
|
for(;;)
|
|
{
|
|
param_00 waittill("trigger",var_03);
|
|
if(!isalive(var_03))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(var_03 [[ param_02 ]]())
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_03 thread touched_trigger_runs_func(param_00,param_01);
|
|
}
|
|
}
|
|
|
|
//Function Number: 59
|
|
touched_trigger_runs_func(param_00,param_01)
|
|
{
|
|
self endon("death");
|
|
self.ignoreme = 1;
|
|
[[ param_01 ]](1);
|
|
self.ignoretriggers = 1;
|
|
wait(1);
|
|
self.ignoretriggers = 0;
|
|
while(self istouching(param_00))
|
|
{
|
|
wait(1);
|
|
}
|
|
|
|
[[ param_01 ]](0);
|
|
}
|
|
|
|
//Function Number: 60
|
|
trigger_radio(param_00)
|
|
{
|
|
param_00 waittill("trigger");
|
|
maps\_utility::radio_dialogue(param_00.script_noteworthy);
|
|
}
|
|
|
|
//Function Number: 61
|
|
trigger_flag_set_player(param_00)
|
|
{
|
|
if(maps\_utility::is_coop())
|
|
{
|
|
thread trigger_flag_set_coop(param_00);
|
|
return;
|
|
}
|
|
|
|
var_01 = param_00 maps\_utility::get_trigger_flag();
|
|
if(!isdefined(level.flag[var_01]))
|
|
{
|
|
common_scripts\utility::flag_init(var_01);
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
param_00 waittill("trigger",var_02);
|
|
if(!isplayer(var_02))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
param_00 maps\_utility::script_delay();
|
|
common_scripts\utility::flag_set(var_01);
|
|
}
|
|
}
|
|
|
|
//Function Number: 62
|
|
trigger_multiple_sunflare(param_00)
|
|
{
|
|
for(;;)
|
|
{
|
|
param_00 waittill("trigger",var_01);
|
|
var_01 maps\_art::sunflare_changes(param_00.script_visionset,param_00.script_delay);
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
//Function Number: 63
|
|
trigger_multiple_visionset(param_00)
|
|
{
|
|
var_01 = 0;
|
|
var_02 = undefined;
|
|
var_03 = undefined;
|
|
var_04 = undefined;
|
|
if(isdefined(param_00.script_visionset_start) && isdefined(param_00.script_visionset_end))
|
|
{
|
|
var_01 = 1;
|
|
var_03 = getent(param_00.target,"targetname");
|
|
if(!isdefined(var_03))
|
|
{
|
|
var_03 = common_scripts\utility::getstruct(param_00.target,"targetname");
|
|
}
|
|
|
|
var_04 = getent(var_03.target,"targetname");
|
|
if(!isdefined(var_04))
|
|
{
|
|
var_04 = common_scripts\utility::getstruct(var_03.target,"targetname");
|
|
}
|
|
|
|
var_03 = var_03.origin;
|
|
var_04 = var_04.origin;
|
|
var_02 = distance(var_03,var_04);
|
|
param_00 init_visionset_progress_trigger();
|
|
}
|
|
|
|
var_05 = -1;
|
|
for(;;)
|
|
{
|
|
param_00 waittill("trigger",var_06);
|
|
if(isplayer(var_06))
|
|
{
|
|
if(var_01)
|
|
{
|
|
var_07 = 0;
|
|
while(var_06 istouching(param_00))
|
|
{
|
|
var_07 = maps\_utility::get_progress(var_03,var_04,var_06.origin,var_02);
|
|
var_07 = clamp(var_07,0,1);
|
|
if(var_07 != var_05)
|
|
{
|
|
var_05 = var_07;
|
|
var_06 vision_set_fog_progress(param_00,var_07);
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
|
|
if(var_07 < 0.5)
|
|
{
|
|
var_06 maps\_utility::vision_set_fog_changes(param_00.script_visionset_start,param_00.script_delay);
|
|
}
|
|
else
|
|
{
|
|
var_06 maps\_utility::vision_set_fog_changes(param_00.script_visionset_end,param_00.script_delay);
|
|
}
|
|
|
|
continue;
|
|
}
|
|
|
|
var_06 maps\_utility::vision_set_fog_changes(param_00.script_visionset,param_00.script_delay);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 64
|
|
init_visionset_progress_trigger()
|
|
{
|
|
if(!isdefined(self.script_delay))
|
|
{
|
|
self.script_delay = 2;
|
|
}
|
|
|
|
var_00 = maps\_utility::get_vision_set_fog(self.script_visionset_start);
|
|
var_01 = maps\_utility::get_vision_set_fog(self.script_visionset_end);
|
|
if(!isdefined(var_00) || !isdefined(var_01))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_02 = spawnstruct();
|
|
var_02.startdist = var_01.startdist - var_00.startdist;
|
|
var_02.halfwaydist = var_01.halfwaydist - var_00.halfwaydist;
|
|
var_02.red = var_01.red - var_00.red;
|
|
var_02.blue = var_01.blue - var_00.blue;
|
|
var_02.green = var_01.green - var_00.green;
|
|
var_02.hdrcolorintensity = var_01.hdrcolorintensity - var_00.hdrcolorintensity;
|
|
var_02.maxopacity = var_01.maxopacity - var_00.maxopacity;
|
|
var_02.sunfogenabled = isdefined(var_00.sunfogenabled) || isdefined(var_01.sunfogenabled);
|
|
var_02.hdrsuncolorintensity = var_01.hdrsuncolorintensity - var_00.hdrsuncolorintensity;
|
|
var_02.skyfogintensity = var_01.skyfogintensity - var_00.skyfogintensity;
|
|
var_02.skyfogminangle = var_01.skyfogminangle - var_00.skyfogminangle;
|
|
var_02.skyfogmaxangle = var_01.skyfogmaxangle - var_00.skyfogmaxangle;
|
|
var_03 = 0;
|
|
if(isdefined(var_00.sunred))
|
|
{
|
|
var_03 = var_00.sunred;
|
|
}
|
|
|
|
var_04 = 0;
|
|
if(isdefined(var_01.sunred))
|
|
{
|
|
var_04 = var_01.sunred;
|
|
}
|
|
|
|
var_02.sunred_start = var_03;
|
|
var_02.sunred = var_04 - var_03;
|
|
var_05 = 0;
|
|
if(isdefined(var_00.sungreen))
|
|
{
|
|
var_05 = var_00.sungreen;
|
|
}
|
|
|
|
var_06 = 0;
|
|
if(isdefined(var_01.sungreen))
|
|
{
|
|
var_06 = var_01.sungreen;
|
|
}
|
|
|
|
var_02.sungreen_start = var_05;
|
|
var_02.sungreen = var_06 - var_05;
|
|
var_07 = 0;
|
|
if(isdefined(var_00.sunblue))
|
|
{
|
|
var_07 = var_00.sunblue;
|
|
}
|
|
|
|
var_08 = 0;
|
|
if(isdefined(var_01.sunblue))
|
|
{
|
|
var_08 = var_01.sunblue;
|
|
}
|
|
|
|
var_02.sunblue_start = var_07;
|
|
var_02.sunblue = var_08 - var_07;
|
|
var_09 = (0,0,0);
|
|
if(isdefined(var_00.sundir))
|
|
{
|
|
var_09 = var_00.sundir;
|
|
}
|
|
|
|
var_0A = (0,0,0);
|
|
if(isdefined(var_01.sundir))
|
|
{
|
|
var_0A = var_01.sundir;
|
|
}
|
|
|
|
var_02.sundir_start = var_09;
|
|
var_02.sundir = var_0A - var_09;
|
|
var_0B = 0;
|
|
if(isdefined(var_00.sunbeginfadeangle))
|
|
{
|
|
var_0B = var_00.sunbeginfadeangle;
|
|
}
|
|
|
|
var_0C = 0;
|
|
if(isdefined(var_01.sunbeginfadeangle))
|
|
{
|
|
var_0C = var_01.sunbeginfadeangle;
|
|
}
|
|
|
|
var_02.sunbeginfadeangle_start = var_0B;
|
|
var_02.sunbeginfadeangle = var_0C - var_0B;
|
|
var_0D = 0;
|
|
if(isdefined(var_00.sunendfadeangle))
|
|
{
|
|
var_0D = var_00.sunendfadeangle;
|
|
}
|
|
|
|
var_0E = 0;
|
|
if(isdefined(var_01.sunendfadeangle))
|
|
{
|
|
var_0E = var_01.sunendfadeangle;
|
|
}
|
|
|
|
var_02.sunendfadeangle_start = var_0D;
|
|
var_02.sunendfadeangle = var_0E - var_0D;
|
|
var_0F = 0;
|
|
if(isdefined(var_00.normalfogscale))
|
|
{
|
|
var_0F = var_00.normalfogscale;
|
|
}
|
|
|
|
var_10 = 0;
|
|
if(isdefined(var_01.normalfogscale))
|
|
{
|
|
var_10 = var_01.normalfogscale;
|
|
}
|
|
|
|
var_02.normalfogscale_start = var_0F;
|
|
var_02.normalfogscale = var_10 - var_0F;
|
|
self.visionset_diff = var_02;
|
|
}
|
|
|
|
//Function Number: 65
|
|
vision_set_fog_progress(param_00,param_01)
|
|
{
|
|
maps\_utility::init_self_visionset();
|
|
if(param_01 < 0.5)
|
|
{
|
|
self.vision_set_transition_ent.vision_set = param_00.script_visionset_start;
|
|
}
|
|
else
|
|
{
|
|
self.vision_set_transition_ent.vision_set = param_00.script_visionset_end;
|
|
}
|
|
|
|
self.vision_set_transition_ent.time = 0;
|
|
if(param_00.script_visionset_start == param_00.script_visionset_end)
|
|
{
|
|
return;
|
|
}
|
|
|
|
self visionsetnakedforplayer_lerp(param_00.script_visionset_start,param_00.script_visionset_end,param_01);
|
|
var_02 = maps\_utility::get_vision_set_fog(param_00.script_visionset_start);
|
|
var_03 = maps\_utility::get_vision_set_fog(param_00.script_visionset_end);
|
|
var_04 = param_00.visionset_diff;
|
|
var_05 = spawnstruct();
|
|
var_05.startdist = var_02.startdist + var_04.startdist * param_01;
|
|
var_05.halfwaydist = var_02.halfwaydist + var_04.halfwaydist * param_01;
|
|
var_05.halfwaydist = max(1,var_05.halfwaydist);
|
|
var_05.red = var_02.red + var_04.red * param_01;
|
|
var_05.green = var_02.green + var_04.green * param_01;
|
|
var_05.blue = var_02.blue + var_04.blue * param_01;
|
|
var_05.hdrcolorintensity = var_02.hdrcolorintensity + var_04.hdrcolorintensity * param_01;
|
|
var_05.maxopacity = var_02.maxopacity + var_04.maxopacity * param_01;
|
|
var_05.skyfogintensity = var_02.skyfogintensity + var_04.skyfogintensity * param_01;
|
|
var_05.skyfogminangle = var_02.skyfogminangle + var_04.skyfogminangle * param_01;
|
|
var_05.skyfogmaxangle = var_02.skyfogmaxangle + var_04.skyfogmaxangle * param_01;
|
|
if(var_04.sunfogenabled)
|
|
{
|
|
var_05.sunfogenabled = 1;
|
|
var_05.sunred = var_04.sunred_start + var_04.sunred * param_01;
|
|
var_05.sungreen = var_04.sungreen_start + var_04.sungreen * param_01;
|
|
var_05.sunblue = var_04.sunblue_start + var_04.sunblue * param_01;
|
|
var_05.hdrsuncolorintensity = var_02.hdrsuncolorintensity + var_04.hdrsuncolorintensity * param_01;
|
|
var_05.sundir = var_04.sundir_start + var_04.sundir * param_01;
|
|
var_05.sunbeginfadeangle = var_04.sunbeginfadeangle_start + var_04.sunbeginfadeangle * param_01;
|
|
var_05.sunendfadeangle = var_04.sunendfadeangle_start + var_04.sunendfadeangle * param_01;
|
|
var_05.normalfogscale = var_04.normalfogscale_start + var_04.normalfogscale * param_01;
|
|
}
|
|
|
|
common_scripts\utility::set_fog_to_ent_values(var_05,0.05);
|
|
}
|
|
|
|
//Function Number: 66
|
|
trigger_fog(param_00)
|
|
{
|
|
waittillframeend;
|
|
var_01 = param_00.script_fogset_start;
|
|
var_02 = param_00.script_fogset_end;
|
|
param_00.sunfog_enabled = 0;
|
|
if(isdefined(var_01) && isdefined(var_02))
|
|
{
|
|
var_03 = maps\_utility::get_fog(var_01);
|
|
var_04 = maps\_utility::get_fog(var_02);
|
|
param_00.sunfog_enabled = isdefined(var_03.sunred) || isdefined(var_04.sunred);
|
|
param_00.start_neardist = var_03.startdist;
|
|
param_00.start_fardist = var_03.halfwaydist;
|
|
param_00.start_color = (var_03.red,var_03.green,var_03.blue);
|
|
param_00.start_hdrcolorintensity = var_03.hdrcolorintensity;
|
|
param_00.start_opacity = var_03.maxopacity;
|
|
param_00.start_skyfogintensity = var_03.skyfogintensity;
|
|
param_00.start_skyfogminangle = var_03.skyfogminangle;
|
|
param_00.start_skyfogmaxangle = var_03.skyfogmaxangle;
|
|
if(isdefined(var_03.sunred))
|
|
{
|
|
param_00.start_suncolor = (var_03.sunred,var_03.sungreen,var_03.sunblue);
|
|
param_00.start_hdrsuncolorintensity = var_03.hdrsuncolorintensity;
|
|
param_00.start_sundir = var_03.sundir;
|
|
param_00.start_sunbeginfadeangle = var_03.sunbeginfadeangle;
|
|
param_00.start_sunendfadeangle = var_03.sunendfadeangle;
|
|
param_00.start_sunfogscale = var_03.normalfogscale;
|
|
}
|
|
else if(param_00.sunfog_enabled)
|
|
{
|
|
param_00.start_suncolor = param_00.start_color;
|
|
param_00.start_hdrsuncolorintensity = 1;
|
|
param_00.start_sundir = (0,0,0);
|
|
param_00.start_sunbeginfadeangle = 0;
|
|
param_00.start_sunendfadeangle = 90;
|
|
param_00.start_sunfogscale = 1;
|
|
}
|
|
|
|
param_00.end_neardist = var_04.startdist;
|
|
param_00.end_fardist = var_04.halfwaydist;
|
|
param_00.end_color = (var_04.red,var_04.green,var_04.blue);
|
|
param_00.end_hdrcolorintensity = var_04.hdrcolorintensity;
|
|
param_00.end_opacity = var_04.maxopacity;
|
|
param_00.end_skyfogintensity = var_04.skyfogintensity;
|
|
param_00.end_skyfogminangle = var_04.skyfogminangle;
|
|
param_00.end_skyfogmaxangle = var_04.skyfogmaxangle;
|
|
if(isdefined(var_04.sunred))
|
|
{
|
|
param_00.end_suncolor = (var_04.sunred,var_04.sungreen,var_04.sunblue);
|
|
param_00.end_hdrsuncolorintensity = var_04.hdrsuncolorintensity;
|
|
param_00.end_sundir = var_04.sundir;
|
|
param_00.end_sunbeginfadeangle = var_04.sunbeginfadeangle;
|
|
param_00.end_sunendfadeangle = var_04.sunendfadeangle;
|
|
param_00.end_sunfogscale = var_04.normalfogscale;
|
|
}
|
|
else if(param_00.sunfog_enabled)
|
|
{
|
|
param_00.end_suncolor = param_00.end_color;
|
|
param_00.end_hdrsuncolorintensity = 1;
|
|
param_00.end_sundir = (0,0,0);
|
|
param_00.end_sunbeginfadeangle = 0;
|
|
param_00.end_sunendfadeangle = 90;
|
|
param_00.end_sunfogscale = 1;
|
|
}
|
|
}
|
|
|
|
var_05 = getent(param_00.target,"targetname");
|
|
var_06 = var_05.origin;
|
|
var_07 = undefined;
|
|
if(isdefined(var_05.target))
|
|
{
|
|
var_08 = getent(var_05.target,"targetname");
|
|
var_07 = var_08.origin;
|
|
}
|
|
else
|
|
{
|
|
var_07 = var_06 + param_00.origin - var_06 * 2;
|
|
}
|
|
|
|
var_09 = distance(var_06,var_07);
|
|
for(;;)
|
|
{
|
|
param_00 waittill("trigger",var_0A);
|
|
var_0B = 0;
|
|
while(var_0A istouching(param_00))
|
|
{
|
|
var_0B = maps\_utility::get_progress(var_06,var_07,var_0A.origin,var_09);
|
|
var_0B = clamp(var_0B,0,1);
|
|
param_00 maps\_art::set_fog_progress(var_0B);
|
|
wait(0.05);
|
|
}
|
|
|
|
if(var_0B > 0.5)
|
|
{
|
|
var_0B = 1;
|
|
}
|
|
else
|
|
{
|
|
var_0B = 0;
|
|
}
|
|
|
|
param_00 maps\_art::set_fog_progress(var_0B);
|
|
}
|
|
}
|
|
|
|
//Function Number: 67
|
|
trigger_multiple_depthoffield(param_00)
|
|
{
|
|
waittillframeend;
|
|
for(;;)
|
|
{
|
|
param_00 waittill("trigger",var_01);
|
|
var_02 = param_00.script_dof_near_start;
|
|
var_03 = param_00.script_dof_near_end;
|
|
var_04 = param_00.script_dof_near_blur;
|
|
var_05 = param_00.script_dof_far_start;
|
|
var_06 = param_00.script_dof_far_end;
|
|
var_07 = param_00.script_dof_far_blur;
|
|
var_08 = param_00.script_delay;
|
|
if(var_02 != level.dof["base"]["goal"]["nearStart"] || var_03 != level.dof["base"]["goal"]["nearEnd"] || var_04 != level.dof["base"]["goal"]["nearBlur"] || var_05 != level.dof["base"]["goal"]["farStart"] || var_06 != level.dof["base"]["goal"]["farEnd"] || var_07 != level.dof["base"]["goal"]["farBlur"])
|
|
{
|
|
maps\_art::dof_set_base(var_02,var_03,var_04,var_05,var_06,var_07,var_08);
|
|
wait(var_08);
|
|
continue;
|
|
}
|
|
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
//Function Number: 68
|
|
trigger_multiple_tessellationcutoff(param_00)
|
|
{
|
|
if(level.xenon || level.ps3)
|
|
{
|
|
return;
|
|
}
|
|
|
|
waittillframeend;
|
|
for(;;)
|
|
{
|
|
param_00 waittill("trigger",var_01);
|
|
var_02 = param_00.script_tess_distance;
|
|
var_03 = param_00.script_tess_falloff;
|
|
var_04 = param_00.script_delay;
|
|
if(var_02 != level.tess.cutoff_distance_goal || var_03 != level.tess.cutoff_falloff_goal)
|
|
{
|
|
var_02 = max(0,var_02);
|
|
var_02 = min(10000,var_02);
|
|
var_03 = max(0,var_03);
|
|
var_03 = min(10000,var_03);
|
|
maps\_art::tess_set_goal(var_02,var_03,var_04);
|
|
continue;
|
|
}
|
|
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
//Function Number: 69
|
|
trigger_slide(param_00)
|
|
{
|
|
for(;;)
|
|
{
|
|
param_00 waittill("trigger",var_01);
|
|
var_01 thread slidetriggerplayerthink(param_00);
|
|
}
|
|
}
|
|
|
|
//Function Number: 70
|
|
slidetriggerplayerthink(param_00)
|
|
{
|
|
if(isdefined(self.vehicle))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(maps\_utility::issliding())
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(isdefined(self.player_view))
|
|
{
|
|
return;
|
|
}
|
|
|
|
self endon("death");
|
|
if(soundexists("SCN_cliffhanger_player_hillslide"))
|
|
{
|
|
self playsound("SCN_cliffhanger_player_hillslide");
|
|
}
|
|
|
|
var_01 = undefined;
|
|
if(isdefined(param_00.script_accel))
|
|
{
|
|
var_01 = param_00.script_accel;
|
|
}
|
|
|
|
self endon("cancel_sliding");
|
|
maps\_utility::beginsliding(undefined,var_01);
|
|
for(;;)
|
|
{
|
|
if(!self istouching(param_00))
|
|
{
|
|
break;
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
|
|
if(isdefined(level.end_slide_delay))
|
|
{
|
|
wait(level.end_slide_delay);
|
|
}
|
|
|
|
maps\_utility::endsliding();
|
|
}
|
|
|
|
//Function Number: 71
|
|
trigger_stats(param_00)
|
|
{
|
|
param_00 waittill("trigger",var_01);
|
|
}
|
|
|
|
//Function Number: 72
|
|
trigger_multiple_fx_volume(param_00)
|
|
{
|
|
var_01 = spawn("script_origin",(0,0,0));
|
|
param_00.fx = [];
|
|
foreach(var_03 in level.createfxent)
|
|
{
|
|
assign_fx_to_trigger(var_03,param_00,var_01);
|
|
}
|
|
|
|
var_01 delete();
|
|
if(!isdefined(param_00.target))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_05 = getentarray(param_00.target,"targetname");
|
|
param_00.fx_on = 1;
|
|
foreach(var_07 in var_05)
|
|
{
|
|
switch(var_07.classname)
|
|
{
|
|
case "trigger_multiple_fx_volume_on":
|
|
var_07 thread trigger_multiple_fx_trigger_on_think(param_00);
|
|
break;
|
|
|
|
case "trigger_multiple_fx_volume_off":
|
|
var_07 thread trigger_multiple_fx_trigger_off_think(param_00);
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 73
|
|
trigger_multiple_fx_trigger_on_think(param_00)
|
|
{
|
|
for(;;)
|
|
{
|
|
self waittill("trigger");
|
|
if(!param_00.fx_on)
|
|
{
|
|
common_scripts\utility::array_thread(param_00.fx,::maps\_utility::restarteffect);
|
|
}
|
|
|
|
wait(1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 74
|
|
trigger_multiple_fx_trigger_off_think(param_00)
|
|
{
|
|
for(;;)
|
|
{
|
|
self waittill("trigger");
|
|
if(param_00.fx_on)
|
|
{
|
|
common_scripts\utility::array_thread(param_00.fx,::common_scripts\utility::pauseeffect);
|
|
}
|
|
|
|
wait(1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 75
|
|
assign_fx_to_trigger(param_00,param_01,param_02)
|
|
{
|
|
if(isdefined(param_00.v["soundalias"]) && param_00.v["soundalias"] != "nil")
|
|
{
|
|
if(!isdefined(param_00.v["stopable"]) || !param_00.v["stopable"])
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
|
|
param_02.origin = param_00.v["origin"];
|
|
if(param_02 istouching(param_01))
|
|
{
|
|
param_01.fx[param_01.fx.size] = param_00;
|
|
}
|
|
}
|
|
|
|
//Function Number: 76
|
|
trigger_multiple_compass(param_00)
|
|
{
|
|
var_01 = param_00.script_parameters;
|
|
if(!isdefined(level.minimap_image))
|
|
{
|
|
level.minimap_image = "";
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
param_00 waittill("trigger");
|
|
if(level.minimap_image != var_01)
|
|
{
|
|
maps\_compass::setupminimap(var_01);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 77
|
|
trigger_no_crouch_or_prone(param_00)
|
|
{
|
|
common_scripts\utility::array_thread(level.players,::no_crouch_or_prone_think_for_player,param_00);
|
|
}
|
|
|
|
//Function Number: 78
|
|
no_crouch_or_prone_think_for_player(param_00)
|
|
{
|
|
for(;;)
|
|
{
|
|
param_00 waittill("trigger",var_01);
|
|
if(!isdefined(var_01))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(var_01 != self)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
while(var_01 istouching(param_00))
|
|
{
|
|
var_01 allowprone(0);
|
|
var_01 allowcrouch(0);
|
|
wait(0.05);
|
|
}
|
|
|
|
var_01 allowprone(1);
|
|
var_01 allowcrouch(1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 79
|
|
trigger_no_prone(param_00)
|
|
{
|
|
common_scripts\utility::array_thread(level.players,::no_prone_for_player,param_00);
|
|
}
|
|
|
|
//Function Number: 80
|
|
no_prone_for_player(param_00)
|
|
{
|
|
for(;;)
|
|
{
|
|
param_00 waittill("trigger",var_01);
|
|
if(!isdefined(var_01))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(var_01 != self)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
while(var_01 istouching(param_00))
|
|
{
|
|
var_01 allowprone(0);
|
|
wait(0.05);
|
|
}
|
|
|
|
var_01 allowprone(1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 81
|
|
trigger_wakevolume_think(param_00)
|
|
{
|
|
for(;;)
|
|
{
|
|
param_00 waittill("trigger",var_01);
|
|
if(!isdefined(var_01))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(var_01 maps\_utility::ent_flag_exist("in_wake_volume"))
|
|
{
|
|
}
|
|
else
|
|
{
|
|
var_01 maps\_utility::ent_flag_init("in_wake_volume");
|
|
}
|
|
|
|
if(distancesquared(var_01.origin,level.player.origin) < 9250000)
|
|
{
|
|
if(var_01 maps\_utility::ent_flag("in_wake_volume"))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_01 thread volume_wakefx(param_00);
|
|
var_01 maps\_utility::ent_flag_set("in_wake_volume");
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 82
|
|
volume_wakefx(param_00)
|
|
{
|
|
self endon("death");
|
|
var_01 = 200;
|
|
for(;;)
|
|
{
|
|
if(self istouching(param_00))
|
|
{
|
|
if(var_01 > 0)
|
|
{
|
|
wait(max(1 - var_01 / 120,0.1));
|
|
}
|
|
else
|
|
{
|
|
wait(0.15);
|
|
}
|
|
|
|
var_02 = param_00.script_fxid;
|
|
var_03 = (0,0,0);
|
|
if(isplayer(self))
|
|
{
|
|
var_03 = self getvelocity();
|
|
}
|
|
|
|
if(isai(self))
|
|
{
|
|
var_03 = self.velocity;
|
|
}
|
|
|
|
var_01 = distance(var_03,(0,0,0));
|
|
if(var_01 < 5)
|
|
{
|
|
var_02 = "null";
|
|
}
|
|
|
|
if(var_02 != "null")
|
|
{
|
|
var_04 = vectornormalize((var_03[0],var_03[1],0));
|
|
var_05 = anglestoforward(vectortoangles(var_04) + (270,180,0));
|
|
var_06 = self.origin + (0,0,64);
|
|
var_07 = self.origin - (0,0,150);
|
|
var_08 = bullettrace(var_06,var_07,0,undefined);
|
|
if(isdefined(param_00.script_surfacetype))
|
|
{
|
|
if(var_08["surfacetype"] != param_00.script_surfacetype)
|
|
{
|
|
continue;
|
|
}
|
|
}
|
|
|
|
var_09 = common_scripts\utility::getfx(var_02);
|
|
var_06 = var_08["position"] + var_01 / 4 * var_04;
|
|
if(isdefined(param_00.script_usenormals) && param_00.script_usenormals == 1)
|
|
{
|
|
var_0A = vectornormalize(vectorcross(var_08["normal"],vectorcross(var_04,var_08["normal"])));
|
|
if(var_08["normal"] != (0,0,0) && var_0A != (0,0,0))
|
|
{
|
|
playfx(var_09,var_06,var_08["normal"],var_0A);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
playfx(var_09,var_06,var_05);
|
|
}
|
|
}
|
|
|
|
continue;
|
|
}
|
|
|
|
maps\_utility::ent_flag_clear("in_wake_volume");
|
|
}
|
|
}
|
|
|
|
//Function Number: 83
|
|
trigger_fallingwatervolume_think(param_00)
|
|
{
|
|
for(;;)
|
|
{
|
|
param_00 waittill("trigger",var_01);
|
|
if(!isdefined(var_01))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(var_01 maps\_utility::ent_flag_exist("in_fallingwater_volume"))
|
|
{
|
|
}
|
|
else
|
|
{
|
|
var_01 maps\_utility::ent_flag_init("in_fallingwater_volume");
|
|
}
|
|
|
|
if(distancesquared(var_01.origin,level.player.origin) < 6250000)
|
|
{
|
|
if(var_01 maps\_utility::ent_flag("in_fallingwater_volume"))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_01 thread volume_fallingwaterfx(param_00);
|
|
var_01 maps\_utility::ent_flag_set("in_fallingwater_volume");
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 84
|
|
volume_fallingwaterfx(param_00)
|
|
{
|
|
self endon("death");
|
|
var_01 = param_00 getpointinbounds(1,1,0);
|
|
var_02 = param_00 getpointinbounds(-1,-1,0);
|
|
var_03 = var_01[0] - var_02[0] * var_01[1] - var_02[1];
|
|
var_04 = 3;
|
|
if(isdefined(param_00.script_duration))
|
|
{
|
|
var_04 = param_00.script_duration;
|
|
}
|
|
|
|
var_05 = 1;
|
|
if(isdefined(param_00.script_flowrate))
|
|
{
|
|
var_05 = param_00.script_flowrate;
|
|
}
|
|
|
|
var_06 = int(var_05 * var_03 / 50);
|
|
var_07 = "null";
|
|
if(isdefined(param_00.script_fxid))
|
|
{
|
|
var_07 = param_00.script_fxid;
|
|
}
|
|
|
|
var_08 = "null";
|
|
if(isdefined(param_00.script_screen_fxid))
|
|
{
|
|
var_08 = param_00.script_screen_fxid;
|
|
}
|
|
|
|
var_09 = -1;
|
|
for(;;)
|
|
{
|
|
if(self istouching(param_00))
|
|
{
|
|
if(isai(self))
|
|
{
|
|
wait(0.05);
|
|
for(var_0A = 0;var_0A < var_06;var_0A++)
|
|
{
|
|
if(var_07 != "null")
|
|
{
|
|
var_0B = param_00 getpointinbounds(randomfloat(2) - 1,randomfloat(2) - 1,1);
|
|
var_0C = (var_0B[0],var_0B[1],self.origin[2]);
|
|
if(distance2dsquared(var_0C,self.origin) < 900)
|
|
{
|
|
var_0D = bullettrace(var_0B,var_0C,1,undefined,0,1);
|
|
if(isdefined(var_0D["entity"]) && var_0D["entity"] == self)
|
|
{
|
|
var_0E = common_scripts\utility::getfx(var_07);
|
|
var_0B = var_0D["position"];
|
|
var_0F = vectortoangles(var_0D["normal"] + (90,0,0));
|
|
var_10 = anglestoforward(var_0F);
|
|
var_11 = anglestoup(var_0F);
|
|
playfx(var_0E,var_0B,var_11,var_10);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
if(isplayer(self))
|
|
{
|
|
wait(0.05);
|
|
var_09 = var_09 + 0.05;
|
|
if(var_09 > var_04 * 0.2 || var_09 < 0)
|
|
{
|
|
self setwatersheeting(1,var_04);
|
|
var_09 = 0;
|
|
}
|
|
|
|
if(!isdefined(level.effectonplayerviewent))
|
|
{
|
|
if(var_08 != "null")
|
|
{
|
|
spawneffectonplayerview(var_08,(500,0,0),(180,0,0));
|
|
}
|
|
}
|
|
}
|
|
|
|
continue;
|
|
}
|
|
|
|
maps\_utility::ent_flag_clear("in_fallingwater_volume");
|
|
if(var_08 != "null")
|
|
{
|
|
stopeffectonplayerview(var_08);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 85
|
|
spawneffectonplayerview(param_00,param_01,param_02)
|
|
{
|
|
if(!isdefined(param_01))
|
|
{
|
|
param_01 = (0,0,0);
|
|
}
|
|
|
|
if(!isdefined(param_02))
|
|
{
|
|
param_02 = (0,0,0);
|
|
}
|
|
|
|
var_03 = common_scripts\utility::getfx(param_00);
|
|
level.effectonplayerviewent = common_scripts\utility::spawn_tag_origin();
|
|
level.effectonplayerviewent linktoplayerview(level.player,"tag_origin",param_01,param_02,1);
|
|
level.effectonplayerview = playfxontag(var_03,level.effectonplayerviewent,"tag_origin");
|
|
}
|
|
|
|
//Function Number: 86
|
|
stopeffectonplayerview(param_00,param_01)
|
|
{
|
|
if(isdefined(level.effectonplayerviewent))
|
|
{
|
|
if(isdefined(level.effectonplayerview))
|
|
{
|
|
if(param_01)
|
|
{
|
|
killfxontag(common_scripts\utility::getfx(param_00),level.effectonplayerviewent,"tag_origin");
|
|
}
|
|
else
|
|
{
|
|
stopfxontag(common_scripts\utility::getfx(param_00),level.effectonplayerviewent,"tag_origin");
|
|
}
|
|
}
|
|
|
|
level.effectonplayerviewent delete();
|
|
}
|
|
} |