mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-08 01:27:51 -05:00
3053 lines
49 KiB
Plaintext
3053 lines
49 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: common_scripts\utility.gsc
|
|
* Game: Call of Duty: Modern Warfare 3
|
|
* Platform: PC
|
|
* Function Count: 173
|
|
* Decompile Time: 2887 ms
|
|
* Timestamp: 10/27/2023 2:15:41 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
scriptprintln(param_00,param_01)
|
|
{
|
|
}
|
|
|
|
//Function Number: 2
|
|
debugprintln(param_00,param_01)
|
|
{
|
|
}
|
|
|
|
//Function Number: 3
|
|
draw_debug_line(param_00,param_01,param_02)
|
|
{
|
|
for(var_03 = 0;var_03 < param_02 * 20;var_03++)
|
|
{
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
//Function Number: 4
|
|
waittillend(param_00)
|
|
{
|
|
self waittillmatch("end",param_00);
|
|
}
|
|
|
|
//Function Number: 5
|
|
noself_func(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
if(!isdefined(level.func))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(level.func[param_00]))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(param_01))
|
|
{
|
|
[[ level.func[param_00] ]]();
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(param_02))
|
|
{
|
|
[[ level.func[param_00] ]](param_01);
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(param_03))
|
|
{
|
|
[[ level.func[param_00] ]](param_01,param_02);
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(param_04))
|
|
{
|
|
[[ level.func[param_00] ]](param_01,param_02,param_03);
|
|
return;
|
|
}
|
|
|
|
[[ level.func[param_00] ]](param_01,param_02,param_03,param_04);
|
|
}
|
|
|
|
//Function Number: 6
|
|
self_func(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
if(!isdefined(level.func[param_00]))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(param_01))
|
|
{
|
|
self [[ level.func[param_00] ]]();
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(param_02))
|
|
{
|
|
self [[ level.func[param_00] ]](param_01);
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(param_03))
|
|
{
|
|
self [[ level.func[param_00] ]](param_01,param_02);
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(param_04))
|
|
{
|
|
self [[ level.func[param_00] ]](param_01,param_02,param_03);
|
|
return;
|
|
}
|
|
|
|
self [[ level.func[param_00] ]](param_01,param_02,param_03,param_04);
|
|
}
|
|
|
|
//Function Number: 7
|
|
randomvector(param_00)
|
|
{
|
|
return (randomfloat(param_00) - param_00 * 0.5,randomfloat(param_00) - param_00 * 0.5,randomfloat(param_00) - param_00 * 0.5);
|
|
}
|
|
|
|
//Function Number: 8
|
|
randomvectorrange(param_00,param_01)
|
|
{
|
|
var_02 = randomfloatrange(param_00,param_01);
|
|
if(randomint(2) == 0)
|
|
{
|
|
var_02 = var_02 * -1;
|
|
}
|
|
|
|
var_03 = randomfloatrange(param_00,param_01);
|
|
if(randomint(2) == 0)
|
|
{
|
|
var_03 = var_03 * -1;
|
|
}
|
|
|
|
var_04 = randomfloatrange(param_00,param_01);
|
|
if(randomint(2) == 0)
|
|
{
|
|
var_04 = var_04 * -1;
|
|
}
|
|
|
|
return (var_02,var_03,var_04);
|
|
}
|
|
|
|
//Function Number: 9
|
|
angle_dif(param_00,param_01)
|
|
{
|
|
if(param_00 == param_01)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
while(param_01 > 360)
|
|
{
|
|
param_01 = param_01 - 360;
|
|
}
|
|
|
|
while(param_01 < 0)
|
|
{
|
|
param_01 = param_01 + 360;
|
|
}
|
|
|
|
while(param_00 > 360)
|
|
{
|
|
param_00 = param_00 - 360;
|
|
}
|
|
|
|
while(param_00 < 0)
|
|
{
|
|
param_00 = param_00 + 360;
|
|
}
|
|
|
|
var_02 = undefined;
|
|
var_03 = undefined;
|
|
if(param_01 > 180)
|
|
{
|
|
var_03 = 360 - param_01;
|
|
}
|
|
else
|
|
{
|
|
var_03 = param_01;
|
|
}
|
|
|
|
if(param_00 > 180)
|
|
{
|
|
var_02 = 360 - param_00;
|
|
}
|
|
else
|
|
{
|
|
var_02 = param_00;
|
|
}
|
|
|
|
var_04 = var_03 + var_02;
|
|
var_05 = 0;
|
|
if(param_01 > param_00)
|
|
{
|
|
var_05 = param_01 - param_00;
|
|
}
|
|
else
|
|
{
|
|
var_05 = param_00 - param_01;
|
|
}
|
|
|
|
if(var_05 < var_04)
|
|
{
|
|
return var_05;
|
|
}
|
|
|
|
return var_04;
|
|
}
|
|
|
|
//Function Number: 10
|
|
sign(param_00)
|
|
{
|
|
if(param_00 >= 0)
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
return -1;
|
|
}
|
|
|
|
//Function Number: 11
|
|
track(param_00)
|
|
{
|
|
if(isdefined(self.var_8BA))
|
|
{
|
|
if(param_00 == self.var_8BA)
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
|
|
self.var_8BA = param_00;
|
|
}
|
|
|
|
//Function Number: 12
|
|
get_enemy_team(param_00)
|
|
{
|
|
var_01 = [];
|
|
return var_7B[var_01];
|
|
}
|
|
|
|
//Function Number: 13
|
|
clear_exception(param_00)
|
|
{
|
|
self.var_8BE[param_00] = level.var_8BD;
|
|
}
|
|
|
|
//Function Number: 14
|
|
set_exception(param_00,param_01)
|
|
{
|
|
self.var_8BE[param_00] = param_01;
|
|
}
|
|
|
|
//Function Number: 15
|
|
set_all_exceptions(param_00)
|
|
{
|
|
var_01 = getarraykeys(self.var_8BE);
|
|
for(var_02 = 0;var_02 < var_01.size;var_02++)
|
|
{
|
|
self.var_8BE[var_01[var_02]] = param_00;
|
|
}
|
|
}
|
|
|
|
//Function Number: 16
|
|
cointoss()
|
|
{
|
|
return randomint(100) >= 50;
|
|
}
|
|
|
|
//Function Number: 17
|
|
choose_from_weighted_array(param_00,param_01)
|
|
{
|
|
var_02 = randomint(param_01[param_01.size - 1] + 1);
|
|
for(var_03 = 0;var_03 < param_01.size;var_03++)
|
|
{
|
|
if(var_02 <= param_01[var_03])
|
|
{
|
|
return param_00[var_03];
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 18
|
|
get_cumulative_weights(param_00)
|
|
{
|
|
var_01 = [];
|
|
var_02 = 0;
|
|
for(var_03 = 0;var_03 < param_00.size;var_03++)
|
|
{
|
|
var_02 = var_02 + param_00[var_03];
|
|
var_01[var_03] = var_02;
|
|
}
|
|
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 19
|
|
waittill_string(param_00,param_01)
|
|
{
|
|
if(param_00 != "death")
|
|
{
|
|
self endon("death");
|
|
}
|
|
|
|
param_01 endon("die");
|
|
self waittill(param_00);
|
|
param_01 notify("returned",param_00);
|
|
}
|
|
|
|
//Function Number: 20
|
|
waittill_multiple(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
self endon("death");
|
|
var_05 = spawnstruct();
|
|
var_05.var_8C6 = 0;
|
|
if(isdefined(param_00))
|
|
{
|
|
thread waittill_string(param_00,var_05);
|
|
var_05.var_8C6++;
|
|
}
|
|
|
|
if(isdefined(param_01))
|
|
{
|
|
thread waittill_string(param_01,var_05);
|
|
var_05.var_8C6++;
|
|
}
|
|
|
|
if(isdefined(param_02))
|
|
{
|
|
thread waittill_string(param_02,var_05);
|
|
var_05.var_8C6++;
|
|
}
|
|
|
|
if(isdefined(param_03))
|
|
{
|
|
thread waittill_string(param_03,var_05);
|
|
var_05.var_8C6++;
|
|
}
|
|
|
|
if(isdefined(param_04))
|
|
{
|
|
thread waittill_string(param_04,var_05);
|
|
var_05.var_8C6++;
|
|
}
|
|
|
|
while(var_05.var_8C6)
|
|
{
|
|
var_05 waittill("returned");
|
|
var_05.var_8C6--;
|
|
}
|
|
|
|
var_05 notify("die");
|
|
}
|
|
|
|
//Function Number: 21
|
|
waittill_multiple_ents(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
|
|
{
|
|
self endon("death");
|
|
var_08 = spawnstruct();
|
|
var_08.var_8C6 = 0;
|
|
if(isdefined(param_00))
|
|
{
|
|
param_00 thread waittill_string(param_01,var_08);
|
|
var_08.var_8C6++;
|
|
}
|
|
|
|
if(isdefined(param_02))
|
|
{
|
|
param_02 thread waittill_string(param_03,var_08);
|
|
var_08.var_8C6++;
|
|
}
|
|
|
|
if(isdefined(param_04))
|
|
{
|
|
param_04 thread waittill_string(param_05,var_08);
|
|
var_08.var_8C6++;
|
|
}
|
|
|
|
if(isdefined(param_06))
|
|
{
|
|
param_06 thread waittill_string(param_07,var_08);
|
|
var_08.var_8C6++;
|
|
}
|
|
|
|
while(var_08.var_8C6)
|
|
{
|
|
var_08 waittill("returned");
|
|
var_08.var_8C6--;
|
|
}
|
|
|
|
var_08 notify("die");
|
|
}
|
|
|
|
//Function Number: 22
|
|
waittill_any_return(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
if((!isdefined(param_00) || param_00 != "death") && !isdefined(param_01) || param_01 != "death" && !isdefined(param_02) || param_02 != "death" && !isdefined(param_03) || param_03 != "death" && !isdefined(param_04) || param_04 != "death")
|
|
{
|
|
self endon("death");
|
|
}
|
|
|
|
var_05 = spawnstruct();
|
|
if(isdefined(param_00))
|
|
{
|
|
thread waittill_string(param_00,var_05);
|
|
}
|
|
|
|
if(isdefined(param_01))
|
|
{
|
|
thread waittill_string(param_01,var_05);
|
|
}
|
|
|
|
if(isdefined(param_02))
|
|
{
|
|
thread waittill_string(param_02,var_05);
|
|
}
|
|
|
|
if(isdefined(param_03))
|
|
{
|
|
thread waittill_string(param_03,var_05);
|
|
}
|
|
|
|
if(isdefined(param_04))
|
|
{
|
|
thread waittill_string(param_04,var_05);
|
|
}
|
|
|
|
var_05 waittill("returned",var_06);
|
|
var_05 notify("die");
|
|
return var_06;
|
|
}
|
|
|
|
//Function Number: 23
|
|
waittill_any_timeout(param_00,param_01,param_02,param_03,param_04,param_05)
|
|
{
|
|
if((!isdefined(param_01) || param_01 != "death") && !isdefined(param_02) || param_02 != "death" && !isdefined(param_03) || param_03 != "death" && !isdefined(param_04) || param_04 != "death" && !isdefined(param_05) || param_05 != "death")
|
|
{
|
|
self endon("death");
|
|
}
|
|
|
|
var_06 = spawnstruct();
|
|
if(isdefined(param_01))
|
|
{
|
|
thread waittill_string(param_01,var_06);
|
|
}
|
|
|
|
if(isdefined(param_02))
|
|
{
|
|
thread waittill_string(param_02,var_06);
|
|
}
|
|
|
|
if(isdefined(param_03))
|
|
{
|
|
thread waittill_string(param_03,var_06);
|
|
}
|
|
|
|
if(isdefined(param_04))
|
|
{
|
|
thread waittill_string(param_04,var_06);
|
|
}
|
|
|
|
if(isdefined(param_05))
|
|
{
|
|
thread waittill_string(param_05,var_06);
|
|
}
|
|
|
|
var_06 thread _timeout(param_00);
|
|
var_06 waittill("returned",var_07);
|
|
var_06 notify("die");
|
|
return var_07;
|
|
}
|
|
|
|
//Function Number: 24
|
|
_timeout(param_00)
|
|
{
|
|
self endon("die");
|
|
wait param_00;
|
|
self notify("returned","timeout");
|
|
}
|
|
|
|
//Function Number: 25
|
|
waittill_any(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07)
|
|
{
|
|
if(isdefined(param_01))
|
|
{
|
|
self endon(param_01);
|
|
}
|
|
|
|
if(isdefined(param_02))
|
|
{
|
|
self endon(param_02);
|
|
}
|
|
|
|
if(isdefined(param_03))
|
|
{
|
|
self endon(param_03);
|
|
}
|
|
|
|
if(isdefined(param_04))
|
|
{
|
|
self endon(param_04);
|
|
}
|
|
|
|
if(isdefined(param_05))
|
|
{
|
|
self endon(param_05);
|
|
}
|
|
|
|
if(isdefined(param_06))
|
|
{
|
|
self endon(param_06);
|
|
}
|
|
|
|
if(isdefined(param_07))
|
|
{
|
|
self endon(param_07);
|
|
}
|
|
|
|
self waittill(param_00);
|
|
}
|
|
|
|
//Function Number: 26
|
|
waittill_any_ents(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A,param_0B,param_0C,param_0D)
|
|
{
|
|
if(isdefined(param_02) && isdefined(param_03))
|
|
{
|
|
param_02 endon(param_03);
|
|
}
|
|
|
|
if(isdefined(param_04) && isdefined(param_05))
|
|
{
|
|
param_04 endon(param_05);
|
|
}
|
|
|
|
if(isdefined(param_06) && isdefined(param_07))
|
|
{
|
|
param_06 endon(param_07);
|
|
}
|
|
|
|
if(isdefined(param_08) && isdefined(param_09))
|
|
{
|
|
param_08 endon(param_09);
|
|
}
|
|
|
|
if(isdefined(param_0A) && isdefined(param_0B))
|
|
{
|
|
param_0A endon(param_0B);
|
|
}
|
|
|
|
if(isdefined(param_0C) && isdefined(param_0D))
|
|
{
|
|
param_0C endon(param_0D);
|
|
}
|
|
|
|
param_00 waittill(param_01);
|
|
}
|
|
|
|
//Function Number: 27
|
|
isflashed()
|
|
{
|
|
if(!isdefined(self.flashendtime))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return gettime() < self.flashendtime;
|
|
}
|
|
|
|
//Function Number: 28
|
|
flag_exist(param_00)
|
|
{
|
|
return isdefined(level.flag[param_00]);
|
|
}
|
|
|
|
//Function Number: 29
|
|
flag(param_00)
|
|
{
|
|
return level.flag[param_00];
|
|
}
|
|
|
|
//Function Number: 30
|
|
init_flags()
|
|
{
|
|
level.flag = [];
|
|
level.flags_lock = [];
|
|
level.generic_index = 0;
|
|
if(!isdefined(level.sp_stat_tracking_func))
|
|
{
|
|
level.sp_stat_tracking_func = ::empty_init_func;
|
|
}
|
|
|
|
level.flag_struct = spawnstruct();
|
|
level.flag_struct assign_unique_id();
|
|
}
|
|
|
|
//Function Number: 31
|
|
flag_init(param_00)
|
|
{
|
|
if(!isdefined(level.flag))
|
|
{
|
|
init_flags();
|
|
}
|
|
|
|
level.flag[param_00] = 0;
|
|
if(!isdefined(level.trigger_flags))
|
|
{
|
|
init_trigger_flags();
|
|
level.trigger_flags[param_00] = [];
|
|
}
|
|
else if(!isdefined(level.trigger_flags[param_00]))
|
|
{
|
|
level.trigger_flags[param_00] = [];
|
|
}
|
|
|
|
if(issuffix(param_00,"aa_"))
|
|
{
|
|
thread [[ level.sp_stat_tracking_func ]](param_00);
|
|
}
|
|
}
|
|
|
|
//Function Number: 32
|
|
empty_init_func(param_00)
|
|
{
|
|
}
|
|
|
|
//Function Number: 33
|
|
issuffix(param_00,param_01)
|
|
{
|
|
if(param_01.size > param_00.size)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
for(var_02 = 0;var_02 < param_01.size;var_02++)
|
|
{
|
|
if(param_00[var_02] != param_01[var_02])
|
|
{
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 34
|
|
flag_set(param_00,param_01)
|
|
{
|
|
level.flag[param_00] = 1;
|
|
set_trigger_flag_permissions(param_00);
|
|
if(isdefined(param_01))
|
|
{
|
|
level notify(param_00,param_01);
|
|
return;
|
|
}
|
|
|
|
level notify(param_00);
|
|
}
|
|
|
|
//Function Number: 35
|
|
assign_unique_id()
|
|
{
|
|
self.unique_id = "generic" + level.generic_index;
|
|
level.generic_index++;
|
|
}
|
|
|
|
//Function Number: 36
|
|
flag_wait(param_00,param_01)
|
|
{
|
|
var_02 = undefined;
|
|
while(!flag(param_00))
|
|
{
|
|
var_02 = undefined;
|
|
level waittill(param_00,var_02);
|
|
if(isdefined(param_01) && flag(param_00,param_01))
|
|
{
|
|
break;
|
|
}
|
|
}
|
|
|
|
if(isdefined(var_02))
|
|
{
|
|
return var_02;
|
|
}
|
|
}
|
|
|
|
//Function Number: 37
|
|
flag_clear(param_00)
|
|
{
|
|
if(!flag(param_00))
|
|
{
|
|
return;
|
|
}
|
|
|
|
level.flag[param_00] = 0;
|
|
set_trigger_flag_permissions(param_00);
|
|
level notify(param_00);
|
|
}
|
|
|
|
//Function Number: 38
|
|
flag_waitopen(param_00)
|
|
{
|
|
while(flag(param_00))
|
|
{
|
|
level waittill(param_00);
|
|
}
|
|
}
|
|
|
|
//Function Number: 39
|
|
waittill_either(param_00,param_01)
|
|
{
|
|
self endon(param_00);
|
|
self waittill(param_01);
|
|
}
|
|
|
|
//Function Number: 40
|
|
array_thread(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A)
|
|
{
|
|
if(!isdefined(param_02))
|
|
{
|
|
foreach(var_0C in param_00)
|
|
{
|
|
var_0C thread [[ param_01 ]]();
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(param_06))
|
|
{
|
|
foreach(var_0E in param_03)
|
|
{
|
|
var_0E thread [[ param_03 ]](param_04);
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(param_09))
|
|
{
|
|
foreach(var_10 in param_05)
|
|
{
|
|
var_10 thread [[ param_05 ]](param_06,param_07);
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(var_0C))
|
|
{
|
|
foreach(var_12 in param_07)
|
|
{
|
|
var_12 thread [[ param_07 ]](param_08,param_09,param_0A);
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(var_0F))
|
|
{
|
|
foreach(var_14 in param_09)
|
|
{
|
|
var_14 thread [[ param_09 ]](param_0A,var_0B,var_0C,var_0D);
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(var_12))
|
|
{
|
|
foreach(var_16 in var_0B)
|
|
{
|
|
var_16 thread [[ var_0B ]](var_0C,var_0D,var_0E,var_0F,var_10);
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(var_15))
|
|
{
|
|
foreach(var_18 in var_0D)
|
|
{
|
|
var_18 thread [[ var_0D ]](var_0E,var_0F,var_10,var_11,var_12,var_13);
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(var_18))
|
|
{
|
|
foreach(var_1A in var_0F)
|
|
{
|
|
var_1A thread [[ var_0F ]](var_10,var_11,var_12,var_13,var_14,var_15,var_16);
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(var_1B))
|
|
{
|
|
foreach(var_1C in var_11)
|
|
{
|
|
var_1C thread [[ var_11 ]](var_12,var_13,var_14,var_15,var_16,var_17,var_18,var_19);
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
foreach(var_1E in var_13)
|
|
{
|
|
var_1E thread [[ var_13 ]](var_14,var_15,var_16,var_17,var_18,var_19,var_1A,var_1B,var_1C);
|
|
}
|
|
}
|
|
|
|
//Function Number: 41
|
|
array_call(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
if(isdefined(param_04))
|
|
{
|
|
foreach(var_06 in param_00)
|
|
{
|
|
var_06 [[ param_01 ]](param_02,param_03,param_04);
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
if(isdefined(var_06))
|
|
{
|
|
foreach(var_08 in param_03)
|
|
{
|
|
var_08 [[ param_03 ]](param_04,var_05);
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
if(isdefined(var_07))
|
|
{
|
|
foreach(var_0A in var_05)
|
|
{
|
|
var_0A [[ var_05 ]](var_06);
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
foreach(var_0C in var_07)
|
|
{
|
|
var_0C [[ var_07 ]]();
|
|
}
|
|
}
|
|
|
|
//Function Number: 42
|
|
array_thread4(param_00,param_01,param_02,param_03,param_04,param_05)
|
|
{
|
|
array_thread(param_00,param_01,param_02,param_03,param_04,param_05);
|
|
}
|
|
|
|
//Function Number: 43
|
|
array_thread5(param_00,param_01,param_02,param_03,param_04,param_05,param_06)
|
|
{
|
|
array_thread(param_00,param_01,param_02,param_03,param_04,param_05,param_06);
|
|
}
|
|
|
|
//Function Number: 44
|
|
trigger_on(param_00,param_01)
|
|
{
|
|
if(isdefined(param_00) && isdefined(param_01))
|
|
{
|
|
var_02 = getentarray(param_00,param_01);
|
|
array_thread(var_02,::trigger_on_proc);
|
|
return;
|
|
}
|
|
|
|
trigger_on_proc();
|
|
}
|
|
|
|
//Function Number: 45
|
|
trigger_on_proc()
|
|
{
|
|
if(isdefined(self.realorigin))
|
|
{
|
|
self.origin = self.realorigin;
|
|
}
|
|
|
|
self.trigger_off = undefined;
|
|
}
|
|
|
|
//Function Number: 46
|
|
trigger_off(param_00,param_01)
|
|
{
|
|
if(isdefined(param_00) && isdefined(param_01))
|
|
{
|
|
var_02 = getentarray(param_00,param_01);
|
|
array_thread(var_02,::trigger_off_proc);
|
|
return;
|
|
}
|
|
|
|
trigger_off_proc();
|
|
}
|
|
|
|
//Function Number: 47
|
|
trigger_off_proc()
|
|
{
|
|
if(!isdefined(self.realorigin))
|
|
{
|
|
self.realorigin = self.origin;
|
|
}
|
|
|
|
if(self.origin == self.realorigin)
|
|
{
|
|
self.origin = self.origin + (0,0,-10000);
|
|
}
|
|
|
|
self.trigger_off = 1;
|
|
}
|
|
|
|
//Function Number: 48
|
|
set_trigger_flag_permissions(param_00)
|
|
{
|
|
if(!isdefined(level.trigger_flags))
|
|
{
|
|
return;
|
|
}
|
|
|
|
level.trigger_flags[param_00] = array_removeundefined(level.trigger_flags[param_00]);
|
|
array_thread(level.trigger_flags[param_00],::update_trigger_based_on_flags);
|
|
}
|
|
|
|
//Function Number: 49
|
|
update_trigger_based_on_flags()
|
|
{
|
|
var_00 = 1;
|
|
if(isdefined(self.script_flag_true))
|
|
{
|
|
var_00 = 0;
|
|
var_01 = create_flags_and_return_tokens(self.script_flag_true);
|
|
foreach(var_03 in var_01)
|
|
{
|
|
if(flag(var_03))
|
|
{
|
|
var_00 = 1;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
var_05 = 1;
|
|
if(isdefined(self.script_flag_false))
|
|
{
|
|
var_01 = create_flags_and_return_tokens(self.script_flag_false);
|
|
foreach(var_03 in var_01)
|
|
{
|
|
if(flag(var_03))
|
|
{
|
|
var_05 = 0;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
[[ level.var_8EC[var_00 && var_05] ]]();
|
|
}
|
|
|
|
//Function Number: 50
|
|
create_flags_and_return_tokens(param_00)
|
|
{
|
|
var_01 = strtok(param_00," ");
|
|
for(var_02 = 0;var_02 < var_01.size;var_02++)
|
|
{
|
|
if(!isdefined(level.flag[var_01[var_02]]))
|
|
{
|
|
flag_init(var_01[var_02]);
|
|
}
|
|
}
|
|
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 51
|
|
init_trigger_flags()
|
|
{
|
|
level.trigger_flags = [];
|
|
level.var_8EC[1] = ::trigger_on;
|
|
level.var_8EC[0] = ::trigger_off;
|
|
}
|
|
|
|
//Function Number: 52
|
|
getstruct(param_00,param_01)
|
|
{
|
|
var_02 = level.struct_class_names[param_01][param_00];
|
|
if(!isdefined(var_02))
|
|
{
|
|
return undefined;
|
|
}
|
|
|
|
if(var_02.size > 1)
|
|
{
|
|
return undefined;
|
|
}
|
|
|
|
return var_02[0];
|
|
}
|
|
|
|
//Function Number: 53
|
|
getstructarray(param_00,param_01)
|
|
{
|
|
var_02 = level.struct_class_names[param_01][param_00];
|
|
if(!isdefined(var_02))
|
|
{
|
|
return [];
|
|
}
|
|
|
|
return var_02;
|
|
}
|
|
|
|
//Function Number: 54
|
|
struct_class_init()
|
|
{
|
|
level.struct_class_names = [];
|
|
level.struct_class_names["target"] = [];
|
|
level.struct_class_names["targetname"] = [];
|
|
level.struct_class_names["script_noteworthy"] = [];
|
|
level.struct_class_names["script_linkname"] = [];
|
|
foreach(var_01 in level.struct)
|
|
{
|
|
if(isdefined(var_01.targetname))
|
|
{
|
|
if(!isdefined(level.struct_class_names["targetname"][var_01.targetname]))
|
|
{
|
|
level.struct_class_names["targetname"][var_01.targetname] = [];
|
|
}
|
|
|
|
var_02 = level.struct_class_names["targetname"][var_01.targetname].size;
|
|
level.struct_class_names["targetname"][var_01.targetname][var_02] = var_01;
|
|
}
|
|
|
|
if(isdefined(var_01.target))
|
|
{
|
|
if(!isdefined(level.struct_class_names["target"][var_01.target]))
|
|
{
|
|
level.struct_class_names["target"][var_01.target] = [];
|
|
}
|
|
|
|
var_02 = level.struct_class_names["target"][var_01.target].size;
|
|
level.struct_class_names["target"][var_01.target][var_02] = var_01;
|
|
}
|
|
|
|
if(isdefined(var_01.script_noteworthy))
|
|
{
|
|
if(!isdefined(level.struct_class_names["script_noteworthy"][var_01.script_noteworthy]))
|
|
{
|
|
level.struct_class_names["script_noteworthy"][var_01.script_noteworthy] = [];
|
|
}
|
|
|
|
var_02 = level.struct_class_names["script_noteworthy"][var_01.script_noteworthy].size;
|
|
level.struct_class_names["script_noteworthy"][var_01.script_noteworthy][var_02] = var_01;
|
|
}
|
|
|
|
if(isdefined(var_01.script_linkname))
|
|
{
|
|
level.struct_class_names["script_linkname"][var_01.script_linkname][0] = var_01;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 55
|
|
fileprint_start(param_00)
|
|
{
|
|
}
|
|
|
|
//Function Number: 56
|
|
fileprint_map_start()
|
|
{
|
|
}
|
|
|
|
//Function Number: 57
|
|
fileprint_map_header(param_00)
|
|
{
|
|
if(!isdefined(param_00))
|
|
{
|
|
param_00 = 0;
|
|
}
|
|
}
|
|
|
|
//Function Number: 58
|
|
fileprint_map_keypairprint(param_00,param_01)
|
|
{
|
|
}
|
|
|
|
//Function Number: 59
|
|
fileprint_map_entity_start()
|
|
{
|
|
}
|
|
|
|
//Function Number: 60
|
|
fileprint_map_entity_end()
|
|
{
|
|
}
|
|
|
|
//Function Number: 61
|
|
fileprint_radiant_vec(param_00)
|
|
{
|
|
}
|
|
|
|
//Function Number: 62
|
|
array_remove(param_00,param_01)
|
|
{
|
|
var_02 = [];
|
|
foreach(var_04 in param_00)
|
|
{
|
|
if(var_04 != param_01)
|
|
{
|
|
var_02[var_02.size] = var_04;
|
|
}
|
|
}
|
|
|
|
return var_02;
|
|
}
|
|
|
|
//Function Number: 63
|
|
array_remove_array(param_00,param_01)
|
|
{
|
|
foreach(var_03 in param_01)
|
|
{
|
|
param_00 = array_remove(param_00,var_03);
|
|
}
|
|
|
|
return param_00;
|
|
}
|
|
|
|
//Function Number: 64
|
|
array_removeundefined(param_00)
|
|
{
|
|
var_01 = [];
|
|
foreach(var_03 in param_00)
|
|
{
|
|
if(!isdefined(var_03))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_01[var_01.size] = var_03;
|
|
}
|
|
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 65
|
|
array_levelthread(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
if(isdefined(param_04))
|
|
{
|
|
foreach(var_06 in param_00)
|
|
{
|
|
thread [[ param_01 ]](var_06,param_02,param_03,param_04);
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
if(isdefined(var_06))
|
|
{
|
|
foreach(var_08 in param_03)
|
|
{
|
|
thread [[ param_03 ]](var_08,param_04,var_05);
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
if(isdefined(var_07))
|
|
{
|
|
foreach(var_0A in var_05)
|
|
{
|
|
thread [[ var_05 ]](var_0A,var_06);
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
foreach(var_0C in var_07)
|
|
{
|
|
thread [[ var_07 ]](var_0C);
|
|
}
|
|
}
|
|
|
|
//Function Number: 66
|
|
array_levelcall(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
if(isdefined(param_04))
|
|
{
|
|
foreach(var_06 in param_00)
|
|
{
|
|
[[ param_01 ]](var_06,param_02,param_03,param_04);
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
if(isdefined(var_06))
|
|
{
|
|
foreach(var_08 in param_03)
|
|
{
|
|
[[ param_03 ]](var_08,param_04,var_05);
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
if(isdefined(var_07))
|
|
{
|
|
foreach(var_0A in var_05)
|
|
{
|
|
[[ var_05 ]](var_0A,var_06);
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
foreach(var_0C in var_07)
|
|
{
|
|
[[ var_07 ]](var_0C);
|
|
}
|
|
}
|
|
|
|
//Function Number: 67
|
|
add_to_array(param_00,param_01)
|
|
{
|
|
if(!isdefined(param_01))
|
|
{
|
|
return param_00;
|
|
}
|
|
|
|
if(!isdefined(param_00))
|
|
{
|
|
param_00[0] = param_01;
|
|
}
|
|
else
|
|
{
|
|
param_00[param_00.size] = param_01;
|
|
}
|
|
|
|
return param_00;
|
|
}
|
|
|
|
//Function Number: 68
|
|
flag_assert(param_00)
|
|
{
|
|
}
|
|
|
|
//Function Number: 69
|
|
flag_wait_either(param_00,param_01)
|
|
{
|
|
for(;;)
|
|
{
|
|
if(flag(param_00))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(flag(param_01))
|
|
{
|
|
return;
|
|
}
|
|
|
|
level waittill_either(param_00,param_01);
|
|
}
|
|
}
|
|
|
|
//Function Number: 70
|
|
flag_wait_either_return(param_00,param_01)
|
|
{
|
|
for(;;)
|
|
{
|
|
if(flag(param_00))
|
|
{
|
|
return param_00;
|
|
}
|
|
|
|
if(flag(param_01))
|
|
{
|
|
return param_01;
|
|
}
|
|
|
|
var_02 = level waittill_any_return(param_00,param_01);
|
|
return var_02;
|
|
}
|
|
}
|
|
|
|
//Function Number: 71
|
|
flag_wait_any(param_00,param_01,param_02,param_03,param_04,param_05)
|
|
{
|
|
var_06 = [];
|
|
if(isdefined(param_05))
|
|
{
|
|
}
|
|
else if(isdefined(param_05))
|
|
{
|
|
}
|
|
else if(isdefined(param_04))
|
|
{
|
|
}
|
|
else if(isdefined(param_03))
|
|
{
|
|
}
|
|
else if(isdefined(param_02))
|
|
{
|
|
flag_wait_either(param_01,param_02);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
return;
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
var_07 = 0;
|
|
while(var_07 < var_7B.size)
|
|
{
|
|
if(flag(var_7B[var_07]))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_07++ = var_7B[var_7B.size];
|
|
}
|
|
|
|
level waittill_any(param_01,param_02,param_03,param_04,param_05,var_06);
|
|
}
|
|
}
|
|
|
|
//Function Number: 72
|
|
flag_wait_any_return(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
var_05 = [];
|
|
if(isdefined(param_04))
|
|
{
|
|
}
|
|
else if(isdefined(param_04))
|
|
{
|
|
}
|
|
else if(isdefined(param_03))
|
|
{
|
|
}
|
|
else if(isdefined(param_02))
|
|
{
|
|
var_06 = flag_wait_either_return(param_01,param_02);
|
|
return var_06;
|
|
}
|
|
else
|
|
{
|
|
return;
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
var_07 = 0;
|
|
while(var_07 < var_06.size)
|
|
{
|
|
if(flag(var_06[var_07]))
|
|
{
|
|
return var_06[var_07];
|
|
}
|
|
|
|
var_07++ = var_7B[var_7B.size];
|
|
}
|
|
|
|
var_06 = level waittill_any_return(param_02,param_03,param_04,var_05,var_7B);
|
|
return var_07;
|
|
}
|
|
}
|
|
|
|
//Function Number: 73
|
|
flag_wait_all(param_00,param_01,param_02,param_03)
|
|
{
|
|
if(isdefined(param_00))
|
|
{
|
|
flag_wait(param_00);
|
|
}
|
|
|
|
if(isdefined(param_01))
|
|
{
|
|
flag_wait(param_01);
|
|
}
|
|
|
|
if(isdefined(param_02))
|
|
{
|
|
flag_wait(param_02);
|
|
}
|
|
|
|
if(isdefined(param_03))
|
|
{
|
|
flag_wait(param_03);
|
|
}
|
|
}
|
|
|
|
//Function Number: 74
|
|
flag_wait_or_timeout(param_00,param_01)
|
|
{
|
|
var_02 = param_01 * 1000;
|
|
var_03 = gettime();
|
|
for(;;)
|
|
{
|
|
if(flag(param_00))
|
|
{
|
|
break;
|
|
}
|
|
|
|
if(gettime() >= var_03 + var_02)
|
|
{
|
|
break;
|
|
}
|
|
|
|
var_04 = var_02 - gettime() - var_03;
|
|
var_05 = var_04 / 1000;
|
|
wait_for_flag_or_time_elapses(param_00,var_05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 75
|
|
flag_waitopen_or_timeout(param_00,param_01)
|
|
{
|
|
var_02 = gettime();
|
|
for(;;)
|
|
{
|
|
if(!flag(param_00))
|
|
{
|
|
break;
|
|
}
|
|
|
|
if(gettime() >= var_02 + param_01 * 1000)
|
|
{
|
|
break;
|
|
}
|
|
|
|
wait_for_flag_or_time_elapses(param_00,param_01);
|
|
}
|
|
}
|
|
|
|
//Function Number: 76
|
|
wait_for_flag_or_time_elapses(param_00,param_01)
|
|
{
|
|
level endon(param_00);
|
|
wait param_01;
|
|
}
|
|
|
|
//Function Number: 77
|
|
delaycall(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
|
|
{
|
|
thread delaycall_proc(param_01,param_00,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09);
|
|
}
|
|
|
|
//Function Number: 78
|
|
delaycall_proc(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
|
|
{
|
|
if(issp())
|
|
{
|
|
self endon("death");
|
|
}
|
|
|
|
wait param_01;
|
|
if(isdefined(param_09))
|
|
{
|
|
self [[ param_00 ]](param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09);
|
|
return;
|
|
}
|
|
|
|
if(isdefined(param_08))
|
|
{
|
|
self [[ param_00 ]](param_02,param_03,param_04,param_05,param_06,param_07,param_08);
|
|
return;
|
|
}
|
|
|
|
if(isdefined(param_07))
|
|
{
|
|
self [[ param_00 ]](param_02,param_03,param_04,param_05,param_06,param_07);
|
|
return;
|
|
}
|
|
|
|
if(isdefined(param_06))
|
|
{
|
|
self [[ param_00 ]](param_02,param_03,param_04,param_05,param_06);
|
|
return;
|
|
}
|
|
|
|
if(isdefined(param_05))
|
|
{
|
|
self [[ param_00 ]](param_02,param_03,param_04,param_05);
|
|
return;
|
|
}
|
|
|
|
if(isdefined(param_04))
|
|
{
|
|
self [[ param_00 ]](param_02,param_03,param_04);
|
|
return;
|
|
}
|
|
|
|
if(isdefined(param_03))
|
|
{
|
|
self [[ param_00 ]](param_02,param_03);
|
|
return;
|
|
}
|
|
|
|
if(isdefined(param_02))
|
|
{
|
|
self [[ param_00 ]](param_02);
|
|
return;
|
|
}
|
|
|
|
self [[ param_00 ]]();
|
|
}
|
|
|
|
//Function Number: 79
|
|
noself_delaycall(param_00,param_01,param_02,param_03,param_04,param_05)
|
|
{
|
|
thread noself_delaycall_proc(param_01,param_00,param_02,param_03,param_04,param_05);
|
|
}
|
|
|
|
//Function Number: 80
|
|
noself_delaycall_proc(param_00,param_01,param_02,param_03,param_04,param_05)
|
|
{
|
|
wait param_01;
|
|
if(isdefined(param_05))
|
|
{
|
|
[[ param_00 ]](param_02,param_03,param_04,param_05);
|
|
return;
|
|
}
|
|
|
|
if(isdefined(param_04))
|
|
{
|
|
[[ param_00 ]](param_02,param_03,param_04);
|
|
return;
|
|
}
|
|
|
|
if(isdefined(param_03))
|
|
{
|
|
[[ param_00 ]](param_02,param_03);
|
|
return;
|
|
}
|
|
|
|
if(isdefined(param_02))
|
|
{
|
|
[[ param_00 ]](param_02);
|
|
return;
|
|
}
|
|
|
|
[[ param_00 ]]();
|
|
}
|
|
|
|
//Function Number: 81
|
|
issp()
|
|
{
|
|
if(!isdefined(level.issp))
|
|
{
|
|
level.issp = !string_starts_with(getdvar("mapname"),"mp_");
|
|
}
|
|
|
|
return level.issp;
|
|
}
|
|
|
|
//Function Number: 82
|
|
issp_towerdefense()
|
|
{
|
|
if(!isdefined(level.issp_towerdefense))
|
|
{
|
|
level.issp_towerdefense = string_starts_with(getdvar("mapname"),"so_td_");
|
|
}
|
|
|
|
return level.issp_towerdefense;
|
|
}
|
|
|
|
//Function Number: 83
|
|
string_starts_with(param_00,param_01)
|
|
{
|
|
if(param_00.size < param_01.size)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
for(var_02 = 0;var_02 < param_01.size;var_02++)
|
|
{
|
|
if(tolower(param_00[var_02]) != tolower(param_01[var_02]))
|
|
{
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 84
|
|
plot_points(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
var_05 = param_00[0];
|
|
if(!isdefined(param_01))
|
|
{
|
|
param_01 = 1;
|
|
}
|
|
|
|
if(!isdefined(param_02))
|
|
{
|
|
param_02 = 1;
|
|
}
|
|
|
|
if(!isdefined(param_03))
|
|
{
|
|
param_03 = 1;
|
|
}
|
|
|
|
if(!isdefined(param_04))
|
|
{
|
|
param_04 = 0.05;
|
|
}
|
|
|
|
for(var_06 = 1;var_06 < param_00.size;var_06++)
|
|
{
|
|
thread draw_line_for_time(var_05,param_00[var_06],param_01,param_02,param_03,param_04);
|
|
var_05 = param_00[var_06];
|
|
}
|
|
}
|
|
|
|
//Function Number: 85
|
|
draw_line_for_time(param_00,param_01,param_02,param_03,param_04,param_05)
|
|
{
|
|
param_05 = gettime() + param_05 * 1000;
|
|
while(gettime() < param_05)
|
|
{
|
|
wait 0.05;
|
|
}
|
|
}
|
|
|
|
//Function Number: 86
|
|
array_combine(param_00,param_01)
|
|
{
|
|
var_02 = [];
|
|
foreach(var_04 in param_00)
|
|
{
|
|
var_02[var_02.size] = var_04;
|
|
}
|
|
|
|
foreach(var_04 in param_01)
|
|
{
|
|
var_02[var_02.size] = var_04;
|
|
}
|
|
|
|
return var_02;
|
|
}
|
|
|
|
//Function Number: 87
|
|
flat_angle(param_00)
|
|
{
|
|
var_01 = (0,param_00[1],0);
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 88
|
|
flat_origin(param_00)
|
|
{
|
|
var_01 = (param_00[0],param_00[1],0);
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 89
|
|
draw_arrow_time(param_00,param_01,param_02,param_03)
|
|
{
|
|
level endon("newpath");
|
|
var_04 = [];
|
|
var_05 = vectortoangles(param_00 - param_01);
|
|
var_06 = anglestoright(var_05);
|
|
var_07 = anglestoforward(var_05);
|
|
var_08 = anglestoup(var_05);
|
|
var_09 = distance(param_00,param_01);
|
|
var_0A = [];
|
|
var_0B = 0.1;
|
|
var_0A[0] = param_00;
|
|
var_0A[1] = param_00 + var_06 * var_09 * var_0B + var_07 * var_09 * -0.1;
|
|
var_0A[2] = param_01;
|
|
var_0A[3] = param_00 + var_06 * var_09 * -1 * var_0B + var_07 * var_09 * -0.1;
|
|
var_0A[4] = param_00;
|
|
var_0A[5] = param_00 + var_08 * var_09 * var_0B + var_07 * var_09 * -0.1;
|
|
var_0A[6] = param_01;
|
|
var_0A[7] = param_00 + var_08 * var_09 * -1 * var_0B + var_07 * var_09 * -0.1;
|
|
var_0A[8] = param_00;
|
|
var_0C = param_02[0];
|
|
var_0D = param_02[1];
|
|
var_0E = param_02[2];
|
|
plot_points(var_0A,var_0C,var_0D,var_0E,param_03);
|
|
}
|
|
|
|
//Function Number: 90
|
|
get_linked_ents()
|
|
{
|
|
var_00 = [];
|
|
if(isdefined(self.script_linkto))
|
|
{
|
|
var_01 = get_links();
|
|
foreach(var_03 in var_01)
|
|
{
|
|
var_04 = getentarray(var_03,"script_linkname");
|
|
if(var_04.size > 0)
|
|
{
|
|
var_00 = array_combine(var_00,var_04);
|
|
}
|
|
}
|
|
}
|
|
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 91
|
|
get_linked_vehicle_nodes()
|
|
{
|
|
var_00 = [];
|
|
if(isdefined(self.script_linkto))
|
|
{
|
|
var_01 = get_links();
|
|
foreach(var_03 in var_01)
|
|
{
|
|
var_04 = getvehiclenodearray(var_03,"script_linkname");
|
|
if(var_04.size > 0)
|
|
{
|
|
var_00 = array_combine(var_00,var_04);
|
|
}
|
|
}
|
|
}
|
|
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 92
|
|
get_linked_ent()
|
|
{
|
|
var_00 = get_linked_ents();
|
|
return var_00[0];
|
|
}
|
|
|
|
//Function Number: 93
|
|
get_linked_vehicle_node()
|
|
{
|
|
var_00 = get_linked_vehicle_nodes();
|
|
return var_00[0];
|
|
}
|
|
|
|
//Function Number: 94
|
|
get_links()
|
|
{
|
|
return strtok(self.script_linkto," ");
|
|
}
|
|
|
|
//Function Number: 95
|
|
run_thread_on_targetname(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
var_05 = getentarray(param_00,"targetname");
|
|
array_thread(var_05,param_01,param_02,param_03,param_04);
|
|
var_05 = getstructarray(param_00,"targetname");
|
|
array_thread(var_05,param_01,param_02,param_03,param_04);
|
|
var_05 = [[ level.getnodearrayfunction ]](param_00,"targetname");
|
|
array_thread(var_05,param_01,param_02,param_03,param_04);
|
|
var_05 = getvehiclenodearray(param_00,"targetname");
|
|
array_thread(var_05,param_01,param_02,param_03,param_04);
|
|
}
|
|
|
|
//Function Number: 96
|
|
run_thread_on_noteworthy(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
var_05 = getentarray(param_00,"script_noteworthy");
|
|
array_thread(var_05,param_01,param_02,param_03,param_04);
|
|
var_05 = getstructarray(param_00,"script_noteworthy");
|
|
array_thread(var_05,param_01,param_02,param_03,param_04);
|
|
var_05 = [[ level.getnodearrayfunction ]](param_00,"script_noteworthy");
|
|
array_thread(var_05,param_01,param_02,param_03,param_04);
|
|
var_05 = getvehiclenodearray(param_00,"script_noteworthy");
|
|
array_thread(var_05,param_01,param_02,param_03,param_04);
|
|
}
|
|
|
|
//Function Number: 97
|
|
draw_arrow(param_00,param_01,param_02)
|
|
{
|
|
level endon("newpath");
|
|
var_03 = [];
|
|
var_04 = vectortoangles(param_00 - param_01);
|
|
var_05 = anglestoright(var_04);
|
|
var_06 = anglestoforward(var_04);
|
|
var_07 = distance(param_00,param_01);
|
|
var_08 = [];
|
|
var_09 = 0.05;
|
|
var_08[0] = param_00;
|
|
var_08[1] = param_00 + var_05 * var_07 * var_09 + var_06 * var_07 * -0.2;
|
|
var_08[2] = param_01;
|
|
var_08[3] = param_00 + var_05 * var_07 * -1 * var_09 + var_06 * var_07 * -0.2;
|
|
for(var_0A = 0;var_0A < 4;var_0A++)
|
|
{
|
|
var_0B = var_0A + 1;
|
|
if(var_0B >= 4)
|
|
{
|
|
var_0B = 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 98
|
|
getfx(param_00)
|
|
{
|
|
return level._effect[param_00];
|
|
}
|
|
|
|
//Function Number: 99
|
|
fxexists(param_00)
|
|
{
|
|
return isdefined(level._effect[param_00]);
|
|
}
|
|
|
|
//Function Number: 100
|
|
print_csv_asset(param_00,param_01)
|
|
{
|
|
var_02 = param_01 + "," + param_00;
|
|
if(isdefined(level.var_924[var_02]))
|
|
{
|
|
return;
|
|
}
|
|
|
|
level.var_924[var_02] = 1;
|
|
}
|
|
|
|
//Function Number: 101
|
|
fileprint_csv_start(param_00)
|
|
{
|
|
}
|
|
|
|
//Function Number: 102
|
|
_loadfx(param_00)
|
|
{
|
|
return loadfx(param_00);
|
|
}
|
|
|
|
//Function Number: 103
|
|
getlastweapon()
|
|
{
|
|
return self.saved_lastweapon;
|
|
}
|
|
|
|
//Function Number: 104
|
|
playerunlimitedammothread()
|
|
{
|
|
}
|
|
|
|
//Function Number: 105
|
|
isusabilityenabled()
|
|
{
|
|
return !self.disabledusability;
|
|
}
|
|
|
|
//Function Number: 106
|
|
_disableusability()
|
|
{
|
|
self.disabledusability++;
|
|
self disableusability();
|
|
}
|
|
|
|
//Function Number: 107
|
|
_enableusability()
|
|
{
|
|
self.disabledusability--;
|
|
if(!self.disabledusability)
|
|
{
|
|
self enableusability();
|
|
}
|
|
}
|
|
|
|
//Function Number: 108
|
|
resetusability()
|
|
{
|
|
self.disabledusability = 0;
|
|
self enableusability();
|
|
}
|
|
|
|
//Function Number: 109
|
|
_disableweapon()
|
|
{
|
|
self.disabledweapon++;
|
|
self disableweapons();
|
|
}
|
|
|
|
//Function Number: 110
|
|
_enableweapon()
|
|
{
|
|
self.disabledweapon--;
|
|
if(!self.disabledweapon)
|
|
{
|
|
self enableweapons();
|
|
}
|
|
}
|
|
|
|
//Function Number: 111
|
|
isweaponenabled()
|
|
{
|
|
return !self.disabledweapon;
|
|
}
|
|
|
|
//Function Number: 112
|
|
_disableweaponswitch()
|
|
{
|
|
self.disabledweaponswitch++;
|
|
self disableweaponswitch();
|
|
}
|
|
|
|
//Function Number: 113
|
|
_enableweaponswitch()
|
|
{
|
|
self.disabledweaponswitch--;
|
|
if(!self.disabledweaponswitch)
|
|
{
|
|
self enableweaponswitch();
|
|
}
|
|
}
|
|
|
|
//Function Number: 114
|
|
isweaponswitchenabled()
|
|
{
|
|
return !self.disabledweaponswitch;
|
|
}
|
|
|
|
//Function Number: 115
|
|
_disableoffhandweapons()
|
|
{
|
|
self.disabledoffhandweapons++;
|
|
self disableoffhandweapons();
|
|
}
|
|
|
|
//Function Number: 116
|
|
_enableoffhandweapons()
|
|
{
|
|
self.disabledoffhandweapons--;
|
|
if(!self.disabledoffhandweapons)
|
|
{
|
|
self enableoffhandweapons();
|
|
}
|
|
}
|
|
|
|
//Function Number: 117
|
|
isoffhandweaponenabled()
|
|
{
|
|
return !self.disabledoffhandweapons;
|
|
}
|
|
|
|
//Function Number: 118
|
|
random(param_00)
|
|
{
|
|
var_01 = [];
|
|
foreach(var_03 in param_00)
|
|
{
|
|
var_01[var_01.size] = var_03;
|
|
}
|
|
|
|
if(!var_01.size)
|
|
{
|
|
return undefined;
|
|
}
|
|
|
|
return var_01[randomint(var_01.size)];
|
|
}
|
|
|
|
//Function Number: 119
|
|
spawn_tag_origin()
|
|
{
|
|
var_00 = spawn("script_model",(0,0,0));
|
|
var_00 setmodel("tag_origin");
|
|
var_00 hide();
|
|
if(isdefined(self.origin))
|
|
{
|
|
var_00.origin = self.origin;
|
|
}
|
|
|
|
if(isdefined(self.angles))
|
|
{
|
|
var_00.angles = self.angles;
|
|
}
|
|
|
|
return var_00;
|
|
}
|
|
|
|
//Function Number: 120
|
|
waittill_notify_or_timeout(param_00,param_01)
|
|
{
|
|
self endon(param_00);
|
|
wait param_01;
|
|
}
|
|
|
|
//Function Number: 121
|
|
fileprint_launcher_start_file()
|
|
{
|
|
level.var_93E = 0;
|
|
level.fileprint_launcher = 1;
|
|
fileprint_launcher("GAMEPRINTSTARTFILE:");
|
|
}
|
|
|
|
//Function Number: 122
|
|
fileprint_launcher(param_00)
|
|
{
|
|
level.var_93E++;
|
|
if(level.var_93E > 200)
|
|
{
|
|
wait 0.05;
|
|
level.var_93E = 0;
|
|
}
|
|
}
|
|
|
|
//Function Number: 123
|
|
fileprint_launcher_end_file(param_00,param_01)
|
|
{
|
|
if(!isdefined(param_01))
|
|
{
|
|
param_01 = 0;
|
|
}
|
|
|
|
if(param_01)
|
|
{
|
|
fileprint_launcher("GAMEPRINTENDFILE:GAMEPRINTP4ENABLED:" + param_00);
|
|
}
|
|
else
|
|
{
|
|
fileprint_launcher("GAMEPRINTENDFILE:" + param_00);
|
|
}
|
|
|
|
var_02 = gettime() + 4000;
|
|
while(getdvarint("LAUNCHER_PRINT_SUCCESS") == 0 && getdvar("LAUNCHER_PRINT_FAIL") == "0" && gettime() < var_02)
|
|
{
|
|
wait 0.05;
|
|
}
|
|
|
|
if(!gettime() < var_02)
|
|
{
|
|
iprintlnbold("LAUNCHER_PRINT_FAIL:( TIMEOUT ): launcherconflict? restart launcher and try again? ");
|
|
level.fileprint_launcher = undefined;
|
|
return 0;
|
|
}
|
|
|
|
var_03 = getdvar("LAUNCHER_PRINT_FAIL");
|
|
if(var_03 != "0")
|
|
{
|
|
iprintlnbold("LAUNCHER_PRINT_FAIL:( " + var_03 + " ): launcherconflict? restart launcher and try again? ");
|
|
level.fileprint_launcher = undefined;
|
|
return 0;
|
|
}
|
|
|
|
level.fileprint_launcher = undefined;
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 124
|
|
launcher_write_clipboard(param_00)
|
|
{
|
|
level.var_93E = 0;
|
|
fileprint_launcher("LAUNCHER_CLIP:" + param_00);
|
|
}
|
|
|
|
//Function Number: 125
|
|
isdestructible()
|
|
{
|
|
if(!isdefined(self))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return isdefined(self.destructible_type);
|
|
}
|
|
|
|
//Function Number: 126
|
|
pauseeffect()
|
|
{
|
|
common_scripts\_createfx::stop_fx_looper();
|
|
}
|
|
|
|
//Function Number: 127
|
|
activate_individual_exploder()
|
|
{
|
|
if(isdefined(self.v["firefx"]))
|
|
{
|
|
thread fire_effect();
|
|
}
|
|
|
|
if(isdefined(self.v["fxid"]) && self.v["fxid"] != "No FX")
|
|
{
|
|
thread cannon_effect();
|
|
}
|
|
else if(isdefined(self.v["soundalias"]) && self.v["soundalias"] != "nil")
|
|
{
|
|
thread sound_effect();
|
|
}
|
|
|
|
if(isdefined(self.v["loopsound"]) && self.v["loopsound"] != "nil")
|
|
{
|
|
thread effect_loopsound();
|
|
}
|
|
|
|
if(isdefined(self.v["damage"]))
|
|
{
|
|
thread exploder_damage();
|
|
}
|
|
|
|
if(isdefined(self.v["earthquake"]))
|
|
{
|
|
thread exploder_earthquake();
|
|
}
|
|
|
|
if(isdefined(self.v["rumble"]))
|
|
{
|
|
thread exploder_rumble();
|
|
}
|
|
|
|
if(self.v["exploder_type"] == "exploder")
|
|
{
|
|
thread brush_show();
|
|
return;
|
|
}
|
|
|
|
if(self.v["exploder_type"] == "exploderchunk" || self.v["exploder_type"] == "exploderchunk visible")
|
|
{
|
|
thread brush_throw();
|
|
return;
|
|
}
|
|
|
|
thread brush_delete();
|
|
}
|
|
|
|
//Function Number: 128
|
|
waitframe()
|
|
{
|
|
wait 0.05;
|
|
}
|
|
|
|
//Function Number: 129
|
|
brush_delete()
|
|
{
|
|
var_00 = self.v["exploder"];
|
|
if(isdefined(self.v["delay"]))
|
|
{
|
|
wait self.v["delay"];
|
|
}
|
|
else
|
|
{
|
|
wait 0.05;
|
|
}
|
|
|
|
if(!isdefined(self.model))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(isdefined(self.model.classname))
|
|
{
|
|
if(issp() && self.model.spawnflags & 1)
|
|
{
|
|
self.model [[ level.connectpathsfunction ]]();
|
|
}
|
|
}
|
|
|
|
if(level.createfx_enabled)
|
|
{
|
|
if(isdefined(self.var_946))
|
|
{
|
|
return;
|
|
}
|
|
|
|
self.var_946 = 1;
|
|
self.model hide();
|
|
self.model notsolid();
|
|
wait 3;
|
|
self.var_946 = undefined;
|
|
self.model show();
|
|
self.model solid();
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(self.v["fxid"]) || self.v["fxid"] == "No FX")
|
|
{
|
|
self.v["exploder"] = undefined;
|
|
}
|
|
|
|
waittillframeend;
|
|
if(isdefined(self.model) && isdefined(self.model.classname))
|
|
{
|
|
self.model delete();
|
|
}
|
|
}
|
|
|
|
//Function Number: 130
|
|
brush_throw()
|
|
{
|
|
if(isdefined(self.v["delay"]))
|
|
{
|
|
wait self.v["delay"];
|
|
}
|
|
|
|
var_00 = undefined;
|
|
if(isdefined(self.v["target"]))
|
|
{
|
|
var_00 = get_target_ent(self.v["target"]);
|
|
}
|
|
|
|
if(!isdefined(var_00))
|
|
{
|
|
self.model delete();
|
|
return;
|
|
}
|
|
|
|
self.model show();
|
|
if(isdefined(self.v["delay_post"]))
|
|
{
|
|
wait self.v["delay_post"];
|
|
}
|
|
|
|
var_01 = self.v["origin"];
|
|
var_02 = self.v["angles"];
|
|
var_03 = var_00.origin;
|
|
var_04 = var_03 - self.v["origin"];
|
|
var_05 = var_04[0];
|
|
var_06 = var_04[1];
|
|
var_07 = var_04[2];
|
|
var_08 = isdefined(self.v["physics"]);
|
|
if(var_08)
|
|
{
|
|
var_09 = undefined;
|
|
if(isdefined(var_00.target))
|
|
{
|
|
var_09 = var_00 get_target_ent();
|
|
}
|
|
|
|
if(!isdefined(var_09))
|
|
{
|
|
var_0A = var_01;
|
|
var_0B = var_00.origin;
|
|
}
|
|
else
|
|
{
|
|
var_0A = var_02.origin;
|
|
var_0B = var_0A.origin - var_01.origin * self.v["physics"];
|
|
}
|
|
|
|
self.model physicslaunchclient(var_0A,var_0B);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
self.model rotatevelocity((var_08,var_09,var_0A),12);
|
|
self.model movegravity((var_08,var_09,var_0A),12);
|
|
}
|
|
|
|
if(level.createfx_enabled)
|
|
{
|
|
if(isdefined(self.var_946))
|
|
{
|
|
return;
|
|
}
|
|
|
|
self.var_946 = 1;
|
|
wait 3;
|
|
self.var_946 = undefined;
|
|
self.v["origin"] = var_04;
|
|
self.v["angles"] = var_05;
|
|
self.model hide();
|
|
return;
|
|
}
|
|
|
|
self.v["exploder"] = undefined;
|
|
wait 6;
|
|
self.model delete();
|
|
}
|
|
|
|
//Function Number: 131
|
|
get_target_ent(param_00)
|
|
{
|
|
if(!isdefined(param_00))
|
|
{
|
|
param_00 = self.target;
|
|
}
|
|
|
|
var_01 = getent(param_00,"targetname");
|
|
if(isdefined(var_01))
|
|
{
|
|
return var_01;
|
|
}
|
|
|
|
if(issp())
|
|
{
|
|
var_01 = [[ level.getnodefunction ]](param_00,"targetname");
|
|
if(isdefined(var_01))
|
|
{
|
|
return var_01;
|
|
}
|
|
}
|
|
|
|
var_01 = getstruct(param_00,"targetname");
|
|
if(isdefined(var_01))
|
|
{
|
|
return var_01;
|
|
}
|
|
|
|
var_01 = getvehiclenode(param_00,"targetname");
|
|
if(isdefined(var_01))
|
|
{
|
|
return var_01;
|
|
}
|
|
}
|
|
|
|
//Function Number: 132
|
|
brush_show()
|
|
{
|
|
if(isdefined(self.v["delay"]))
|
|
{
|
|
wait self.v["delay"];
|
|
}
|
|
|
|
if(!isdefined(self.model.script_modelname))
|
|
{
|
|
self.model show();
|
|
self.model solid();
|
|
}
|
|
else
|
|
{
|
|
var_00 = self.model spawn_tag_origin();
|
|
if(isdefined(self.model.script_linkname))
|
|
{
|
|
var_00.script_linkname = self.model.script_linkname;
|
|
}
|
|
|
|
var_00 setmodel(self.model.script_modelname);
|
|
var_00 show();
|
|
}
|
|
|
|
self.brush_shown = 1;
|
|
if(issp() && !isdefined(self.model.script_modelname) && self.model.spawnflags & 1)
|
|
{
|
|
if(!isdefined(self.model.disconnect_paths))
|
|
{
|
|
self.model [[ level.connectpathsfunction ]]();
|
|
}
|
|
else
|
|
{
|
|
self.model [[ level.disconnectpathsfunction ]]();
|
|
}
|
|
}
|
|
|
|
if(level.createfx_enabled)
|
|
{
|
|
if(isdefined(self.var_946))
|
|
{
|
|
return;
|
|
}
|
|
|
|
self.var_946 = 1;
|
|
wait 3;
|
|
self.var_946 = undefined;
|
|
if(!isdefined(self.model.script_modelname))
|
|
{
|
|
self.model hide();
|
|
self.model notsolid();
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 133
|
|
exploder_earthquake()
|
|
{
|
|
exploder_delay();
|
|
do_earthquake(self.v["earthquake"],self.v["origin"]);
|
|
}
|
|
|
|
//Function Number: 134
|
|
do_earthquake(param_00,param_01)
|
|
{
|
|
var_02 = level.earthquake[param_00];
|
|
earthquake(var_02["magnitude"],var_02["duration"],param_01,var_02["radius"]);
|
|
}
|
|
|
|
//Function Number: 135
|
|
exploder_rumble()
|
|
{
|
|
if(!issp())
|
|
{
|
|
return;
|
|
}
|
|
|
|
exploder_delay();
|
|
level.player playrumbleonentity(self.v["rumble"]);
|
|
}
|
|
|
|
//Function Number: 136
|
|
exploder_delay()
|
|
{
|
|
if(!isdefined(self.v["delay"]))
|
|
{
|
|
self.v["delay"] = 0;
|
|
}
|
|
|
|
var_00 = self.v["delay"];
|
|
var_01 = self.v["delay"] + 0.001;
|
|
if(isdefined(self.v["delay_min"]))
|
|
{
|
|
var_00 = self.v["delay_min"];
|
|
}
|
|
|
|
if(isdefined(self.v["delay_max"]))
|
|
{
|
|
var_01 = self.v["delay_max"];
|
|
}
|
|
|
|
if(var_00 > 0)
|
|
{
|
|
wait randomfloatrange(var_00,var_01);
|
|
}
|
|
}
|
|
|
|
//Function Number: 137
|
|
exploder_damage()
|
|
{
|
|
if(isdefined(self.v["delay"]))
|
|
{
|
|
var_00 = self.v["delay"];
|
|
}
|
|
else
|
|
{
|
|
var_00 = 0;
|
|
}
|
|
|
|
if(isdefined(self.v["damage_radius"]))
|
|
{
|
|
var_01 = self.v["damage_radius"];
|
|
}
|
|
else
|
|
{
|
|
var_01 = 128;
|
|
}
|
|
|
|
var_02 = self.v["damage"];
|
|
var_03 = self.v["origin"];
|
|
wait var_00;
|
|
radiusdamage(var_03,var_01,var_02,var_02);
|
|
}
|
|
|
|
//Function Number: 138
|
|
effect_loopsound()
|
|
{
|
|
if(isdefined(self.var_956))
|
|
{
|
|
self.var_956 delete();
|
|
}
|
|
|
|
var_00 = self.v["origin"];
|
|
var_01 = self.v["loopsound"];
|
|
exploder_delay();
|
|
self.var_956 = play_loopsound_in_space(var_01,var_00);
|
|
}
|
|
|
|
//Function Number: 139
|
|
play_loopsound_in_space(param_00,param_01)
|
|
{
|
|
var_02 = spawn("script_origin",(0,0,0));
|
|
if(!isdefined(param_01))
|
|
{
|
|
param_01 = self.origin;
|
|
}
|
|
|
|
var_02.origin = param_01;
|
|
var_02 playloopsound(param_00);
|
|
return var_02;
|
|
}
|
|
|
|
//Function Number: 140
|
|
sound_effect()
|
|
{
|
|
effect_soundalias();
|
|
}
|
|
|
|
//Function Number: 141
|
|
effect_soundalias()
|
|
{
|
|
var_00 = self.v["origin"];
|
|
var_01 = self.v["soundalias"];
|
|
exploder_delay();
|
|
play_sound_in_space(var_01,var_00);
|
|
}
|
|
|
|
//Function Number: 142
|
|
play_sound_in_space(param_00,param_01,param_02)
|
|
{
|
|
var_03 = spawn("script_origin",(0,0,1));
|
|
if(!isdefined(param_01))
|
|
{
|
|
param_01 = self.origin;
|
|
}
|
|
|
|
var_03.origin = param_01;
|
|
if(issp())
|
|
{
|
|
if(isdefined(param_02) && param_02)
|
|
{
|
|
var_03 playsoundasmaster(param_00,"sounddone");
|
|
}
|
|
else
|
|
{
|
|
var_03 playsound(param_00,"sounddone");
|
|
}
|
|
}
|
|
else if(isdefined(param_02) && param_02)
|
|
{
|
|
var_03 playsoundasmaster(param_00);
|
|
}
|
|
else
|
|
{
|
|
var_03 playsound(param_00);
|
|
}
|
|
|
|
var_03 waittill("sounddone");
|
|
var_03 delete();
|
|
}
|
|
|
|
//Function Number: 143
|
|
cannon_effect()
|
|
{
|
|
if(isdefined(self.v["repeat"]))
|
|
{
|
|
thread exploder_playsound();
|
|
for(var_00 = 0;var_00 < self.v["repeat"];var_00++)
|
|
{
|
|
playfx(level._effect[self.v["fxid"]],self.v["origin"],self.v["forward"],self.v["up"]);
|
|
exploder_delay();
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
exploder_delay();
|
|
if(isdefined(self.looper))
|
|
{
|
|
self.looper delete();
|
|
}
|
|
|
|
self.looper = spawnfx(getfx(self.v["fxid"]),self.v["origin"],self.v["forward"],self.v["up"]);
|
|
triggerfx(self.looper);
|
|
exploder_playsound();
|
|
}
|
|
|
|
//Function Number: 144
|
|
exploder_playsound()
|
|
{
|
|
if(!isdefined(self.v["soundalias"]) || self.v["soundalias"] == "nil")
|
|
{
|
|
return;
|
|
}
|
|
|
|
play_sound_in_space(self.v["soundalias"],self.v["origin"]);
|
|
}
|
|
|
|
//Function Number: 145
|
|
fire_effect()
|
|
{
|
|
var_00 = self.v["forward"];
|
|
var_01 = self.v["up"];
|
|
var_02 = undefined;
|
|
var_03 = self.v["firefxsound"];
|
|
var_04 = self.v["origin"];
|
|
var_05 = self.v["firefx"];
|
|
var_06 = self.v["ender"];
|
|
if(!isdefined(var_06))
|
|
{
|
|
var_06 = "createfx_effectStopper";
|
|
}
|
|
|
|
var_07 = self.v["firefxtimeout"];
|
|
var_08 = 0.5;
|
|
if(isdefined(self.v["firefxdelay"]))
|
|
{
|
|
var_08 = self.v["firefxdelay"];
|
|
}
|
|
|
|
exploder_delay();
|
|
if(isdefined(var_03))
|
|
{
|
|
level thread loop_fx_sound(var_03,var_04,1,var_06,var_07);
|
|
}
|
|
|
|
playfx(level._effect[var_05],self.v["origin"],var_00,var_01);
|
|
}
|
|
|
|
//Function Number: 146
|
|
loop_fx_sound(param_00,param_01,param_02,param_03,param_04)
|
|
{
|
|
if(isdefined(param_02) && param_02 == 1)
|
|
{
|
|
if(!isdefined(level.first_frame) || level.first_frame == 1)
|
|
{
|
|
spawnloopingsound(param_00,param_01);
|
|
return;
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
var_05 = spawn("script_origin",(0,0,0));
|
|
if(isdefined(param_03))
|
|
{
|
|
thread loop_sound_delete(param_03,var_05);
|
|
self endon(param_03);
|
|
}
|
|
|
|
var_05.origin = param_01;
|
|
var_05 playloopsound(param_00);
|
|
var_06 = 0;
|
|
if(isdefined(level.createfx_enabled))
|
|
{
|
|
var_06 = level.createfx_enabled;
|
|
}
|
|
|
|
if(!isdefined(param_04) && !var_06)
|
|
{
|
|
var_05 willneverchange();
|
|
return;
|
|
}
|
|
|
|
if(isdefined(param_04))
|
|
{
|
|
wait param_04;
|
|
}
|
|
}
|
|
|
|
//Function Number: 147
|
|
loop_fx_sound_interval(param_00,param_01,param_02,param_03,param_04,param_05)
|
|
{
|
|
var_06 = spawn("script_origin",(0,0,0));
|
|
if(isdefined(param_02))
|
|
{
|
|
thread loop_sound_delete(param_02,var_06);
|
|
self endon(param_02);
|
|
}
|
|
|
|
var_06.origin = param_01;
|
|
if(param_04 >= param_05)
|
|
{
|
|
wait 0.05;
|
|
}
|
|
|
|
if(!soundexists(param_00))
|
|
{
|
|
wait 0.05;
|
|
}
|
|
|
|
for(;;)
|
|
{
|
|
lock("createfx_looper");
|
|
thread play_sound_in_space(param_00,var_06.origin);
|
|
eog_newstar("createfx_looper");
|
|
wait randomfloatrange(param_04,param_05);
|
|
}
|
|
}
|
|
|
|
//Function Number: 148
|
|
loop_sound_delete(param_00,param_01)
|
|
{
|
|
param_01 endon("death");
|
|
self waittill(param_00);
|
|
param_01 delete();
|
|
}
|
|
|
|
//Function Number: 149
|
|
exploder_before_load(param_00)
|
|
{
|
|
waittillframeend;
|
|
waittillframeend;
|
|
activate_exploder(param_00);
|
|
}
|
|
|
|
//Function Number: 150
|
|
exploder_after_load(param_00)
|
|
{
|
|
activate_exploder(param_00);
|
|
}
|
|
|
|
//Function Number: 151
|
|
activate_exploder(param_00)
|
|
{
|
|
param_00 = param_00 + "";
|
|
level notify("exploding_" + param_00);
|
|
if(isdefined(level.createfxexploders) && !level.createfx_enabled)
|
|
{
|
|
var_01 = level.createfxexploders[param_00];
|
|
if(isdefined(var_01))
|
|
{
|
|
foreach(var_03 in var_01)
|
|
{
|
|
var_03 activate_individual_exploder();
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
var_05 = 0;
|
|
while(var_03 < level.createfxent.size)
|
|
{
|
|
var_05 = level.createfxent[var_03];
|
|
if(!isdefined(var_05))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(var_05.v["type"] != "exploder")
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(!isdefined(var_05.v["exploder"]))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
if(var_05.v["exploder"] + "" != var_02)
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_05 activate_individual_exploder();
|
|
var_03++;
|
|
}
|
|
}
|
|
|
|
//Function Number: 152
|
|
createloopeffect(param_00)
|
|
{
|
|
var_01 = common_scripts\_createfx::createeffect("loopfx",param_00);
|
|
var_01.v["delay"] = common_scripts\_createfx::getloopeffectdelaydefault();
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 153
|
|
createoneshoteffect(param_00)
|
|
{
|
|
var_01 = common_scripts\_createfx::createeffect("oneshotfx",param_00);
|
|
var_01.v["delay"] = common_scripts\_createfx::getoneshoteffectdelaydefault();
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 154
|
|
createexploder(param_00)
|
|
{
|
|
var_01 = common_scripts\_createfx::createeffect("exploder",param_00);
|
|
var_01.v["delay"] = common_scripts\_createfx::getexploderdelaydefault();
|
|
var_01.v["exploder_type"] = "normal";
|
|
return var_01;
|
|
}
|
|
|
|
//Function Number: 155
|
|
alphabetize(param_00)
|
|
{
|
|
if(param_00.size <= 1)
|
|
{
|
|
return param_00;
|
|
}
|
|
|
|
var_01 = 0;
|
|
for(var_02 = param_00.size - 1;var_02 >= 1;var_02--)
|
|
{
|
|
var_03 = param_00[var_02];
|
|
var_04 = var_02;
|
|
for(var_05 = 0;var_05 < var_02;var_05++)
|
|
{
|
|
var_06 = param_00[var_05];
|
|
if(stricmp(var_06,var_03) > 0)
|
|
{
|
|
var_03 = var_06;
|
|
var_04 = var_05;
|
|
}
|
|
}
|
|
|
|
if(var_04 != var_02)
|
|
{
|
|
param_00[var_04] = param_00[var_02];
|
|
param_00[var_02] = var_03;
|
|
}
|
|
}
|
|
|
|
return param_00;
|
|
}
|
|
|
|
//Function Number: 156
|
|
is_later_in_alphabet(param_00,param_01)
|
|
{
|
|
return stricmp(param_00,param_01) > 0;
|
|
}
|
|
|
|
//Function Number: 157
|
|
alphabet_compare(param_00,param_01)
|
|
{
|
|
var_02 = [];
|
|
var_03 = 1;
|
|
var_02["0"] = var_03;
|
|
var_03++;
|
|
var_02["1"] = var_03;
|
|
var_03++;
|
|
var_02["2"] = var_03;
|
|
var_03++;
|
|
var_02["3"] = var_03;
|
|
var_03++;
|
|
var_02["4"] = var_03;
|
|
var_03++;
|
|
var_02["5"] = var_03;
|
|
var_03++;
|
|
var_02["6"] = var_03;
|
|
var_03++;
|
|
var_02["7"] = var_03;
|
|
var_03++;
|
|
var_02["8"] = var_03;
|
|
var_03++;
|
|
var_02["9"] = var_03;
|
|
var_03++;
|
|
var_02["_"] = var_03;
|
|
var_03++;
|
|
var_02["a"] = var_03;
|
|
var_03++;
|
|
var_02["b"] = var_03;
|
|
var_03++;
|
|
var_02["c"] = var_03;
|
|
var_03++;
|
|
var_02["d"] = var_03;
|
|
var_03++;
|
|
var_02["e"] = var_03;
|
|
var_03++;
|
|
var_02["f"] = var_03;
|
|
var_03++;
|
|
var_02["g"] = var_03;
|
|
var_03++;
|
|
var_02["h"] = var_03;
|
|
var_03++;
|
|
var_02["i"] = var_03;
|
|
var_03++;
|
|
var_02["j"] = var_03;
|
|
var_03++;
|
|
var_02["k"] = var_03;
|
|
var_03++;
|
|
var_02["l"] = var_03;
|
|
var_03++;
|
|
var_02["m"] = var_03;
|
|
var_03++;
|
|
var_02["n"] = var_03;
|
|
var_03++;
|
|
var_02["o"] = var_03;
|
|
var_03++;
|
|
var_02["p"] = var_03;
|
|
var_03++;
|
|
var_02["q"] = var_03;
|
|
var_03++;
|
|
var_02["r"] = var_03;
|
|
var_03++;
|
|
var_02["s"] = var_03;
|
|
var_03++;
|
|
var_02["t"] = var_03;
|
|
var_03++;
|
|
var_02["u"] = var_03;
|
|
var_03++;
|
|
var_02["v"] = var_03;
|
|
var_03++;
|
|
var_02["w"] = var_03;
|
|
var_03++;
|
|
var_02["x"] = var_03;
|
|
var_03++;
|
|
var_02["y"] = var_03;
|
|
var_03++;
|
|
var_02["z"] = var_03;
|
|
var_03++;
|
|
param_00 = tolower(param_00);
|
|
param_01 = tolower(param_01);
|
|
var_04 = 0;
|
|
if(isdefined(var_02[param_00]))
|
|
{
|
|
var_04 = var_02[param_00];
|
|
}
|
|
|
|
var_05 = 0;
|
|
if(isdefined(var_02[param_01]))
|
|
{
|
|
var_05 = var_02[param_01];
|
|
}
|
|
|
|
if(var_04 > var_05)
|
|
{
|
|
return "1st";
|
|
}
|
|
|
|
if(var_04 < var_05)
|
|
{
|
|
return "2nd";
|
|
}
|
|
|
|
return "same";
|
|
}
|
|
|
|
//Function Number: 158
|
|
play_loop_sound_on_entity(param_00,param_01)
|
|
{
|
|
var_02 = spawn("script_origin",(0,0,0));
|
|
var_02 endon("death");
|
|
thread delete_on_death(var_02);
|
|
if(isdefined(param_01))
|
|
{
|
|
var_02.origin = self.origin + param_01;
|
|
var_02.angles = self.angles;
|
|
var_02 linkto(self);
|
|
}
|
|
else
|
|
{
|
|
var_02.origin = self.origin;
|
|
var_02.angles = self.angles;
|
|
var_02 linkto(self);
|
|
}
|
|
|
|
var_02 playloopsound(param_00);
|
|
self waittill("stop sound" + param_00);
|
|
var_02 stoploopsound(param_00);
|
|
var_02 delete();
|
|
}
|
|
|
|
//Function Number: 159
|
|
stop_loop_sound_on_entity(param_00)
|
|
{
|
|
self notify("stop sound" + param_00);
|
|
}
|
|
|
|
//Function Number: 160
|
|
delete_on_death(param_00)
|
|
{
|
|
param_00 endon("death");
|
|
self waittill("death");
|
|
if(isdefined(param_00))
|
|
{
|
|
param_00 delete();
|
|
}
|
|
}
|
|
|
|
//Function Number: 161
|
|
error(param_00)
|
|
{
|
|
waitframe();
|
|
}
|
|
|
|
//Function Number: 162
|
|
exploder(param_00)
|
|
{
|
|
[[ level.var_7CD ]](param_00);
|
|
}
|
|
|
|
//Function Number: 163
|
|
create_dvar(param_00,param_01)
|
|
{
|
|
setdvarifuninitialized(param_00,param_01);
|
|
}
|
|
|
|
//Function Number: 164
|
|
void()
|
|
{
|
|
}
|
|
|
|
//Function Number: 165
|
|
tag_project(param_00,param_01)
|
|
{
|
|
var_02 = self gettagorigin(param_00);
|
|
var_03 = self gettagangles(param_00);
|
|
var_04 = anglestoforward(var_03);
|
|
var_04 = vectornormalize(var_04) * param_01;
|
|
return var_02 + var_04;
|
|
}
|
|
|
|
//Function Number: 166
|
|
ter_op(param_00,param_01,param_02)
|
|
{
|
|
if(param_00)
|
|
{
|
|
return param_01;
|
|
}
|
|
|
|
return param_02;
|
|
}
|
|
|
|
//Function Number: 167
|
|
create_lock(param_00,param_01)
|
|
{
|
|
if(!isdefined(param_01))
|
|
{
|
|
param_01 = 1;
|
|
}
|
|
|
|
if(!isdefined(level.lock))
|
|
{
|
|
level.lock = [];
|
|
}
|
|
|
|
var_02 = spawnstruct();
|
|
var_02.var_96C = param_01;
|
|
var_02.count = 0;
|
|
level.lock[param_00] = var_02;
|
|
}
|
|
|
|
//Function Number: 168
|
|
lock(param_00)
|
|
{
|
|
for(var_01 = level.lock[param_00];var_01.count >= var_01.var_96C;var_01 waittill("unlocked"))
|
|
{
|
|
}
|
|
|
|
var_01.count++;
|
|
}
|
|
|
|
//Function Number: 169
|
|
is_locked(param_00)
|
|
{
|
|
var_01 = level.lock[param_00];
|
|
return var_01.count > var_01.var_96C;
|
|
}
|
|
|
|
//Function Number: 170
|
|
unlock_wait(param_00)
|
|
{
|
|
thread unlock_thread(param_00);
|
|
wait 0.05;
|
|
}
|
|
|
|
//Function Number: 171
|
|
eog_newstar(param_00)
|
|
{
|
|
thread unlock_thread(param_00);
|
|
}
|
|
|
|
//Function Number: 172
|
|
unlock_thread(param_00)
|
|
{
|
|
wait 0.05;
|
|
var_01 = level.lock[param_00];
|
|
var_01.count--;
|
|
var_01 notify("unlocked");
|
|
}
|
|
|
|
//Function Number: 173
|
|
get_template_level()
|
|
{
|
|
var_00 = level.script;
|
|
if(isdefined(level.template_script))
|
|
{
|
|
var_00 = level.template_script;
|
|
}
|
|
|
|
return var_00;
|
|
} |