mirror of
https://github.com/InfinityLoader/IL-GSC.git
synced 2025-06-10 18:27:57 -05:00
614 lines
12 KiB
Plaintext
614 lines
12 KiB
Plaintext
/*******************************************************************
|
|
* Decompiled By: Bog
|
|
* Decompiled File: scripts\cp\_challenge.gsc
|
|
* Game: Call of Duty: Infinite Warfare
|
|
* Platform: PC
|
|
* Function Count: 32
|
|
* Decompile Time: 1076 ms
|
|
* Timestamp: 10/27/2023 12:23:29 AM
|
|
*******************************************************************/
|
|
|
|
//Function Number: 1
|
|
init_coop_challenge()
|
|
{
|
|
func_956D();
|
|
if(!isdefined(level.challenge_scalar_func))
|
|
{
|
|
level.challenge_scalar_func = ::func_4FE2;
|
|
}
|
|
|
|
func_97B0();
|
|
}
|
|
|
|
//Function Number: 2
|
|
func_C9B9()
|
|
{
|
|
[[ level.challenge_pause_func ]]();
|
|
}
|
|
|
|
//Function Number: 3
|
|
func_956D()
|
|
{
|
|
scripts\common\utility::flag_init("pause_challenges");
|
|
var_00 = getdvar("ui_mapname");
|
|
level.var_13F16 = "cp/zombies/" + var_00 + "_challenges.csv";
|
|
if(!tableexists(level.var_13F16))
|
|
{
|
|
level.var_13F16 = undefined;
|
|
}
|
|
|
|
level.var_3C17 = [];
|
|
if(isdefined(level.challenge_registration_func))
|
|
{
|
|
[[ level.challenge_registration_func ]]();
|
|
}
|
|
|
|
level.var_4B4C = -1;
|
|
level.var_4B51 = -1;
|
|
level.var_4B50 = -1;
|
|
level.var_4B4E = -1;
|
|
level.var_4B53 = -1;
|
|
level.var_4B54 = -1;
|
|
level.var_4B52 = -1;
|
|
level.var_4B55 = -1;
|
|
level.var_4B4F = 0;
|
|
level.var_1BE8 = 1;
|
|
level.var_D7B7 = 0;
|
|
level.var_C1E1 = 0;
|
|
level.var_110AC = 0;
|
|
}
|
|
|
|
//Function Number: 4
|
|
func_12D9C(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09)
|
|
{
|
|
if(!func_4B4D(param_00) || !scripts\cp\_utility::func_462B("challenge"))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(level.var_D7B7)
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_0A = level.var_3C17[level.var_4B4A];
|
|
var_0A thread [[ var_0A.var_12E9C ]](param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09);
|
|
}
|
|
|
|
//Function Number: 5
|
|
func_62C6()
|
|
{
|
|
if(func_4B4B() && scripts\cp\_utility::func_462B("challenge"))
|
|
{
|
|
func_4DAE();
|
|
}
|
|
}
|
|
|
|
//Function Number: 6
|
|
func_4DAE()
|
|
{
|
|
if(!func_4B4B())
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_00 = level.var_3C17[level.var_4B4A];
|
|
func_12BF7();
|
|
if(var_00 [[ var_00.var_9F82 ]]())
|
|
{
|
|
func_56AD("challenge_success",0);
|
|
var_00 [[ var_00.var_E4C5 ]]();
|
|
var_01 = "challenge";
|
|
if(isdefined(level.var_3C24))
|
|
{
|
|
var_01 = level.var_3C24;
|
|
}
|
|
|
|
lib_0A54::func_12E13(var_01,"challenge_complete");
|
|
scripts\cp\_persistence::func_12DDB(1);
|
|
scripts\cp\_analytics::func_12D9F(var_00.var_DE3F,1);
|
|
if(func_9F17(var_00))
|
|
{
|
|
if(level.var_4B54 - level.var_110AD <= 0.01)
|
|
{
|
|
scripts\cp\zombies\zombie_analytics::func_AF63(var_00.var_DE3F,level.wave_num,level.var_110AD - level.var_4B54);
|
|
}
|
|
else
|
|
{
|
|
scripts\cp\zombies\zombie_analytics::func_AF63(var_00.var_DE3F,level.wave_num,level.var_4B54);
|
|
}
|
|
|
|
foreach(var_03 in level.players)
|
|
{
|
|
var_03 thread scripts\cp\_vo::try_to_play_vo("challenge_success_generic","zmb_comment_vo");
|
|
}
|
|
|
|
level.var_C1E1++;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
func_56AD("challenge_failed",0);
|
|
if(func_9F17(var_00))
|
|
{
|
|
if(isdefined(level.var_3C2B[var_00.var_DE3F]) && func_9F17(var_00))
|
|
{
|
|
level.var_3C2B[var_00.var_DE3F]++;
|
|
}
|
|
|
|
if(var_00.var_DE3F == "no_laststand" || var_00.var_DE3F == "no_bleedout" || var_00.var_DE3F == "protect_player")
|
|
{
|
|
scripts\cp\zombies\zombie_analytics::func_AF64(var_00.var_DE3F,level.wave_num,0,level.var_3C2B[var_00.var_DE3F]);
|
|
}
|
|
else
|
|
{
|
|
scripts\cp\zombies\zombie_analytics::func_AF64(var_00.var_DE3F,level.wave_num,var_00.var_4BA0 / var_00.var_155 * 100,level.var_3C2B[var_00.var_DE3F]);
|
|
}
|
|
|
|
foreach(var_03 in level.players)
|
|
{
|
|
if(!scripts\cp\_utility::isplayingsolo() && level.players.size > 1)
|
|
{
|
|
scripts\cp\_vo::try_to_play_vo_on_all_players("challenge_fail_team");
|
|
continue;
|
|
}
|
|
|
|
var_03 thread scripts\cp\_vo::try_to_play_vo("challenge_fail_solo","zmb_comment_vo");
|
|
}
|
|
}
|
|
|
|
var_00 [[ var_00.var_6AD0 ]]();
|
|
level.var_1BE8 = 0;
|
|
scripts\cp\_persistence::func_12DDB(0);
|
|
scripts\cp\_analytics::func_12D9F(var_00.var_DE3F,0);
|
|
}
|
|
|
|
level notify("challenge_deactivated");
|
|
var_00 [[ var_00.var_4DDE ]]();
|
|
}
|
|
|
|
//Function Number: 7
|
|
func_9F17(param_00)
|
|
{
|
|
switch(param_00.var_DE3F)
|
|
{
|
|
case "challenge_success":
|
|
case "challenge_failed":
|
|
case "next_challenge":
|
|
return 0;
|
|
|
|
default:
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
//Function Number: 8
|
|
func_15D7(param_00)
|
|
{
|
|
var_01 = level.var_3C17[param_00];
|
|
if(!isdefined(level.var_3C2B[param_00]) && param_00 != "next_challenge")
|
|
{
|
|
level.var_3C2B[param_00] = 0;
|
|
}
|
|
|
|
if(var_01 [[ var_01.var_386E ]]())
|
|
{
|
|
var_02 = func_7897(param_00);
|
|
if(isdefined(var_02))
|
|
{
|
|
level.var_3C17[param_00].var_155 = var_02;
|
|
level.var_4B52 = var_02;
|
|
}
|
|
else
|
|
{
|
|
level.var_4B52 = -1;
|
|
}
|
|
|
|
func_56AD(param_00,1,var_02);
|
|
func_F31A(param_00);
|
|
level.var_4B4F = 0;
|
|
var_01 [[ var_01.var_1609 ]]();
|
|
return;
|
|
}
|
|
|
|
var_01 [[ var_01.var_6ACB ]]();
|
|
}
|
|
|
|
//Function Number: 9
|
|
func_7897(param_00)
|
|
{
|
|
return [[ level.challenge_scalar_func ]](param_00);
|
|
}
|
|
|
|
//Function Number: 10
|
|
func_3C15()
|
|
{
|
|
level endon("game_ended");
|
|
var_00 = int(gettime() + 5000);
|
|
foreach(var_02 in level.players)
|
|
{
|
|
var_02 setclientomnvar("ui_intel_title",1);
|
|
}
|
|
|
|
level.var_4B55 = 1;
|
|
wait(5);
|
|
foreach(var_02 in level.players)
|
|
{
|
|
var_02 setclientomnvar("ui_intel_title",-1);
|
|
}
|
|
|
|
level.var_4B55 = -1;
|
|
wait(0.5);
|
|
}
|
|
|
|
//Function Number: 11
|
|
func_56AD(param_00,param_01,param_02)
|
|
{
|
|
var_03 = tablelookup(level.var_13F16,1,param_00,0);
|
|
foreach(var_05 in level.players)
|
|
{
|
|
if(param_01)
|
|
{
|
|
if(isdefined(param_02))
|
|
{
|
|
var_05 setclientomnvar("ui_intel_challenge_scalar",param_02);
|
|
var_05 setclientomnvar("ui_intel_progress_max",param_02);
|
|
}
|
|
else
|
|
{
|
|
var_05 setclientomnvar("ui_intel_challenge_scalar",-1);
|
|
}
|
|
|
|
var_05 setclientomnvar("ui_intel_prechallenge",1);
|
|
var_05 setclientomnvar("ui_intel_active_index",int(var_03));
|
|
level.var_4B4C = int(var_03);
|
|
level.var_4B4F = 1;
|
|
if(param_00 == "next_challenge")
|
|
{
|
|
var_05 playlocalsound("zmb_challenge_config");
|
|
}
|
|
else
|
|
{
|
|
var_05 playlocalsound("zmb_challenge_start");
|
|
}
|
|
|
|
var_05 setclientomnvar("zm_show_challenge",4);
|
|
level.var_4BD3 = 4;
|
|
}
|
|
}
|
|
|
|
if(param_01)
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(level.var_4BD3 != 2 && level.var_4BD3 != 3 && level.var_4BD3 != 4)
|
|
{
|
|
level thread func_100CB(param_00,var_03);
|
|
}
|
|
}
|
|
|
|
//Function Number: 12
|
|
func_100CB(param_00,param_01)
|
|
{
|
|
level endon("game_ended");
|
|
wait(1);
|
|
foreach(var_03 in level.players)
|
|
{
|
|
if(param_00 == "challenge_failed")
|
|
{
|
|
var_03 playlocalsound("zmb_challenge_fail");
|
|
var_03 setclientomnvar("zm_show_challenge",2);
|
|
level.var_4BD3 = 2;
|
|
continue;
|
|
}
|
|
|
|
var_03 playlocalsound("zmb_challenge_complete");
|
|
var_03 setclientomnvar("zm_show_challenge",3);
|
|
level.var_4BD3 = 3;
|
|
}
|
|
|
|
wait(3);
|
|
foreach(var_03 in level.players)
|
|
{
|
|
var_03 thread func_E20D();
|
|
}
|
|
|
|
setomnvar("zm_challenge_progress",0);
|
|
level.var_4B4C = -1;
|
|
level.var_4B51 = -1;
|
|
level.var_4B50 = -1;
|
|
level.var_4B4E = -1;
|
|
level.var_4B53 = -1;
|
|
level.var_4B54 = -1;
|
|
level.var_4B52 = -1;
|
|
level.var_4B4F = 0;
|
|
}
|
|
|
|
//Function Number: 13
|
|
func_E20D()
|
|
{
|
|
wait(0.5);
|
|
self setclientomnvar("ui_intel_active_index",-1);
|
|
self setclientomnvar("ui_intel_progress_current",-1);
|
|
self setclientomnvar("ui_intel_progress_max",-1);
|
|
self setclientomnvar("ui_intel_percent",-1);
|
|
self setclientomnvar("ui_intel_target_player",-1);
|
|
self setclientomnvar("ui_intel_prechallenge",0);
|
|
self setclientomnvar("ui_intel_timer",-1);
|
|
self setclientomnvar("ui_intel_challenge_scalar",-1);
|
|
}
|
|
|
|
//Function Number: 14
|
|
func_DEA1(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08,param_09,param_0A)
|
|
{
|
|
var_0B = spawnstruct();
|
|
var_0B.var_DE3F = param_00;
|
|
var_0B.var_155 = param_01;
|
|
var_0B.var_5021 = param_02;
|
|
var_0B.var_9F82 = ::func_4FFA;
|
|
if(isdefined(param_03))
|
|
{
|
|
var_0B.var_9F82 = param_03;
|
|
}
|
|
|
|
var_0B.var_386E = ::func_4FDD;
|
|
if(isdefined(param_04))
|
|
{
|
|
var_0B.var_386E = param_04;
|
|
}
|
|
|
|
var_0B.var_1609 = param_05;
|
|
var_0B.var_4DDE = param_06;
|
|
var_0B.var_6ACB = ::func_4FED;
|
|
if(isdefined(param_07))
|
|
{
|
|
var_0B.var_6ACB = param_07;
|
|
}
|
|
|
|
var_0B.var_12E9C = param_08;
|
|
var_0B.var_E4C5 = ::func_5011;
|
|
if(isdefined(param_09))
|
|
{
|
|
var_0B.var_E4C5 = param_09;
|
|
}
|
|
|
|
var_0B.var_6AD0 = ::func_4FEE;
|
|
if(isdefined(param_0A))
|
|
{
|
|
var_0B.var_6AD0 = param_0A;
|
|
}
|
|
|
|
level.var_3C17[param_00] = var_0B;
|
|
}
|
|
|
|
//Function Number: 15
|
|
func_12D9E(param_00,param_01)
|
|
{
|
|
if(scripts\common\utility::flag("pause_challenges"))
|
|
{
|
|
return;
|
|
}
|
|
|
|
foreach(var_03 in level.players)
|
|
{
|
|
var_03 setclientomnvar("zm_show_challenge",1);
|
|
var_03 setclientomnvar("ui_intel_progress_current",param_00);
|
|
level.var_4BD3 = 1;
|
|
}
|
|
|
|
setomnvar("zm_challenge_progress",param_00 / param_01);
|
|
level.var_4B51 = param_01;
|
|
level.var_4B50 = param_00;
|
|
}
|
|
|
|
//Function Number: 16
|
|
func_4FDD()
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 17
|
|
func_4FED()
|
|
{
|
|
}
|
|
|
|
//Function Number: 18
|
|
func_4FFA()
|
|
{
|
|
if(isdefined(self.var_111AE))
|
|
{
|
|
return self.var_111AE;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
//Function Number: 19
|
|
func_5022()
|
|
{
|
|
if(isdefined(self.var_111AE))
|
|
{
|
|
return self.var_111AE;
|
|
}
|
|
|
|
return self.var_5021;
|
|
}
|
|
|
|
//Function Number: 20
|
|
func_4FEE()
|
|
{
|
|
}
|
|
|
|
//Function Number: 21
|
|
func_5010()
|
|
{
|
|
self.var_111AE = self.var_5021;
|
|
}
|
|
|
|
//Function Number: 22
|
|
func_5011()
|
|
{
|
|
}
|
|
|
|
//Function Number: 23
|
|
func_4B4B()
|
|
{
|
|
return isdefined(level.var_4B4A);
|
|
}
|
|
|
|
//Function Number: 24
|
|
func_4B4D(param_00)
|
|
{
|
|
return func_4B4B() && level.var_4B4A == param_00;
|
|
}
|
|
|
|
//Function Number: 25
|
|
func_12BF7()
|
|
{
|
|
level.var_4B4A = undefined;
|
|
}
|
|
|
|
//Function Number: 26
|
|
func_F31A(param_00)
|
|
{
|
|
level.var_4B4A = param_00;
|
|
scripts\cp\zombies\zombie_analytics::func_AF62(level.var_4B4A,level.wave_num);
|
|
level.var_110AC = gettime() / 1000;
|
|
}
|
|
|
|
//Function Number: 27
|
|
func_7B31()
|
|
{
|
|
if(!isdefined(level.var_C1E1))
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
return level.var_C1E1;
|
|
}
|
|
|
|
//Function Number: 28
|
|
func_97B0()
|
|
{
|
|
if(!isdefined(level.var_13F16))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_00 = level.var_13F16;
|
|
var_01 = 0;
|
|
var_02 = 1;
|
|
var_03 = 99;
|
|
var_04 = 1;
|
|
var_05 = 2;
|
|
var_06 = 6;
|
|
var_07 = 7;
|
|
var_08 = 8;
|
|
for(var_09 = var_02;var_09 <= var_03;var_09++)
|
|
{
|
|
var_0A = tablelookup(var_00,var_01,var_09,var_04);
|
|
if(var_0A == "")
|
|
{
|
|
break;
|
|
}
|
|
|
|
var_0B = tablelookup(var_00,var_01,var_09,var_05);
|
|
var_0C = tablelookup(var_00,var_01,var_09,var_08);
|
|
if(isdefined(level.var_3C17[var_0A]))
|
|
{
|
|
level.var_3C17[var_0A].var_1C81 = var_0B;
|
|
level.var_3C17[var_0A].var_1C8C = int(tablelookup(var_00,var_01,var_09,var_06));
|
|
level.var_3C17[var_0A].var_1649 = strtok(var_0C," ");
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 29
|
|
func_4FE2(param_00)
|
|
{
|
|
return 1;
|
|
}
|
|
|
|
//Function Number: 30
|
|
func_12DA9(param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08)
|
|
{
|
|
if(scripts\common\utility::istrue(self.var_54CB))
|
|
{
|
|
return;
|
|
}
|
|
|
|
if(!isdefined(level.var_4B4A))
|
|
{
|
|
return;
|
|
}
|
|
|
|
var_09 = level.var_4B4A;
|
|
if(isdefined(level.custom_death_challenge_func))
|
|
{
|
|
var_0A = self [[ level.custom_death_challenge_func ]](param_00,param_01,param_02,param_03,param_04,param_05,param_06,param_07,param_08);
|
|
if(!scripts\common\utility::istrue(var_0A))
|
|
{
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 31
|
|
func_12DA5(param_00)
|
|
{
|
|
level endon("stop_challenge_timer");
|
|
level endon("game_ended");
|
|
level endon("challenge_deactivated");
|
|
self endon("success");
|
|
var_01 = 0;
|
|
var_02 = level.var_4B54;
|
|
while(level.var_4B54 > 0)
|
|
{
|
|
wait(0.1);
|
|
if(scripts\common\utility::flag("pause_challenges"))
|
|
{
|
|
foreach(var_04 in level.players)
|
|
{
|
|
var_04 setclientomnvar("ui_intel_timer",-1);
|
|
var_04 setclientomnvar("zm_show_challenge",10);
|
|
}
|
|
|
|
scripts\common\utility::func_6E5A("pause_challenges");
|
|
var_06 = int(gettime() + level.var_4B54 * 1000);
|
|
foreach(var_04 in level.players)
|
|
{
|
|
var_04 setclientomnvar("ui_intel_timer",var_06);
|
|
var_04 setclientomnvar("zm_show_challenge",level.var_4BD3);
|
|
}
|
|
}
|
|
|
|
level.var_4B54 = level.var_4B54 - 0.1;
|
|
if(isdefined(param_00))
|
|
{
|
|
func_12D9E(int(var_02 - level.var_4B54),int(var_02));
|
|
}
|
|
}
|
|
}
|
|
|
|
//Function Number: 32
|
|
func_5026(param_00)
|
|
{
|
|
level endon("game_ended");
|
|
level endon("challenge_deactivated");
|
|
self endon("success");
|
|
var_01 = param_00;
|
|
while(var_01 > 0)
|
|
{
|
|
wait(0.1);
|
|
if(scripts\common\utility::flag("pause_challenges"))
|
|
{
|
|
continue;
|
|
}
|
|
|
|
var_01 = var_01 - 0.1;
|
|
}
|
|
|
|
self.var_111AE = self.var_5021;
|
|
level thread func_4DAE();
|
|
} |