1 #using scripts\codescripts\struct;
3 #using scripts\shared\clientfield_shared;
4 #using scripts\shared\util_shared;
6 #insert scripts\shared\shared.gsh;
7 #insert scripts\shared\version.gsh;
9 #insert scripts\zm\_zm_powerups.gsh;
13 #precache( "client_fx", "zombie/fx_powerup_on_green_zmb" );
14 #precache( "client_fx", "zombie/fx_powerup_on_red_zmb" );
15 #precache( "client_fx", "zombie/fx_powerup_on_solo_zmb" );
16 #precache( "client_fx", "zombie/fx_powerup_on_caution_zmb" );
18 #namespace zm_powerups;
29 level._effect[
"powerup_on"] =
"zombie/fx_powerup_on_green_zmb";
30 if (
IS_TRUE(level.using_zombie_powerups))
32 level._effect[
"powerup_on_red"] =
"zombie/fx_powerup_on_red_zmb";
34 level._effect[
"powerup_on_solo"] =
"zombie/fx_powerup_on_solo_zmb";
35 level._effect[
"powerup_on_caution"] =
"zombie/fx_powerup_on_caution_zmb";
42 if( isdefined( level.zombie_include_powerups ) && !isdefined( level.zombie_include_powerups[powerup_name] ) )
47 struct = SpawnStruct();
49 if( !isdefined( level.zombie_powerups ) )
51 level.zombie_powerups = [];
54 struct.powerup_name = powerup_name;
56 level.zombie_powerups[powerup_name] =
struct;
58 if( isdefined( client_field_name ) )
61 struct.client_field_name = client_field_name;
69 powerup_keys = GetArrayKeys( level.zombie_powerups );
70 powerup_clientfield_name = undefined;
71 for ( powerup_key_index = 0; powerup_key_index < powerup_keys.size; powerup_key_index++ )
73 powerup_clientfield_name = level.zombie_powerups[powerup_keys[powerup_key_index]].client_field_name;
74 if ( isdefined( powerup_clientfield_name ) )
76 SetupClientFieldCodeCallbacks(
"toplayer", 1, powerup_clientfield_name );
83 if( !isdefined( level.zombie_include_powerups ) )
85 level.zombie_include_powerups = [];
88 level.zombie_include_powerups[powerup_name] =
true;
93 self notify(
"powerup", fieldName, newVal );
96 function powerup_fx_callback( localClientNum, oldVal, newVal, bNewEnt, bInitialSnap, fieldName, bWasTimeJump )
101 fx = level._effect[
"powerup_on"];
104 fx = level._effect[
"powerup_on_solo"];
107 fx = level._effect[
"powerup_on_red"];
110 fx = level._effect[
"powerup_on_caution"];
120 if ( !isdefined(
self) )
122 if( isdefined(
self.fx ) )
124 StopFX( localClientNum,
self.fx );
126 self.fx = PlayFXOnTag( localClientNum, fx,
self,
"tag_origin" );