1 #using scripts\codescripts\struct;
3 #insert scripts\shared\shared.gsh;
5 #using scripts\shared\array_shared;
6 #using scripts\shared\callbacks_shared;
7 #using scripts\shared\killstreaks_shared;
8 #using scripts\shared\laststand_shared;
9 #using scripts\shared\math_shared;
10 #using scripts\shared\system_shared;
11 #using scripts\shared\table_shared;
12 #using scripts\shared\util_shared;
13 #using scripts\shared\weapons_shared;
14 #using scripts\shared\flag_shared;
16 #using scripts\zm\_zm;
17 #using scripts\zm\_zm_powerups;
18 #using scripts\zm\_zm_spawner;
19 #using scripts\zm\_zm_stats;
20 #using scripts\zm\_zm_utility;
21 #using scripts\zm\_zm_weapons;
22 #using scripts\zm\gametypes\_globallogic_score;
24 #insert scripts\zm\_zm_daily_challenges.gsh;
26 #define N_REACHED_ROUND_10 10
27 #define N_REACHED_ROUND_15 15
28 #define N_REACHED_ROUND_20 20
29 #define N_REACHED_ROUND_25 25
30 #define N_REACHED_ROUND_30 30
32 #define N_HEADSHOT_KILLS_IN_A_ROW_GOAL 20
34 #define STR_DAILY_CHALLENGE_FILENAME "gamedata/stats/zm/statsmilestones4.csv"
37 #define N_BARRIERS_REBUILT 5
38 #define N_REBUILD_TIME 45
40 #namespace zm_daily_challenges;
65 self.a_daily_challenges = [];
79 self endon(
"disconnect" );
83 level waittill(
"end_of_round" );
114 if( !isdefined( e_attacker ) )
120 if( isdefined( e_attacker._trap_type ) )
122 if( isdefined( e_attacker.activated_by_player ) )
128 if( !IsPlayer( e_attacker ) )
133 if( IsVehicle(
self ) )
135 str_damagemod =
self.str_damagemod;
136 w_damage =
self.w_damage;
140 str_damagemod =
self.damagemod;
141 w_damage =
self.damageweapon;
144 if ( w_damage.isDualWield )
146 w_damage = w_damage.dualWieldWeapon;
168 if( str_damagemod ==
"MOD_MELEE" )
174 if( isdefined( level.zombie_vars[e_attacker.team] ) &&
IS_TRUE( level.zombie_vars[e_attacker.team][
"zombie_insta_kill"] ) )
185 if( level.zombie_weapons[ level.start_weapon ].upgrade === w_damage )
191 switch( w_damage.weapclass )
210 if( w_damage.issniperweapon )
223 switch( w_damage.weapclass )
234 if( w_damage.issniperweapon )
254 switch( str_damagemod )
256 case "MOD_EXPLOSIVE":
258 case "MOD_GRENADE_SPLASH":
259 case "MOD_PROJECTILE":
260 case "MOD_PROJECTILE_SPLASH":
266 if( w_damage == GetWeapon(
"bowie_knife" ) )
271 if( w_damage == GetWeapon(
"bouncingbetty" ) )
279 level endon(
"end_game" );
283 level waittill(
"spent_points", player, n_points );
293 level endon(
"end_game" );
297 level waittill(
"earned_points", player, n_points );
299 if( level.zombie_vars[player.team][
"zombie_point_scalar"] == 2 )
309 self endon(
"disconnect" );
310 self notify(
"stop_challenge_ingame_time_tracking");
311 self endon(
"stop_challenge_ingame_time_tracking");
325 DEFAULT(
self.n_dc_barriers_rebuilt, 0 );
327 if( !
IS_TRUE(
self.b_dc_rebuild_timer_active ) )
330 self.a_s_barriers_rebuilt = [];
333 if( !IsInArray(
self.a_s_barriers_rebuilt, s_barrier ) )
335 ARRAY_ADD(
self.a_s_barriers_rebuilt, s_barrier );
336 self.n_dc_barriers_rebuilt++;
342 self endon(
"disconnect" );
344 self.b_dc_rebuild_timer_active =
true;
352 self.n_dc_barriers_rebuilt = 0;
353 self.a_s_barriers_rebuilt = [];
354 self.b_dc_rebuild_timer_active = undefined;
360 if(
IS_TRUE( level.zombie_vars[
"zombie_powerup_fire_sale_on"] ) )
369 foreach( player
in level.players )
371 if( player.sessionstate !=
"spectator" )
380 self endon(
"disconnect" );
384 self waittill(
"perk_purchased", str_perk );
392 self endon(
"disconnect" );
396 self waittill(
"perk_bought" );
408 n_challenge_index = params.challengeIndex;
411 if( isdefined(
self ) )
417 str_current_challenge = a_challenges[ n_challenge_index ][
"e4" ];
418 n_players = level.players.size;
419 n_time_played = game[
"timepassed"] / 1000;