mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-07 17:17:50 -05:00
1527 lines
32 KiB
Plaintext
1527 lines
32 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: _shg_fx.gsc
|
|
* Game: Call of Duty: Advanced Warfare
|
|
* Platform: PC
|
|
* Function Count: 61
|
|
* Decompile Time: 870 ms
|
|
* Timestamp: 4/22/2024 2:22:37 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
setup_shg_fx()
|
|
{
|
|
level.createfxexploders = [];
|
|
foreach(var_01 in level.createfxent)
|
|
{
|
|
if(!isdefined(var_01))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(var_01.v["type"] != "exploder")
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!isdefined(var_01.v["exploder"]))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_02 = var_01.v["exploder"];
|
|
if(!isdefined(level.createfxexploders[var_02]))
|
|
{
|
|
level.createfxexploders[var_02] = [];
|
|
}
|
|
|
|
level.createfxexploders[var_02][level.createfxexploders[var_02].size] = var_01;
|
|
}
|
|
|
|
level.createfxbyfxid = [];
|
|
foreach(var_01 in level.createfxent)
|
|
{
|
|
if(!isdefined(var_01))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!isdefined(var_01.v["fxid"]))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_05 = var_01.v["fxid"];
|
|
if(!isdefined(level.createfxbyfxid[var_05]))
|
|
{
|
|
level.createfxbyfxid[var_05] = [];
|
|
}
|
|
|
|
level.createfxbyfxid[var_05][level.createfxbyfxid[var_05].size] = var_01;
|
|
}
|
|
|
|
thread setup_wake_volumes();
|
|
thread setup_flipbook_models();
|
|
level.fx_zone_messages = 0;
|
|
}
|
|
|
|
//Function Number: 2
|
|
getentsbyfxid(param_00)
|
|
{
|
|
param_00 = maps\_utility::string(param_00);
|
|
if(isdefined(level.createfxbyfxid))
|
|
{
|
|
return level.createfxbyfxid[param_00];
|
|
}
|
|
|
|
var_01 = [];
|
|
foreach(var_03 in level.createfxent)
|
|
{
|
|
if(!isdefined(var_03))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(var_03.v["fxid"] == param_00)
|
|
{
|
|
var_01[var_01.size] = var_03;
|
|
}
|
|
}
|
|
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 3
|
|
pauseexploders(param_00)
|
|
{
|
|
var_01 = common_scripts\_exploder::getexploders(param_00);
|
|
if(isdefined(var_01))
|
|
{
|
|
foreach(var_03 in var_01)
|
|
{
|
|
var_03 common_scripts\utility::pauseeffect();
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 4
|
|
pausefxid(param_00)
|
|
{
|
|
var_01 = getentsbyfxid(param_00);
|
|
if(isdefined(var_01))
|
|
{
|
|
foreach(var_03 in var_01)
|
|
{
|
|
var_03 common_scripts\utility::pauseeffect();
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 5
|
|
restartfxid(param_00,param_01)
|
|
{
|
|
var_02 = getentsbyfxid(param_00);
|
|
if(isdefined(var_02))
|
|
{
|
|
foreach(var_04 in var_02)
|
|
{
|
|
if(isdefined(param_01) && var_04.v["type"] == param_01)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_04 maps\_utility::restarteffect();
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 6
|
|
matrix33(param_00,param_01,param_02)
|
|
{
|
|
var_03 = spawnstruct();
|
|
var_03.cols[0] = vectornormalize(param_00);
|
|
var_03.cols[1] = vectornormalize(param_01);
|
|
var_03.cols[2] = vectornormalize(param_02);
|
|
}
|
|
|
|
//Function Number: 7
|
|
vec3_mult_matrix33(param_00,param_01)
|
|
{
|
|
param_00 = vectornormalize(param_00);
|
|
var_02 = vectordot(param_00,param_01.cols[0]);
|
|
var_03 = vectordot(param_00,param_01.cols[0]);
|
|
var_04 = vectordot(param_00,param_01.cols[0]);
|
|
return (var_02,var_03,var_04);
|
|
}
|
|
|
|
//Function Number: 8
|
|
screenshakefade(param_00,param_01,param_02,param_03)
|
|
{
|
|
if(!isdefined(param_02))
|
|
{
|
|
param_02 = 0;
|
|
}
|
|
|
|
if(!isdefined(param_03))
|
|
{
|
|
param_03 = 0;
|
|
}
|
|
|
|
var_04 = param_01 * 10;
|
|
var_05 = param_02 * 10;
|
|
if(var_05 > 0)
|
|
{
|
|
var_06 = param_00 / var_05;
|
|
}
|
|
else
|
|
{
|
|
var_06 = param_01;
|
|
}
|
|
|
|
var_07 = param_03 * 10;
|
|
var_08 = var_04 - var_07;
|
|
if(var_07 > 0)
|
|
{
|
|
var_09 = param_00 / var_07;
|
|
}
|
|
else
|
|
{
|
|
var_09 = param_01;
|
|
}
|
|
|
|
var_0A = 0.1;
|
|
param_00 = 0;
|
|
for(var_0B = 0;var_0B < var_04;var_0B++)
|
|
{
|
|
if(var_0B <= var_05)
|
|
{
|
|
param_00 = param_00 + var_06;
|
|
}
|
|
|
|
if(var_0B > var_08)
|
|
{
|
|
param_00 = param_00 - var_09;
|
|
}
|
|
|
|
earthquake(param_00,var_0A,level.player.origin,500);
|
|
wait(var_0A);
|
|
}
|
|
}
|
|
|
|
//Function Number: 9
|
|
fx_bombshakes(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
|
|
{
|
|
if(level.createfx_enabled)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
var_08 = common_scripts\utility::spawn_tag_origin();
|
|
var_09 = 1200;
|
|
var_08.origin = level.player getorigin();
|
|
var_0A = bullettrace(level.player.origin + (0,0,12),level.player.origin + (0,0,1200),0,undefined);
|
|
var_0B = distance(var_08.origin,var_0A["position"]);
|
|
var_0C = 0.125;
|
|
var_0D = 2;
|
|
var_0E = 0.3;
|
|
var_0F = 0.5;
|
|
if(isdefined(param_02))
|
|
{
|
|
var_0C = param_02;
|
|
}
|
|
|
|
if(isdefined(param_03))
|
|
{
|
|
var_0D = param_03;
|
|
}
|
|
|
|
if(isdefined(param_04))
|
|
{
|
|
var_0E = param_04;
|
|
}
|
|
|
|
if(isdefined(param_05))
|
|
{
|
|
var_0F = param_05;
|
|
}
|
|
|
|
if(isdefined(param_07) && param_07 == 1)
|
|
{
|
|
var_0B = 1;
|
|
}
|
|
|
|
if(var_0B < 300)
|
|
{
|
|
if(isdefined(param_01))
|
|
{
|
|
level.player playrumbleonentity(param_01);
|
|
}
|
|
|
|
level thread screenshakefade(var_0C,var_0D,var_0E,var_0F);
|
|
if(isdefined(param_06) && param_06 == 1)
|
|
{
|
|
level thread fx_bombshakes_physics_jitter(var_08.origin,var_0D,var_0C);
|
|
}
|
|
|
|
if(isdefined(param_00))
|
|
{
|
|
for(var_10 = 0;var_10 < 6;var_10++)
|
|
{
|
|
wait(0.1);
|
|
var_11 = vectornormalize(anglestoforward(level.player getplayerangles()) + (randomfloatrange(-1,1),randomfloatrange(-1,1),0.5)) * 1000;
|
|
var_12 = bullettrace(level.player.origin + (0,0,12),level.player.origin + (0,0,12) + var_11,0,undefined);
|
|
var_13 = distance(level.player.origin,var_12["position"]);
|
|
var_14 = vectordot((0,0,-1),vectornormalize(var_0A["normal"]));
|
|
if(var_13 < 450 && var_14 > 0.75)
|
|
{
|
|
playfx(common_scripts\utility::getfx(param_00),var_12["position"]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
var_08 delete();
|
|
}
|
|
|
|
//Function Number: 10
|
|
fx_bombshakes_physics_jitter(param_00,param_01,param_02)
|
|
{
|
|
var_03 = 0;
|
|
while(var_03 < param_01)
|
|
{
|
|
physicsjitter(param_00,1000,250,0,param_02);
|
|
var_03 = var_03 + 0.1;
|
|
wait(0.1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 11
|
|
spawn_exp_tendril(param_00,param_01,param_02)
|
|
{
|
|
var_03 = common_scripts\utility::spawn_tag_origin();
|
|
var_03.origin = param_00;
|
|
var_03.angles = param_01;
|
|
var_04 = playfxontag(common_scripts\utility::getfx(param_02),var_03,"tag_origin");
|
|
var_05 = 500 + randomfloat(1500);
|
|
var_06 = 10 + randomint(20);
|
|
var_07 = 200;
|
|
var_08 = vectornormalize(anglestoforward(param_01));
|
|
var_09 = vectornormalize(common_scripts\utility::randomvector(2));
|
|
var_03.origin = var_03.origin + var_07 * (var_09[0],var_09[1],0);
|
|
var_0A = randomfloat(75);
|
|
var_0B = min(1,max(0,var_0A / 90));
|
|
var_0C = vectornormalize(var_08 * 1 - var_0B + (var_09[0],var_09[1],0) * var_0B);
|
|
var_0D = var_0C * var_05 * 0.05;
|
|
var_0E = (0,0,-3);
|
|
for(var_0F = 0;var_0F < var_06;var_0F++)
|
|
{
|
|
var_03.origin = var_03.origin + var_0D;
|
|
var_0D = var_0D + var_0E;
|
|
wait 0.05;
|
|
}
|
|
|
|
stopfxontag(common_scripts\utility::getfx(param_02),var_03,"tag_origin");
|
|
var_03 delete();
|
|
}
|
|
|
|
//Function Number: 12
|
|
spawn_tendril(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
|
|
{
|
|
var_0A = common_scripts\utility::spawn_tag_origin();
|
|
var_0A.origin = param_00;
|
|
var_0A.angles = param_01;
|
|
var_0B = playfxontag(common_scripts\utility::getfx(param_02),var_0A,"tag_origin");
|
|
var_0C = param_03 + randomfloat(param_04 - param_03);
|
|
var_0D = param_05 + randomint(param_06 - param_05);
|
|
var_0E = param_07;
|
|
var_0F = vectornormalize(anglestoforward(param_01));
|
|
var_10 = vectornormalize(common_scripts\utility::randomvector(2));
|
|
var_0A.origin = var_0A.origin + var_0E * (var_10[0],var_10[1],0);
|
|
var_11 = randomfloat(param_08);
|
|
var_12 = min(1,max(0,var_11 / 90));
|
|
var_13 = vectornormalize(var_0F * 1 - var_12 + (var_10[0],var_10[1],0) * var_12);
|
|
var_14 = var_13 * var_0C * 0.05;
|
|
var_15 = (0,0,param_09 * -1) * 0.05 * 0.05;
|
|
for(var_16 = 0;var_16 < var_0D;var_16++)
|
|
{
|
|
var_0A.origin = var_0A.origin + var_14;
|
|
var_14 = var_14 + var_15;
|
|
wait 0.05;
|
|
}
|
|
|
|
stopfxontag(common_scripts\utility::getfx(param_02),var_0A,"tag_origin");
|
|
var_0A delete();
|
|
}
|
|
|
|
//Function Number: 13
|
|
shg_exploder_tendrils(param_00,param_01)
|
|
{
|
|
waittillframeend;
|
|
waittillframeend;
|
|
waittillframeend;
|
|
for(;;)
|
|
{
|
|
level waittill("exploding_" + param_00);
|
|
var_02 = common_scripts\_exploder::getexploders(param_00);
|
|
if(isdefined(var_02))
|
|
{
|
|
foreach(var_04 in var_02)
|
|
{
|
|
for(var_05 = 0;var_05 < 6;var_05++)
|
|
{
|
|
thread spawn_exp_tendril(var_04.v["origin"],var_04.v["angles"],param_01);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 14
|
|
shg_spawn_tendrils(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
|
|
{
|
|
waittillframeend;
|
|
waittillframeend;
|
|
waittillframeend;
|
|
for(;;)
|
|
{
|
|
level waittill("exploding_" + param_00);
|
|
var_0A = common_scripts\_exploder::getexploders(param_00);
|
|
if(isdefined(var_0A))
|
|
{
|
|
foreach(var_0C in var_0A)
|
|
{
|
|
if(!isdefined(var_0C.v["origin"]))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
for(var_0D = 0;var_0D < int(param_02);var_0D++)
|
|
{
|
|
thread spawn_tendril(var_0C.v["origin"],var_0C.v["angles"],param_01,param_03,param_04,param_05,param_06,param_07,param_08,param_09);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 15
|
|
check_zkey_press()
|
|
{
|
|
if(level.player buttonpressed("z") == 1)
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 16
|
|
convertoneshot()
|
|
{
|
|
}
|
|
|
|
//Function Number: 17
|
|
vision_zone_watcherb(param_00,param_01,param_02,param_03)
|
|
{
|
|
waittillframeend;
|
|
common_scripts\utility::flag_init(param_01);
|
|
var_04 = spawnstruct();
|
|
if(!isdefined(level.g_visionvols))
|
|
{
|
|
level.g_visionvols = [];
|
|
level.g_visionexit = getdvar("vision_set_current");
|
|
if(level.g_visionexit == "")
|
|
{
|
|
level.g_visionexit = "default";
|
|
}
|
|
|
|
level.g_visiondefault = level.g_visionexit;
|
|
level.g_visionblend = 1;
|
|
if(!common_scripts\utility::flag_exist("start_vision_watcher_manager"))
|
|
{
|
|
common_scripts\utility::flag_init("vision_watcher_changed");
|
|
}
|
|
|
|
level thread vision_zone_manager();
|
|
}
|
|
|
|
if(param_03 == undefined)
|
|
{
|
|
param_03 = level.g_visiondefault;
|
|
}
|
|
|
|
var_04.v["vision_set"] = param_00;
|
|
var_04.v["vision_set_exit"] = param_03;
|
|
var_04.v["blendtime"] = param_02;
|
|
var_04.v["active"] = 0;
|
|
var_04.v["prime"] = 0;
|
|
var_04.v["flag"] = param_01;
|
|
level.g_visionvols[level.g_visionvols.size] = var_04;
|
|
for(;;)
|
|
{
|
|
common_scripts\utility::flag_wait(param_01);
|
|
if(var_04.v["active"] == 0)
|
|
{
|
|
for(var_05 = 0;var_05 < level.g_visionvols.size;var_05++)
|
|
{
|
|
level.g_visionvols[var_05].v["prime"] = 0;
|
|
}
|
|
|
|
var_04.v["prime"] = 1;
|
|
}
|
|
|
|
var_04.v["active"] = 1;
|
|
level.g_visionblend = param_02;
|
|
common_scripts\utility::flag_set("vision_watcher_changed");
|
|
wait(param_02);
|
|
common_scripts\utility::flag_waitopen(param_01);
|
|
var_04.v["prime"] = 0;
|
|
var_04.v["active"] = 0;
|
|
level.g_visionexit = var_04.v["vision_set_exit"];
|
|
level.g_visionblend = param_02;
|
|
common_scripts\utility::flag_set("vision_watcher_changed");
|
|
wait(param_02);
|
|
}
|
|
}
|
|
|
|
//Function Number: 18
|
|
vision_zone_watcher(param_00,param_01,param_02)
|
|
{
|
|
common_scripts\utility::flag_init(param_01);
|
|
var_03 = getdvar("vision_set_current");
|
|
for(;;)
|
|
{
|
|
common_scripts\utility::flag_wait(param_01);
|
|
visionsetnaked(param_00,param_02);
|
|
wait(1);
|
|
common_scripts\utility::flag_waitopen(param_01);
|
|
visionsetnaked(var_03,param_02);
|
|
wait(1);
|
|
}
|
|
}
|
|
|
|
//Function Number: 19
|
|
vision_zone_manager()
|
|
{
|
|
for(;;)
|
|
{
|
|
common_scripts\utility::flag_wait("vision_watcher_changed");
|
|
var_00 = -1;
|
|
var_01 = -1;
|
|
var_02 = 0;
|
|
for(var_03 = 0;var_03 < level.g_visionvols.size;var_03++)
|
|
{
|
|
if(level.g_visionvols[var_03].v["prime"] == 1)
|
|
{
|
|
var_04 = getdvar("vision_set_current");
|
|
if(var_04 != level.g_visionvols[var_03].v["vision_set"])
|
|
{
|
|
maps\_utility::vision_set_fog_changes(level.g_visionvols[var_03].v["vision_set"],level.g_visionblend);
|
|
}
|
|
|
|
var_00 = var_03;
|
|
}
|
|
|
|
if(level.g_visionvols[var_03].v["active"] == 1)
|
|
{
|
|
var_01 = 1;
|
|
}
|
|
}
|
|
|
|
for(var_03 = 0;var_03 < level.g_visionvols.size;var_03++)
|
|
{
|
|
if(level.g_visionvols[var_03].v["active"] == 1 && var_00 == -1)
|
|
{
|
|
maps\_utility::vision_set_fog_changes(level.g_visionvols[var_03].v["vision_set"],level.g_visionvols[var_03].v["blendtime"]);
|
|
level.g_visionvols[var_03].v["prime"] = 1;
|
|
var_00 = var_03;
|
|
var_03 = 100000;
|
|
common_scripts\utility::flag_clear("vision_watcher_changed");
|
|
wait(level.g_visionblend);
|
|
continue;
|
|
}
|
|
}
|
|
|
|
if(var_01 != 1)
|
|
{
|
|
maps\_utility::vision_set_fog_changes(level.g_visionexit,level.g_visionblend);
|
|
}
|
|
|
|
common_scripts\utility::flag_clear("vision_watcher_changed");
|
|
wait(level.g_visionblend);
|
|
}
|
|
}
|
|
|
|
//Function Number: 20
|
|
fx_zone_watcher(param_00,param_01,param_02,param_03)
|
|
{
|
|
common_scripts\utility::flag_init(param_01);
|
|
common_scripts\utility::flag_init("fx_zone_" + param_00 + "_active");
|
|
if(isdefined(param_02))
|
|
{
|
|
common_scripts\utility::flag_init(param_02);
|
|
}
|
|
|
|
if(isdefined(param_03))
|
|
{
|
|
if(!common_scripts\utility::flag_exist(param_03))
|
|
{
|
|
common_scripts\utility::flag_init(param_03);
|
|
}
|
|
}
|
|
|
|
wait 0.05;
|
|
if(isdefined(param_03))
|
|
{
|
|
thread fx_zone_watcher_either_off_killthread(param_00,param_03,param_01,param_02);
|
|
}
|
|
|
|
thread fx_zone_watcher_either(param_00,param_01,param_02);
|
|
}
|
|
|
|
//Function Number: 21
|
|
fx_zone_watcher_both(param_00,param_01,param_02)
|
|
{
|
|
common_scripts\utility::flag_init(param_01);
|
|
common_scripts\utility::flag_init("fx_zone_" + param_00 + "_active");
|
|
if(isdefined(param_02))
|
|
{
|
|
common_scripts\utility::flag_init(param_02);
|
|
}
|
|
|
|
wait 0.05;
|
|
thread fx_zone_watcher_all(param_00,param_01,param_02);
|
|
}
|
|
|
|
//Function Number: 22
|
|
flag_waitopen_both(param_00,param_01)
|
|
{
|
|
while(common_scripts\utility::flag(param_00) || common_scripts\utility::flag(param_01))
|
|
{
|
|
level common_scripts\utility::waittill_either(param_00,param_01);
|
|
}
|
|
}
|
|
|
|
//Function Number: 23
|
|
send_activate_zone_msg(param_00)
|
|
{
|
|
level notify("fx_zone_" + param_00 + "_activating");
|
|
common_scripts\utility::flag_set("fx_zone_" + param_00 + "_active");
|
|
}
|
|
|
|
//Function Number: 24
|
|
send_deactivate_zone_msg(param_00)
|
|
{
|
|
level notify("fx_zone_" + param_00 + "_deactivating");
|
|
common_scripts\utility::flag_clear("fx_zone_" + param_00 + "_active");
|
|
}
|
|
|
|
//Function Number: 25
|
|
fx_zone_watcher_either(param_00,param_01,param_02)
|
|
{
|
|
for(;;)
|
|
{
|
|
if(!isdefined(param_02))
|
|
{
|
|
param_02 = param_01;
|
|
}
|
|
|
|
common_scripts\utility::flag_wait_either(param_01,param_02);
|
|
send_activate_zone_msg(param_00);
|
|
common_scripts\_exploder::exploder(param_00);
|
|
flag_waitopen_both(param_01,param_02);
|
|
send_deactivate_zone_msg(param_00);
|
|
pauseexploders(param_00);
|
|
wait(2);
|
|
}
|
|
}
|
|
|
|
//Function Number: 26
|
|
fx_zone_watcher_either_off_killthread(param_00,param_01,param_02,param_03)
|
|
{
|
|
for(;;)
|
|
{
|
|
if(!isdefined(param_03))
|
|
{
|
|
param_03 = param_02;
|
|
}
|
|
|
|
common_scripts\utility::flag_wait(param_01);
|
|
send_deactivate_zone_msg(param_00);
|
|
pauseexploders(param_00);
|
|
send_deactivate_zone_msg(param_00);
|
|
common_scripts\utility::flag_waitopen(param_01);
|
|
if(common_scripts\utility::flag(param_02) || common_scripts\utility::flag(param_03))
|
|
{
|
|
send_activate_zone_msg(param_00);
|
|
common_scripts\_exploder::exploder(param_00);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 27
|
|
fx_zone_watcher_all(param_00,param_01,param_02)
|
|
{
|
|
for(;;)
|
|
{
|
|
if(!isdefined(param_02))
|
|
{
|
|
param_02 = param_01;
|
|
}
|
|
|
|
common_scripts\utility::flag_wait_all(param_01,param_02);
|
|
send_activate_zone_msg(param_00);
|
|
common_scripts\_exploder::exploder(param_00);
|
|
flag_waitopen_both(param_01,param_02);
|
|
send_deactivate_zone_msg(param_00);
|
|
pauseexploders(param_00);
|
|
wait(2);
|
|
}
|
|
}
|
|
|
|
//Function Number: 28
|
|
fx_zone_watcher_waitopen(param_00,param_01)
|
|
{
|
|
if(!isdefined(param_01))
|
|
{
|
|
common_scripts\utility::flag_init(param_01);
|
|
}
|
|
|
|
common_scripts\utility::flag_init("fx_zone_" + param_00 + "_active");
|
|
wait 0.05;
|
|
for(;;)
|
|
{
|
|
wait(0.1);
|
|
common_scripts\utility::flag_waitopen(param_01);
|
|
send_activate_zone_msg(param_00);
|
|
common_scripts\_exploder::exploder(param_00);
|
|
common_scripts\utility::flag_wait(param_01);
|
|
send_deactivate_zone_msg(param_00);
|
|
pauseexploders(param_00);
|
|
wait(2);
|
|
}
|
|
}
|
|
|
|
//Function Number: 29
|
|
pause_oneshot(param_00)
|
|
{
|
|
var_01 = getentsbyfxid(param_00);
|
|
if(isdefined(var_01))
|
|
{
|
|
foreach(var_03 in var_01)
|
|
{
|
|
if(var_03.v["type"] == "exploder")
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_03 common_scripts\utility::pauseeffect();
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 30
|
|
kill_oneshot(param_00)
|
|
{
|
|
var_01 = getentsbyfxid(param_00);
|
|
if(isdefined(var_01))
|
|
{
|
|
foreach(var_03 in var_01)
|
|
{
|
|
if(var_03.v["type"] == "exploder")
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(isdefined(var_03.looper))
|
|
{
|
|
setfxkillondelete(var_03.looper,1);
|
|
}
|
|
|
|
wait 0.05;
|
|
}
|
|
|
|
foreach(var_03 in var_01)
|
|
{
|
|
if(var_03.v["type"] == "exploder")
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_03 common_scripts\utility::pauseeffect();
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 31
|
|
fx_zone_watcher_late(param_00,param_01)
|
|
{
|
|
common_scripts\utility::flag_init("fx_zone_" + param_00 + "_active");
|
|
for(;;)
|
|
{
|
|
common_scripts\utility::flag_wait(param_01);
|
|
send_activate_zone_msg(param_00);
|
|
common_scripts\_exploder::exploder(param_00);
|
|
common_scripts\utility::flag_waitopen(param_01);
|
|
send_deactivate_zone_msg(param_00);
|
|
var_02 = common_scripts\_exploder::getexploders(param_00);
|
|
if(isdefined(var_02))
|
|
{
|
|
foreach(var_04 in var_02)
|
|
{
|
|
var_04 common_scripts\utility::pauseeffect();
|
|
}
|
|
}
|
|
|
|
wait(2);
|
|
}
|
|
}
|
|
|
|
//Function Number: 32
|
|
get_exploder_ent(param_00)
|
|
{
|
|
var_01 = undefined;
|
|
var_02 = common_scripts\_exploder::getexploders(param_00);
|
|
if(isdefined(var_02))
|
|
{
|
|
foreach(var_04 in var_02)
|
|
{
|
|
var_01 = var_04;
|
|
}
|
|
}
|
|
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 33
|
|
get_exploder_entarray(param_00)
|
|
{
|
|
var_01 = [];
|
|
var_02 = common_scripts\_exploder::getexploders(param_00);
|
|
if(isdefined(var_02))
|
|
{
|
|
var_01 = var_02;
|
|
}
|
|
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 34
|
|
fx_spot_lens_flare_tag(param_00)
|
|
{
|
|
var_01 = level.player getplayerangles();
|
|
var_02 = vectornormalize(anglestoforward(var_01));
|
|
}
|
|
|
|
//Function Number: 35
|
|
fx_spot_lens_flare_dir(param_00,param_01,param_02)
|
|
{
|
|
if(!common_scripts\utility::flag_exist("fx_spot_flare_kill"))
|
|
{
|
|
common_scripts\utility::flag_init("fx_spot_flare_kill");
|
|
}
|
|
|
|
if(!isdefined(param_01))
|
|
{
|
|
param_01 = (-90,0,0);
|
|
}
|
|
|
|
if(!isdefined(param_02))
|
|
{
|
|
param_02 = 10000;
|
|
}
|
|
|
|
var_03 = common_scripts\utility::spawn_tag_origin();
|
|
var_04 = level.player.origin;
|
|
var_05 = level.player getplayerangles();
|
|
var_06 = vectornormalize(anglestoforward(param_01 * -1));
|
|
var_07 = var_06 * -1 * param_02 + var_04;
|
|
var_03.origin = var_07;
|
|
var_08 = vectornormalize(anglestoforward(var_05));
|
|
var_09 = min(1,max(0.001,vectordot(var_08,var_06 * -1)));
|
|
var_09 = var_09 / var_09;
|
|
var_0A = vectornormalize(var_08 * var_09 + var_06 * 2);
|
|
var_0B = vectornormalize(var_0A - var_06) * var_09;
|
|
var_0C = vectortoangles(vectornormalize(var_0A + var_0B));
|
|
var_03.angles = var_0C;
|
|
playfxontag(common_scripts\utility::getfx(param_00),var_03,"tag_origin");
|
|
while(!common_scripts\utility::flag("fx_spot_flare_kill"))
|
|
{
|
|
var_04 = level.player.origin;
|
|
var_05 = level.player getplayerangles();
|
|
var_06 = vectornormalize(anglestoforward(param_01));
|
|
var_07 = var_06 * param_02 + var_04;
|
|
var_03.origin = var_07;
|
|
var_08 = vectornormalize(anglestoforward(var_05));
|
|
var_09 = min(1,max(0.001,vectordot(var_08,var_06)));
|
|
var_09 = var_09 * var_09 * var_09 * var_09;
|
|
var_09 = 1 - var_09;
|
|
var_0A = vectornormalize(var_08 * var_09 + var_06 * 2);
|
|
var_0B = vectornormalize(var_0A - var_06) * var_09;
|
|
var_0C = vectortoangles(vectornormalize(var_0A + var_0B * 2));
|
|
var_03.angles = var_0C;
|
|
wait 0.05;
|
|
}
|
|
|
|
stopfxontag(common_scripts\utility::getfx(param_00),var_03,"tag_origin");
|
|
var_03 delete();
|
|
}
|
|
|
|
//Function Number: 36
|
|
get_exploder_pos(param_00,param_01,param_02)
|
|
{
|
|
}
|
|
|
|
//Function Number: 37
|
|
create_exploders_fromlist()
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 38
|
|
get_fx_chain(param_00,param_01,param_02)
|
|
{
|
|
var_03 = [];
|
|
if(!isdefined(param_01))
|
|
{
|
|
param_01 = "default";
|
|
}
|
|
|
|
var_04 = spawnstruct();
|
|
var_04.v["default"] = spawnstruct();
|
|
var_04.v["default"].v["l_arm"] = ["j_shoulder_le","j_elbow_le","j_wrist_le"];
|
|
var_04.v["default"].v["r_arm"] = ["j_shoulder_ri","j_elbow_ri","j_wrist_ri"];
|
|
var_04.v["default"].v["l_leg"] = ["j_hip_le","j_knee_le","j_ankle_le"];
|
|
var_04.v["default"].v["r_leg"] = ["j_hip_ri","j_knee_ri","j_ankle_ri"];
|
|
var_04.v["default"].v["torso"] = ["j_mainroot","j_spine4","j_neck"];
|
|
var_04.v["default"].v["head"] = ["j_neck","j_head"];
|
|
if(isdefined(param_02))
|
|
{
|
|
var_05 = "override";
|
|
if(isdefined(param_02.v["name"]))
|
|
{
|
|
var_05 = param_02.v["name"];
|
|
}
|
|
|
|
var_04.v[var_05] = param_02;
|
|
}
|
|
|
|
foreach(var_07 in var_04.v[param_01].v[param_00])
|
|
{
|
|
var_03[var_03.size] = var_07;
|
|
}
|
|
|
|
return var_03;
|
|
}
|
|
|
|
//Function Number: 39
|
|
setup_fx_chain(param_00)
|
|
{
|
|
if(!isdefined(param_00.v["ent"]))
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
if(isdefined(param_00.v["chain"]))
|
|
{
|
|
param_00.v["bones"] = get_fx_chain(param_00.v["chain"],param_00.v["chainset_name"],param_00.v["chainset_override"]);
|
|
}
|
|
else
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
param_00.v["tags"] = [];
|
|
param_00.v["tag_lens"] = [];
|
|
for(var_01 = 0;var_01 < param_00.v["bones"].size - 1;var_01++)
|
|
{
|
|
var_02 = param_00.v["ent"] gettagorigin(param_00.v["bones"][var_01]);
|
|
var_03 = param_00.v["ent"] gettagangles(param_00.v["bones"][var_01]);
|
|
var_04 = param_00.v["ent"] gettagorigin(param_00.v["bones"][var_01 + 1]);
|
|
if(isdefined(var_02) && isdefined(var_04))
|
|
{
|
|
var_05 = var_04 - var_02;
|
|
var_06 = length(var_05);
|
|
var_07 = common_scripts\utility::spawn_tag_origin();
|
|
var_07.origin = var_02;
|
|
var_07.angles = vectortoangles(var_05);
|
|
var_07 linkto(param_00.v["ent"],param_00.v["bones"][var_01]);
|
|
param_00.v["tags"][param_00.v["tags"].size] = var_07;
|
|
param_00.v["tag_lens"][param_00.v["tag_lens"].size] = var_06;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 40
|
|
play_fx_on_chain(param_00)
|
|
{
|
|
level endon(param_00.v["kill_notify"]);
|
|
for(;;)
|
|
{
|
|
for(var_01 = 0;var_01 < param_00.v["tags"].size;var_01++)
|
|
{
|
|
var_02 = param_00.v["tags"][var_01];
|
|
var_03 = param_00.v["tag_lens"][var_01];
|
|
var_04 = anglestoforward(var_02.angles);
|
|
var_05 = var_02.origin + var_04 * var_03 * randomfloat(1);
|
|
playfx(param_00.v["fx"],var_05,var_04,anglestoup(var_02.angles));
|
|
}
|
|
|
|
wait(param_00.v["looptime"]);
|
|
}
|
|
}
|
|
|
|
//Function Number: 41
|
|
play_fx_attached_to_chain(param_00)
|
|
{
|
|
level endon(param_00.v["kill_notify"]);
|
|
var_01 = [];
|
|
for(var_02 = 0;var_02 < 15;var_02++)
|
|
{
|
|
var_01[var_02] = common_scripts\utility::spawn_tag_origin();
|
|
}
|
|
|
|
var_03 = 0;
|
|
for(;;)
|
|
{
|
|
for(var_04 = 0;var_04 < param_00.v["tags"].size;var_04++)
|
|
{
|
|
if(var_03 == 15)
|
|
{
|
|
var_03 = 0;
|
|
}
|
|
|
|
var_05 = param_00.v["tags"][var_04];
|
|
var_06 = param_00.v["tag_lens"][var_04];
|
|
var_07 = anglestoforward(var_05.angles);
|
|
var_08 = var_01[var_03];
|
|
var_08 linkto(var_05,"tag_origin",var_07 * var_06 * randomfloat(1),(0,0,0));
|
|
playfxontag(param_00.v["fx"],var_08,"tag_origin");
|
|
var_03++;
|
|
}
|
|
|
|
wait(param_00.v["looptime"]);
|
|
}
|
|
}
|
|
|
|
//Function Number: 42
|
|
kill_fx_on_chain(param_00)
|
|
{
|
|
level waittill(param_00.v["kill_notify"]);
|
|
for(var_01 = 0;var_01 < param_00.v["tags"].size;var_01++)
|
|
{
|
|
param_00.v["tags"][var_01] delete();
|
|
}
|
|
|
|
param_00.v["tags"] = [];
|
|
}
|
|
|
|
//Function Number: 43
|
|
kill_fx_attached_to_chain(param_00)
|
|
{
|
|
level waittill(param_00.v["kill_notify"]);
|
|
for(var_01 = 0;var_01 < param_00.v["tags"].size;var_01++)
|
|
{
|
|
param_00.v["tags"][var_01] delete();
|
|
}
|
|
|
|
param_00.v["tags"] = [];
|
|
}
|
|
|
|
//Function Number: 44
|
|
play_fx_on_actor(param_00)
|
|
{
|
|
var_01 = param_00.v["ent"];
|
|
var_02 = param_00.v["fx"];
|
|
var_03 = param_00.v["chain"];
|
|
var_04 = param_00.v["looptime"];
|
|
var_05 = param_00.v["chainset_name"];
|
|
var_06 = param_00.v["chainset_override"];
|
|
if(!isdefined(var_01))
|
|
{
|
|
return undefined;
|
|
}
|
|
|
|
if(!isdefined(var_02))
|
|
{
|
|
return undefined;
|
|
}
|
|
|
|
if(!isdefined(var_03))
|
|
{
|
|
var_03 = "all";
|
|
}
|
|
|
|
if(!isdefined(var_04))
|
|
{
|
|
var_04 = 1;
|
|
}
|
|
|
|
if(!isdefined(var_05))
|
|
{
|
|
var_05 = "default";
|
|
}
|
|
|
|
if(!isdefined(var_06))
|
|
{
|
|
var_06 = undefined;
|
|
}
|
|
|
|
var_07 = [];
|
|
if(var_03 == "all")
|
|
{
|
|
var_07[var_07.size] = "head";
|
|
var_07[var_07.size] = "r_arm";
|
|
var_07[var_07.size] = "l_arm";
|
|
var_07[var_07.size] = "r_leg";
|
|
var_07[var_07.size] = "l_leg";
|
|
var_07[var_07.size] = "torso";
|
|
}
|
|
else
|
|
{
|
|
var_07[0] = var_03;
|
|
}
|
|
|
|
var_08 = var_01.model + "kill_fx_onactor";
|
|
var_09 = [];
|
|
foreach(var_0B in var_07)
|
|
{
|
|
var_0C = spawnstruct();
|
|
var_0C.v["ent"] = var_01;
|
|
var_0C.v["chain"] = var_0B;
|
|
var_0C.v["fx"] = var_02;
|
|
var_0C.v["looptime"] = var_04;
|
|
var_0C.v["kill_notify"] = var_08;
|
|
var_0C.v["chainset_name"] = var_05;
|
|
var_0C.v["chainset_override"] = var_06;
|
|
setup_fx_chain(var_0C);
|
|
thread play_fx_on_chain(var_0C);
|
|
thread kill_fx_on_chain(var_0C);
|
|
var_09[var_09.size] = var_0C;
|
|
}
|
|
|
|
return var_08;
|
|
}
|
|
|
|
//Function Number: 45
|
|
play_fx_attached_to_actor(param_00)
|
|
{
|
|
var_01 = param_00.v["ent"];
|
|
var_02 = param_00.v["fx"];
|
|
var_03 = param_00.v["chain"];
|
|
var_04 = param_00.v["looptime"];
|
|
var_05 = param_00.v["chainset_name"];
|
|
var_06 = param_00.v["chainset_override"];
|
|
if(!isdefined(var_01))
|
|
{
|
|
return undefined;
|
|
}
|
|
|
|
if(!isdefined(var_02))
|
|
{
|
|
return undefined;
|
|
}
|
|
|
|
if(!isdefined(var_03))
|
|
{
|
|
var_03 = "all";
|
|
}
|
|
|
|
if(!isdefined(var_04))
|
|
{
|
|
var_04 = 1;
|
|
}
|
|
|
|
if(!isdefined(var_05))
|
|
{
|
|
var_05 = "default";
|
|
}
|
|
|
|
if(!isdefined(var_06))
|
|
{
|
|
var_06 = undefined;
|
|
}
|
|
|
|
var_07 = [];
|
|
if(var_03 == "all")
|
|
{
|
|
var_07[var_07.size] = "head";
|
|
var_07[var_07.size] = "r_arm";
|
|
var_07[var_07.size] = "l_arm";
|
|
var_07[var_07.size] = "r_leg";
|
|
var_07[var_07.size] = "l_leg";
|
|
var_07[var_07.size] = "torso";
|
|
}
|
|
else
|
|
{
|
|
var_07[0] = var_03;
|
|
}
|
|
|
|
var_08 = var_01.model + "kill_fx_onactor";
|
|
var_09 = [];
|
|
foreach(var_0B in var_07)
|
|
{
|
|
var_0C = spawnstruct();
|
|
var_0C.v["ent"] = var_01;
|
|
var_0C.v["chain"] = var_0B;
|
|
var_0C.v["fx"] = var_02;
|
|
var_0C.v["looptime"] = var_04;
|
|
var_0C.v["kill_notify"] = var_08;
|
|
var_0C.v["chainset_name"] = var_05;
|
|
var_0C.v["chainset_override"] = var_06;
|
|
setup_fx_chain(var_0C);
|
|
thread play_fx_attached_to_chain(var_0C);
|
|
thread kill_fx_attached_to_chain(var_0C);
|
|
var_09[var_09.size] = var_0C;
|
|
}
|
|
|
|
return var_08;
|
|
}
|
|
|
|
//Function Number: 46
|
|
setup_wake_volumes()
|
|
{
|
|
var_00 = getentarray("wake_volume","targetname");
|
|
foreach(var_02 in var_00)
|
|
{
|
|
maps\_trigger::trigger_wakevolume_think(var_02);
|
|
}
|
|
}
|
|
|
|
//Function Number: 47
|
|
setup_flipbook_models()
|
|
{
|
|
var_00 = getentarray("flipbook_model","script_noteworthy");
|
|
common_scripts\utility::array_thread(var_00,::flipbook_model);
|
|
var_01 = getentarray("model_flicker","script_noteworthy");
|
|
common_scripts\utility::array_thread(var_01,::model_flicker);
|
|
}
|
|
|
|
//Function Number: 48
|
|
flipbook_model()
|
|
{
|
|
var_00 = [];
|
|
var_00[0] = self;
|
|
var_01 = self;
|
|
for(;;)
|
|
{
|
|
var_02 = getent(var_01.target,"targetname");
|
|
if(var_02 == self)
|
|
{
|
|
break;
|
|
}
|
|
|
|
var_02 hide();
|
|
if(isdefined(var_02.script_location))
|
|
{
|
|
if(var_02.script_location == "1")
|
|
{
|
|
var_02.origin = var_02.origin;
|
|
}
|
|
else
|
|
{
|
|
var_02.origin = self.origin;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
var_02.origin = self.origin;
|
|
}
|
|
|
|
var_01 = var_02;
|
|
}
|
|
|
|
var_01 = self;
|
|
for(;;)
|
|
{
|
|
if(isdefined(var_01.script_delay))
|
|
{
|
|
if(var_01.script_delay == 0)
|
|
{
|
|
wait(randomfloatrange(0.05,0.35));
|
|
}
|
|
|
|
if(var_01.script_delay == 66)
|
|
{
|
|
wait(randomfloatrange(0.2,2.5));
|
|
}
|
|
else
|
|
{
|
|
wait(var_01.script_delay);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
wait(1);
|
|
}
|
|
|
|
var_02 = getent(var_01.target,"targetname");
|
|
var_01 hide();
|
|
var_02 show();
|
|
var_01 = var_02;
|
|
}
|
|
}
|
|
|
|
//Function Number: 49
|
|
model_flicker()
|
|
{
|
|
self endon("death");
|
|
for(;;)
|
|
{
|
|
if(!isdefined(self))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_00 = randomfloatrange(2,4);
|
|
var_01 = randomintrange(2,4);
|
|
wait(var_00);
|
|
for(var_02 = 0;var_02 < var_01;var_02++)
|
|
{
|
|
self hide();
|
|
wait(randomfloatrange(0.1,0.3));
|
|
self show();
|
|
wait(randomfloatrange(0.05,0.06));
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 50
|
|
vfx_sunflare(param_00)
|
|
{
|
|
thread fx_flare_to_sun_flare(param_00,50000);
|
|
}
|
|
|
|
//Function Number: 51
|
|
fx_flare_to_sun_flare(param_00,param_01)
|
|
{
|
|
if(!isdefined(param_01))
|
|
{
|
|
param_01 = 50000;
|
|
}
|
|
|
|
var_02 = common_scripts\utility::spawn_tag_origin();
|
|
var_02.origin = level.player.origin + get_sun_direction() * param_01;
|
|
playfxontag(common_scripts\utility::getfx(param_00),var_02,"tag_origin");
|
|
var_03 = 0.1;
|
|
for(;;)
|
|
{
|
|
var_02 moveto(level.player.origin + get_sun_direction() * param_01,var_03);
|
|
wait(var_03);
|
|
}
|
|
}
|
|
|
|
//Function Number: 52
|
|
set_sun_flare_position(param_00)
|
|
{
|
|
level.sun_flare_position = param_00;
|
|
wait(0.3);
|
|
setsunflareposition(param_00);
|
|
}
|
|
|
|
//Function Number: 53
|
|
get_sun_direction()
|
|
{
|
|
if(isdefined(level.sun_flare_position))
|
|
{
|
|
return anglestoforward(level.sun_flare_position);
|
|
}
|
|
|
|
return getmapsundirection();
|
|
}
|
|
|
|
//Function Number: 54
|
|
exploder_to_array(param_00)
|
|
{
|
|
}
|
|
|
|
//Function Number: 55
|
|
kill_fx_by_view_think(param_00,param_01)
|
|
{
|
|
for(var_02 = 0;var_02 < param_01 * 20;var_02++)
|
|
{
|
|
wait(0.05);
|
|
}
|
|
|
|
param_00 delete();
|
|
}
|
|
|
|
//Function Number: 56
|
|
start_fx_by_view(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
|
|
{
|
|
var_09 = param_01;
|
|
var_0A = 1;
|
|
var_0B = 0.35;
|
|
var_0C = 60;
|
|
var_0D = [];
|
|
var_0E = undefined;
|
|
if(isdefined(param_02))
|
|
{
|
|
var_0A = param_02;
|
|
}
|
|
|
|
if(isdefined(param_03))
|
|
{
|
|
var_0B = clamp(param_03,0,var_0A);
|
|
}
|
|
|
|
if(!isdefined(param_05))
|
|
{
|
|
param_05 = 0;
|
|
}
|
|
|
|
if(param_05 == 1)
|
|
{
|
|
param_06 = undefined;
|
|
}
|
|
|
|
for(var_0F = 0;var_0F < param_01.size;var_0F++)
|
|
{
|
|
if(param_05 == 1)
|
|
{
|
|
var_0D[var_0D.size] = (randomfloatrange(-360,360),randomfloatrange(-360,360),randomfloatrange(-360,360));
|
|
continue;
|
|
}
|
|
|
|
var_0D[var_0D.size] = (270,0,0);
|
|
}
|
|
|
|
if(isdefined(param_06))
|
|
{
|
|
var_0D = param_06;
|
|
}
|
|
|
|
if(isdefined(param_04))
|
|
{
|
|
var_10 = param_04;
|
|
}
|
|
|
|
if(isdefined(param_07))
|
|
{
|
|
var_0E = param_07;
|
|
}
|
|
|
|
if(isdefined(param_04))
|
|
{
|
|
level endon(param_04);
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
var_11 = clamp(randomfloatrange(-1 * var_0B,var_0B) + var_0A,0,var_0A + var_0B);
|
|
wait(var_11);
|
|
var_12 = level.player getplayerangles();
|
|
var_13 = vectornormalize(anglestoforward(var_12));
|
|
var_14 = -1;
|
|
var_15 = [];
|
|
var_16 = [];
|
|
for(var_0F = 0;var_0F < var_09.size;var_0F++)
|
|
{
|
|
var_17 = vectornormalize(var_09[var_0F] - level.player.origin);
|
|
if(vectordot(var_13,var_17) > 0.45)
|
|
{
|
|
var_14 = 1;
|
|
var_15[var_15.size] = var_09[var_0F];
|
|
var_16[var_16.size] = var_0D[var_0F];
|
|
}
|
|
}
|
|
|
|
if(var_14 > 0)
|
|
{
|
|
var_18 = randomint(var_15.size);
|
|
if(isdefined(var_18))
|
|
{
|
|
var_19 = var_15[var_18];
|
|
var_1A = var_16[var_18];
|
|
var_1B = anglestoforward(var_1A);
|
|
var_1C = anglestoup(var_1A);
|
|
var_1D = "pre_delay_sound_" + soundscripts\_snd::snd_new_guid();
|
|
if(isstring(param_08))
|
|
{
|
|
var_1E = param_08 + "_" + soundscripts\_snd::snd_new_guid();
|
|
soundscripts\_snd::snd_message(var_0E,var_19,var_1E);
|
|
thread start_fx_by_view_failsafe(var_1E,var_1D);
|
|
level waittill(var_1E);
|
|
}
|
|
else if(isdefined(var_0E))
|
|
{
|
|
soundscripts\_snd::snd_message(var_0E,var_19);
|
|
}
|
|
|
|
level notify(var_1D);
|
|
playfx(common_scripts\utility::getfx(param_00),var_19,var_1B,var_1C);
|
|
}
|
|
|
|
wait(0.05);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 57
|
|
start_fx_by_view_failsafe(param_00,param_01)
|
|
{
|
|
level endon(param_01);
|
|
var_02 = 2.5;
|
|
wait(var_02);
|
|
level notify(param_00);
|
|
}
|
|
|
|
//Function Number: 58
|
|
setupledgefx(param_00)
|
|
{
|
|
level.fxreactionset = [];
|
|
var_01 = common_scripts\utility::getstructarray(param_00,"script_noteworthy");
|
|
if(var_01.size > 0)
|
|
{
|
|
foreach(var_03 in var_01)
|
|
{
|
|
thread setupvfxgroup(var_03);
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 59
|
|
setupvfxgroup(param_00)
|
|
{
|
|
var_01 = param_00;
|
|
var_02 = common_scripts\utility::getstruct(param_00.target,"targetname");
|
|
var_03 = param_00.script_drones_min;
|
|
var_04 = param_00.script_drones_max;
|
|
var_05 = vectornormalize(var_02.origin - var_01.origin);
|
|
var_06 = vectortoangles(var_05) + (-90,0,0);
|
|
var_07 = randomintrange(var_03,var_04);
|
|
var_08 = length(var_02.origin - var_01.origin);
|
|
var_09 = [];
|
|
for(var_0A = 0;var_0A < var_07;var_0A++)
|
|
{
|
|
var_0B = var_01.origin + randomfloat(var_08) * var_05;
|
|
var_0C = spawnfx(common_scripts\utility::getfx(param_00.script_fxid),var_0B,anglestoforward(var_06),anglestoup(var_06));
|
|
triggerfx(var_0C);
|
|
var_0D = spawnstruct();
|
|
var_0D.ent = var_0C;
|
|
var_0D.fxorigin = var_0B;
|
|
var_0D.fxangle = var_06;
|
|
var_09[var_09.size] = var_0D;
|
|
level.fx_react_group[param_00.targetname] = var_09;
|
|
}
|
|
}
|
|
|
|
//Function Number: 60
|
|
swapfx(param_00,param_01,param_02,param_03)
|
|
{
|
|
foreach(var_05 in level.fx_react_group[param_00])
|
|
{
|
|
var_06 = randomfloat(param_03);
|
|
maps\_utility::delaythread(var_06,::perelementswap,var_05,param_01,param_02);
|
|
}
|
|
}
|
|
|
|
//Function Number: 61
|
|
perelementswap(param_00,param_01,param_02)
|
|
{
|
|
var_03 = param_00.fxangle + param_02;
|
|
playfx(common_scripts\utility::getfx(param_01),param_00.fxorigin,anglestoforward(var_03),anglestoup(var_03));
|
|
param_00.ent delete();
|
|
} |