‪Black Ops 3 Source Code Explorer  0.1
‪An script explorer for Black Ops 3 by ZeRoY
_zm_power.gsc
Go to the documentation of this file.
1 #using scripts\codescripts\struct;
2 
3 #using scripts\shared\array_shared;
4 #using scripts\shared\clientfield_shared;
5 #using scripts\shared\demo_shared;
6 #using scripts\shared\flag_shared;
7 #using scripts\shared\system_shared;
8 #using scripts\shared\util_shared;
9 
10 #insert scripts\shared\shared.gsh;
11 
12 #using scripts\shared\ai\zombie_utility;
13 
14 #using scripts\zm\_util;
15 #using scripts\zm\_zm_blockers;
16 #using scripts\zm\_zm_perks;
17 #using scripts\zm\_zm_utility;
18 
19 #insert scripts\zm\_zm_perks.gsh;
20 #insert scripts\zm\_zm_utility.gsh;
21 
22 #namespace zm_power;
23 
24 ‪REGISTER_SYSTEM_EX( "zm_power", &‪__init__, &‪__main__, undefined )
25 
26 function ‪__init__()
27 {
28  level.powered_items = [];
29  level.local_power = [];
30 }
31 
32 function ‪__main__()
33 {
35 
36  level thread ‪electric_switch_init();
37 }
38 
40 {
41  trigs = GetEntArray( "use_elec_switch", "targetname" );
42 
43  if( isdefined( level.temporary_power_switch_logic ) )
44  {
45  array::thread_all( trigs, level.temporary_power_switch_logic, trigs );
46  }
47  else
48  {
49  array::thread_all( trigs, &‪electric_switch, trigs );
50  }
51 
52 }
53 
54 function ‪electric_switch( switch_array )
55 {
56 
57  if( !isdefined( self ) )
58  {
59  return;
60  }
61 
62  if( isdefined( self.target ) )
63  {
64  ent_parts = GetEntArray(self.target, "targetname");
65  struct_parts = ‪struct::get_array(self.target, "targetname");
66 
67  foreach(ent in ent_parts)
68  {
69  if(IsDefined(ent.script_noteworthy) && ent.script_noteworthy == "elec_switch")
70  {
71  master_switch = ent;
72  master_switch NotSolid();
73  }
74  }
75 
76  foreach(struct in struct_parts)
77  {
78  if(IsDefined(struct.script_noteworthy) && struct.script_noteworthy == "elec_switch_fx")
79  {
80  fx_pos = struct;
81  }
82  }
83  }
84 
85  while ( IsDefined(self) )
86  {
87  // Power On
88  //---------
89  self SetHintString( &"ZOMBIE_ELECTRIC_SWITCH" );
90 
91  self SetVisibleToAll();
92  self waittill( "trigger", user );
93  self SetInvisibleToAll();
94 
95  if( isdefined( master_switch ) )
96  {
97  master_switch rotateroll( -90, .3 );
98  master_switch playsound( "zmb_switch_flip" );
99  }
100 
101  power_zone = undefined;
102  if(isDefined(self.script_int))
103  {
104  power_zone = self.script_int;
105  }
106  level thread ‪zm_perks::perk_unpause_all_perks( power_zone );
107 
108  if( isdefined( master_switch ) )
109  {
110  master_switch waittill( "rotatedone" );
111  PlayFX( level._effect[ "switch_sparks" ] ,fx_pos.origin );
112  master_switch playsound("zmb_turn_on");
113  }
114 
115  level ‪turn_power_on_and_open_doors( power_zone );
116  switchEntNum = self GetEntityNumber();
117  if ( isDefined(switchEntNum) && isDefined(user) )
118  {
119  user RecordMapEvent(‪ZM_MAP_EVENT_POWER_ON, GetTime(), user.origin, level.round_number, switchEntNum);
120  }
121 
122  //Exit loop if power can not be toggled on/off
123  if( !isdefined( self.script_noteworthy ) || self.script_noteworthy != "allow_power_off" )
124  {
125  self delete();
126  return;
127  }
128 
129  // Power Off
130  //----------
131  self SetHintString( &"ZOMBIE_ELECTRIC_SWITCH_OFF" );
132  self SetVisibleToAll();
133 
134  self waittill( "trigger", user );
135  self SetInvisibleToAll();
136 
137  if( isdefined( master_switch ) )
138  {
139  master_switch rotateroll( 90,.3 );
140  master_switch playsound( "zmb_switch_flip" );
141  }
142 
143  level thread ‪zm_perks::perk_pause_all_perks( power_zone );
144 
145  if( isdefined( master_switch ) )
146  {
147  master_switch waittill( "rotatedone" );
148  }
149  if (isDefined(switchEntNum) && isDefined(user))
150  {
151  user RecordMapEvent(‪ZM_MAP_EVENT_POWER_OFF, GetTime(), user.origin, level.round_number, switchEntNum);
152  }
153  level ‪turn_power_off_and_close_doors( power_zone );
154  }
155 }
156 
158 {
159  while( true )
160  {
161  // Power On
162  //---------
163  level ‪flag::wait_till("power_on");
164  level thread ‪set_global_power( true );
165 
166  // Power Off
167  //---------
168  level ‪flag::wait_till_clear( "power_on" );
169  level thread ‪set_global_power( false );
170  }
171 }
172 
174 {
175  level ‪flag::wait_till( "start_zombie_round_logic" );
176 
177  // placeholder for all zombies
178  //add_powered_item( &never_power_on, &zombie_power_off, &zombie_range, true, 1, undefined );
179 
180  vending_triggers = GetEntArray( "zombie_vending", "targetname" );
181  foreach ( trigger in vending_triggers )
182  {
183  powered_on = ‪zm_perks::get_perk_machine_start_state(trigger.script_noteworthy);
185  if(IsDefined(trigger.script_int))
186  {
187  powered_perk thread ‪zone_controlled_perk(trigger.script_int);
188  }
189  }
190 
191  // Electric Doors
192  //---------------
193  zombie_doors = GetEntArray( "zombie_door", "targetname" );
194  foreach ( door in zombie_doors )
195  {
196  if ( IsDefined( door.script_noteworthy ) && (door.script_noteworthy == "electric_door" || door.script_noteworthy == "electric_buyable_door"))
197  {
199  }
200  else if ( IsDefined( door.script_noteworthy ) && door.script_noteworthy == "local_electric_door" )
201  {
202  power_sources = ‪ANY_POWER;
203  if (!‪IS_TRUE(level.power_local_doors_globally))
204  power_sources = ‪LOCAL_POWER_ONLY;
206  }
207  }
208 
209  thread ‪watch_global_power();
210 }
211 
213 {
214  while(true)
215  {
216  power_flag = ("power_on" + zone);
217  // Power On
218  //---------
219  level ‪flag::wait_till(power_flag);
220  self thread ‪perk_power_on();
221 
222  // Power Off
223  //---------
224  level ‪flag::wait_till_clear(power_flag);
225  self thread ‪perk_power_off();
226  }
227 }
228 
229 function ‪add_powered_item( power_on_func, power_off_func, range_func, ‪cost_func, power_sources, self_powered, target )
230 {
231  powered = spawnstruct();
232  powered.power_on_func = power_on_func;
233  powered.power_off_func = power_off_func;
234  powered.range_func = range_func;
235  powered.power_sources = power_sources;
236  powered.self_powered = self_powered;
237  powered.target = target;
238  powered.cost_func = ‪cost_func;
239 
240  powered.power = self_powered;
241 
242  powered.powered_count = self_powered;
243  powered.depowered_count = 0;
244 
245  level.powered_items[level.powered_items.size]=powered;
246  return powered;
247 }
248 
249 function ‪remove_powered_item( powered )
250 {
251  ArrayRemoveValue( level.powered_items, powered, false );
252 }
253 
254 //-----------------------------------------------------------------------------
255 // Transient powered items (turrets, traps)
256 
257 function ‪add_temp_powered_item( power_on_func, power_off_func, range_func, ‪cost_func, power_sources, self_powered, target )
258 {
259  powered = ‪add_powered_item( power_on_func, power_off_func, range_func, ‪cost_func, power_sources, self_powered, target );
260  if (isdefined(level.local_power))
261  {
262  foreach (localpower in level.local_power)
263  {
264  if ( powered [[powered.range_func]]( 1, localpower.origin, localpower.radius ) )
265  {
266  powered ‪change_power(1, localpower.origin, localpower.radius);
267  if (!isdefined(localpower.added_list))
268  localpower.added_list = [];
269  localpower.added_list[localpower.added_list.size]=powered;
270  }
271  }
272  }
273  thread ‪watch_temp_powered_item( powered );
274  return powered;
275 }
276 
277 function ‪watch_temp_powered_item( powered )
278 {
279  powered.target waittill("death");
280  ‪remove_powered_item( powered );
281  if (isdefined(level.local_power))
282  {
283  foreach (localpower in level.local_power)
284  {
285  if (isdefined(localpower.added_list))
286  ArrayRemoveValue( localpower.added_list, powered, false );
287  if (isdefined(localpower.enabled_list))
288  ArrayRemoveValue( localpower.enabled_list, powered, false );
289  }
290  }
291 }
292 
293 
294 
295 
296 //-----------------------------------------------------------------------------
297 // Area effects
298 
299 function ‪change_power_in_radius( delta, origin, radius )
300 {
301  changed_list = [];
302  for( i=0; i<level.powered_items.size; i++ )
303  {
304  powered = level.powered_items[i];
305 
306  if ( powered.power_sources!=‪GLOBAL_POWER_ONLY )
307  if ( powered [[powered.range_func]]( delta, origin, radius ) )
308  {
309  powered ‪change_power(delta, origin, radius);
310  changed_list[changed_list.size]=powered;
311  }
312  }
313  return changed_list;
314 }
315 
316 function ‪change_power( delta, origin, radius ) // self == powered item
317 {
318  if (delta > 0)
319  {
320  if ( !self.power )
321  {
322  self.power=1;
323  self [[self.power_on_func]](origin, radius);
324  }
325  self.powered_count++;
326  }
327  else if (delta < 0)
328  {
329  if ( self.power )
330  {
331  self.power=0;
332  self [[self.power_off_func]](origin, radius);
333  }
334  self.depowered_count++;
335  }
336 }
337 
338 function ‪revert_power_to_list( delta, origin, radius, powered_list )
339 {
340  for( i=0; i<powered_list.size; i++ )
341  {
342  powered = powered_list[i];
343  powered ‪revert_power(delta, origin, radius);
344  }
345 }
346 
347 function ‪revert_power( delta, origin, radius, powered_list ) // self == powered item
348 {
349  if (delta > 0)
350  {
351  self.depowered_count--;
352  assert( self.depowered_count >= 0, "Depower underflow in power system");
353  if ( self.depowered_count == 0 && self.powered_count > 0 && !self.power )
354  {
355  self.power=1;
356  self [[self.power_on_func]](origin, radius);
357  }
358  }
359  else if (delta < 0)
360  {
361  self.powered_count--;
362  assert( self.powered_count >= 0, "Repower underflow in power system");
363  if ( self.powered_count == 0 && self.power )
364  {
365  self.power=0;
366  self [[self.power_off_func]](origin, radius);
367  }
368  }
369 }
370 
371 //-----------------------------------------------------------------------------
372 // Local power
373 
374 function ‪add_local_power( origin, radius )
375 {
376  localpower = spawnstruct();
377 
378 
379  localpower.origin = origin;
380  localpower.radius = radius;
381  localpower.enabled_list = ‪change_power_in_radius( 1, origin, radius );
382 
383  level.local_power[level.local_power.size]=localpower;
384  return localpower;
385 }
386 
387 function ‪move_local_power( localpower, origin )
388 {
389 //
390  changed_list = [];
391  for( i=0; i<level.powered_items.size; i++ )
392  {
393  powered = level.powered_items[i];
394  if ( powered.power_sources==‪GLOBAL_POWER_ONLY )
395  continue;
396  waspowered = ( IsInArray( localpower.enabled_list, powered) );
397  ispowered = powered [[powered.range_func]]( 1, origin, localpower.radius );
398  if ( ispowered && !waspowered )
399  {
400  powered ‪change_power( 1, origin, localpower.radius );
401  localpower.enabled_list[localpower.enabled_list.size] = powered;
402  }
403  else if ( !ispowered && waspowered )
404  {
405  powered ‪revert_power( -1, localpower.origin, localpower.radius, localpower.enabled_list );
406  ArrayRemoveValue( localpower.enabled_list, powered, false );
407  }
408  }
409  localpower.origin = origin;
410  return localpower;
411 }
412 
413 function ‪end_local_power( localpower )
414 {
415 
416  if (isdefined(localpower.enabled_list))
417  ‪revert_power_to_list( -1, localpower.origin, localpower.radius, localpower.enabled_list );
418  localpower.enabled_list=undefined;
419  if (isdefined(localpower.added_list))
420  ‪revert_power_to_list( -1, localpower.origin, localpower.radius, localpower.added_list );
421  localpower.added_list=undefined;
422  ArrayRemoveValue( level.local_power, localpower, false );
423 }
424 
425 function ‪has_local_power( origin )
426 {
427  if (isdefined(level.local_power))
428  {
429  foreach (localpower in level.local_power)
430  {
431  if ( DistanceSquared( localpower.origin, origin ) < localpower.radius * localpower.radius )
432  return true;
433  }
434  }
435  return false;
436 }
437 
439 {
440  if (!‪IS_TRUE(self.power))
441  return 0;
442 
443  if (‪IS_TRUE(level._power_global) && !(self.power_sources==‪LOCAL_POWER_ONLY))
444  return 0;
445 
446  cost = [[self.cost_func]]();
447 
448  power_sources = self.powered_count;
449  if (power_sources<1)
450  power_sources=1;
451 
452  return cost/power_sources;
453 }
454 
455 function ‪get_local_power_cost( localpower )
456 {
457  cost = 0;
458  if ( isdefined(localpower) && isdefined(localpower.enabled_list))
459  {
460  foreach(powered in localpower.enabled_list)
461  cost += powered ‪get_powered_item_cost();
462  }
463  if ( isdefined(localpower) && isdefined(localpower.added_list))
464  {
465  foreach(powered in localpower.added_list)
466  cost += powered ‪get_powered_item_cost();
467  }
468  return cost;
469 }
470 
471 //-----------------------------------------------------------------------------
472 // Global power (Power switch)
473 
474 function ‪set_global_power( on_off )
475 {
476  ‪demo::bookmark( "zm_power", gettime(), undefined, undefined, 1 );
477 
478  level._power_global = on_off;
479  for( i=0; i<level.powered_items.size; i++ )
480  {
481  powered = level.powered_items[i];
482  if ( isdefined(powered.target) && (powered.power_sources!=‪LOCAL_POWER_ONLY) )
483  {
484  powered ‪global_power(on_off);
485  ‪util::wait_network_frame(); // Network optimization
486  }
487  }
488 }
489 
490 function ‪global_power( on_off ) // self == powered item
491 {
492  if (on_off)
493  {
494 
495  if ( !self.power )
496  {
497  self.power=1;
498  self [[self.power_on_func]]();
499  }
500  self.powered_count++;
501  }
502  else
503  {
504 
505  self.powered_count--;
506  assert( self.powered_count >= 0, "Repower underflow in power system");
507  if ( self.powered_count == 0 && self.power )
508  {
509  self.power=0;
510  self [[self.power_off_func]]();
511  }
512  }
513 }
514 
515 
516 //=============================================================================
517 // Generic
518 
519 function ‪never_power_on( origin, radius )
520 {
521 }
522 function ‪never_power_off( origin, radius )
523 {
524 }
525 
527 {
528  if (isdefined(self.one_time_cost))
529  {
530  cost = self.one_time_cost;
531  self.one_time_cost=undefined;
532  return cost;
533  }
534  return 0;
535 }
536 
538 {
539  if (isdefined(self.one_time_cost))
540  {
541  cost = self.one_time_cost;
542  self.one_time_cost=undefined;
543  return cost;
544  }
545  if (‪IS_TRUE(level._power_global))
546  return 0;
547  if (‪IS_TRUE(self.self_powered))
548  return 0;
549  return 1;
550 }
551 
552 function ‪cost_high()
553 {
554  if (isdefined(self.one_time_cost))
555  {
556  cost = self.one_time_cost;
557  self.one_time_cost=undefined;
558  return cost;
559  }
560  return 10;
561 }
562 
563 
564 //=============================================================================
565 // Doors
566 
567 function ‪door_range( delta, origin, radius )
568 {
569  if ( delta < 0 )
570  return false;
571  if ( DistanceSquared( self.target.origin, origin ) < ( radius * radius ) )
572  {
573  return true;
574  }
575  return false;
576 }
577 function ‪door_power_on( origin, radius )
578 {
579 
580  self.target.power_on=1;
581  self.target notify( "power_on" );
582  //self.one_time_cost=200;
583 }
584 function ‪door_power_off( origin, radius )
585 {
586 
587  self.target notify( "power_off" );
588  self.target.power_on=0;
589 }
590 function ‪door_local_power_on( origin, radius )
591 {
592 
593  self.target.local_power_on=1;
594  self.target notify( "local_power_on" );
595  //self.one_time_cost=200;
596 }
597 function ‪door_local_power_off( origin, radius )
598 {
599 
600  self.target notify( "local_power_off" );
601  self.target.local_power_on=0;
602 }
603 
604 function ‪cost_door()
605 {
606  // pull in the cost set on the door itself - this keeps the door from costing power when it hasn't closed.
607  if (isdefined(self.target.power_cost ) )
608  {
609  if (!isdefined(self.one_time_cost))
610  self.one_time_cost=0;
611  self.one_time_cost += self.target.power_cost;
612  self.target.power_cost=0;
613  }
614  if (isdefined(self.one_time_cost))
615  {
616  cost = self.one_time_cost;
617  self.one_time_cost=undefined;
618  return cost;
619  }
620  return 0;
621 }
622 
623 
624 //=============================================================================
625 // Zombies
626 
627 
628 function ‪zombie_range( delta, origin, radius )
629 {
630  if ( delta > 0 )
631  return false;
632  self.zombies = array::get_all_closest( origin, ‪zombie_utility::get_round_enemy_array(), undefined, undefined, radius );
633  if ( !isDefined( self.zombies ) )
634  {
635  return false;
636  }
637  self.power = 1;
638  return true;
639 }
640 function ‪zombie_power_off( origin, radius )
641 {
642 
643  for (i=0; i<self.zombies.size; i++)
644  {
645  self.zombies[i] thread ‪stun_zombie();
647  }
648 }
649 function ‪stun_zombie()
650 {
651  self endon("death");
652  self notify( "stun_zombie" );
653  self endon( "stun_zombie" );
654 
655  if ( self.health <= 0 )
656  {
657  return;
658  }
659 
660  if ( ‪IS_TRUE( self.ignore_inert ) )
661  {
662  return;
663  }
664 
665  if ( isdefined( self.‪stun_zombie ) )
666  {
667  self thread [[ self.stun_zombie ]]();
668  return;
669  }
670 
671 }
672 
673 
674 //=============================================================================
675 // Perk machines
676 
677 
678 function ‪perk_range( delta, origin, radius )
679 {
680  if (IsDefined(self.target))
681  {
682  perkorigin = self.target.origin;
683  if( ‪IS_TRUE( self.target.trigger_off ) )
684  perkorigin = self.target.realorigin;
685  else if( ‪IS_TRUE( self.target.disabled ) )
686  perkorigin = perkorigin + ( 0, 0, 10000 );
687  if ( DistanceSquared( perkorigin, origin ) < radius * radius )
688  return true;
689  }
690  return false;
691 }
692 function ‪perk_power_on( origin, radius )
693 {
694 
695  level notify( self.target ‪zm_perks::getVendingMachineNotify() + "_on" );
696  ‪zm_perks::perk_unpause(self.target.script_noteworthy);
697 
698 }
699 function ‪perk_power_off( origin, radius )
700 {
701  notify_name = self.target ‪zm_perks::getVendingMachineNotify();
702  if(isDefined(notify_name) && notify_name == "revive")
703  {
704  if(level ‪flag::exists("solo_game") && level ‪flag::get("solo_game"))
705  {
706  return;
707  }
708  }
709 
710 
711  self.target notify( "death" );
712  self.target thread ‪zm_perks::vending_trigger_think();
713  if ( IsDefined( self.target.perk_hum ) )
714  {
715  self.target.perk_hum Delete();
716  }
717 
718  ‪zm_perks::perk_pause(self.target.script_noteworthy);
719 
720  level notify( self.target ‪zm_perks::getVendingMachineNotify() + "_off" );
721 }
722 
723 function ‪turn_power_on_and_open_doors( power_zone )
724 {
725  level.local_doors_stay_open = true;
726  level.power_local_doors_globally = 1;
727 
728  if(!IsDefined( power_zone ))
729  {
730  level ‪flag::set("power_on");
731  level ‪clientfield::set("zombie_power_on", 0);
732  }
733  else
734  {
735  level ‪flag::set( "power_on" + power_zone);
736  level ‪clientfield::set("zombie_power_on", power_zone);
737  }
738 
739  zombie_doors = GetEntArray( "zombie_door", "targetname" );
740  foreach ( door in zombie_doors )
741  {
742  if(!IsDefined(door.script_noteworthy))
743  continue;
744 
745  if (!IsDefined( power_zone) && (door.script_noteworthy == "electric_door" || door.script_noteworthy == "electric_buyable_door"))
746  {
747  door notify( "power_on" );
748  }
749  else if((IsDefined(door.script_int) && door.script_int == power_zone) && (door.script_noteworthy == "electric_door" || door.script_noteworthy == "electric_buyable_door"))
750  {
751  door notify( "power_on" );
752 
753  // This logic makes sure that the door will store if it has power - MB 11/4/2015
754  if( isdefined( level.temporary_power_switch_logic ) )
755  {
756  door.power_on = true;
757  }
758  }
759  else if( ( isdefined(door.script_int) && door.script_int == power_zone ) && door.script_noteworthy === "local_electric_door" )
760  {
761  door notify( "local_power_on" );
762  }
763  }
764 }
765 
766 function ‪turn_power_off_and_close_doors( power_zone )
767 {
768  level.local_doors_stay_open = false;
769  level.power_local_doors_globally = false;
770 
771  if(!IsDefined( power_zone ))
772  {
773  level ‪flag::clear( "power_on" );
774  level ‪clientfield::set("zombie_power_off", 0);
775  }
776  else
777  {
778  level ‪flag::clear( "power_on" + power_zone);
779  level ‪clientfield::set("zombie_power_off", power_zone);
780  }
781 
782 
783  zombie_doors = GetEntArray( "zombie_door", "targetname" );
784  foreach ( door in zombie_doors )
785  {
786  if(!IsDefined(door.script_noteworthy))
787  continue;
788 
789  if (!IsDefined( power_zone) && (door.script_noteworthy == "electric_door" || door.script_noteworthy == "electric_buyable_door"))
790  {
791  door notify( "power_on" );
792  }
793  else if((IsDefined(door.script_int) && door.script_int == power_zone) && (door.script_noteworthy == "electric_door" || door.script_noteworthy == "electric_buyable_door"))
794  {
795  door notify( "power_on" );
796 
797  // electric buyable door doesn't properly re-set if power cycles off
798  // This logic makes sure that the door will revert to requiring power - MB 11/4/2015
799  if( isdefined( level.temporary_power_switch_logic ) )
800  {
801  door.power_on = false;
802  door sethintstring(&"ZOMBIE_NEED_POWER");
803  door notify( "kill_door_think" );
804  door thread ‪zm_blockers::door_think();
805  }
806  }
807  else if ( isdefined( door.script_noteworthy ) && door.script_noteworthy == "local_electric_door" )
808  {
809  door notify( "local_power_on" );
810  }
811  }
812 }
813 
‪LOCAL_POWER_ONLY
‪#define LOCAL_POWER_ONLY
Definition: _zm_utility.gsh:8
‪__init__
‪function __init__()
Definition: _zm_power.gsc:26
‪door_local_power_on
‪function door_local_power_on(origin, radius)
Definition: _zm_power.gsc:590
‪perk_unpause
‪function perk_unpause(perk)
Definition: _zm_perks.gsc:1263
‪never_power_off
‪function never_power_off(origin, radius)
Definition: _zm_power.gsc:522
‪zombie_power_off
‪function zombie_power_off(origin, radius)
Definition: _zm_power.gsc:640
‪cost_func
‪function private cost_func()
Definition: _zm_pack_a_punch.gsc:912
‪ZM_MAP_EVENT_POWER_OFF
‪#define ZM_MAP_EVENT_POWER_OFF
Definition: _zm_utility.gsh:63
‪ZM_MAP_EVENT_POWER_ON
‪#define ZM_MAP_EVENT_POWER_ON
Definition: _zm_utility.gsh:62
‪add_local_power
‪function add_local_power(origin, radius)
Definition: _zm_power.gsc:374
‪door_local_power_off
‪function door_local_power_off(origin, radius)
Definition: _zm_power.gsc:597
‪clear
‪function clear(str_flag)
Definition: flag_shared.csc:130
‪zone_controlled_perk
‪function zone_controlled_perk(zone)
Definition: _zm_power.gsc:212
‪cost_negligible
‪function cost_negligible()
Definition: _zm_power.gsc:526
‪global_power
‪function global_power(on_off)
Definition: _zm_power.gsc:490
‪cost_door
‪function cost_door()
Definition: _zm_power.gsc:604
‪get_array
‪function get_array(kvp_value, kvp_key="targetname")
Definition: struct.csc:34
‪stun_zombie
‪function stun_zombie()
Definition: _zm_power.gsc:649
‪door_power_on
‪function door_power_on(origin, radius)
Definition: _zm_power.gsc:577
‪IS_TRUE
‪#define IS_TRUE(__a)
Definition: shared.gsh:251
‪get_round_enemy_array
‪function get_round_enemy_array()
Definition: zombie_utility.gsc:2024
‪never_power_on
‪function never_power_on(origin, radius)
Definition: _zm_power.gsc:519
‪get
‪function get(kvp_value, kvp_key="targetname")
Definition: struct.csc:13
‪perk_range
‪function perk_range(delta, origin, radius)
Definition: _zm_power.gsc:678
‪remove_powered_item
‪function remove_powered_item(powered)
Definition: _zm_power.gsc:249
‪turn_power_on_and_open_doors
‪function turn_power_on_and_open_doors(power_zone)
Definition: _zm_power.gsc:723
‪electric_switch
‪function electric_switch(switch_array)
Definition: _zm_power.gsc:54
‪get_local_power_cost
‪function get_local_power_cost(localpower)
Definition: _zm_power.gsc:455
‪change_power
‪function change_power(delta, origin, radius)
Definition: _zm_power.gsc:316
‪set_global_power
‪function set_global_power(on_off)
Definition: _zm_power.gsc:474
‪wait_network_frame
‪function wait_network_frame(n_count=1)
Definition: util_shared.gsc:64
‪add_powered_item
‪function add_powered_item(power_on_func, power_off_func, range_func, cost_func, power_sources, self_powered, target)
Definition: _zm_power.gsc:229
‪turn_power_off_and_close_doors
‪function turn_power_off_and_close_doors(power_zone)
Definition: _zm_power.gsc:766
‪perk_power_on
‪function perk_power_on(origin, radius)
Definition: _zm_power.gsc:692
‪REGISTER_SYSTEM_EX
‪#define REGISTER_SYSTEM_EX(__sys, __func_init_preload, __func_init_postload, __reqs)
Definition: shared.gsh:209
‪has_local_power
‪function has_local_power(origin)
Definition: _zm_power.gsc:425
‪change_power_in_radius
‪function change_power_in_radius(delta, origin, radius)
Definition: _zm_power.gsc:299
‪move_local_power
‪function move_local_power(localpower, origin)
Definition: _zm_power.gsc:387
‪GLOBAL_POWER_ONLY
‪#define GLOBAL_POWER_ONLY
Definition: _zm_utility.gsh:9
‪get_powered_item_cost
‪function get_powered_item_cost()
Definition: _zm_power.gsc:438
‪zombie_range
‪function zombie_range(delta, origin, radius)
Definition: _zm_power.gsc:628
‪revert_power
‪function revert_power(delta, origin, radius, powered_list)
Definition: _zm_power.gsc:347
‪wait_till
‪function wait_till(str_flag)
Definition: flag_shared.csc:189
‪end_local_power
‪function end_local_power(localpower)
Definition: _zm_power.gsc:413
‪bookmark
‪function bookmark(type, time, mainClientEnt, otherClientEnt, eventPriority, inflictorEnt, overrideEntityCamera, actorEnt)
Definition: demo_shared.gsc:25
‪perk_pause_all_perks
‪function perk_pause_all_perks(power_zone)
Definition: _zm_perks.gsc:1295
‪getVendingMachineNotify
‪function getVendingMachineNotify()
Definition: _zm_perks.gsc:1342
‪add_temp_powered_item
‪function add_temp_powered_item(power_on_func, power_off_func, range_func, cost_func, power_sources, self_powered, target)
Definition: _zm_power.gsc:257
‪revert_power_to_list
‪function revert_power_to_list(delta, origin, radius, powered_list)
Definition: _zm_power.gsc:338
‪get_perk_machine_start_state
‪function get_perk_machine_start_state(perk)
Definition: _zm_perks.gsc:1607
‪set
‪function set(str_field_name, n_value)
Definition: clientfield_shared.gsc:34
‪vending_trigger_think
‪function vending_trigger_think()
Definition: _zm_perks.gsc:437
‪__main__
‪function __main__()
Definition: _zm_power.gsc:32
‪perk_power_off
‪function perk_power_off(origin, radius)
Definition: _zm_power.gsc:699
‪exists
‪function exists(str_flag)
Definition: flag_shared.csc:43
‪perk_unpause_all_perks
‪function perk_unpause_all_perks(power_zone)
Definition: _zm_perks.gsc:1314
‪electric_switch_init
‪function electric_switch_init()
Definition: _zm_power.gsc:39
‪perk_pause
‪function perk_pause(perk)
Definition: _zm_perks.gsc:1234
‪standard_powered_items
‪function standard_powered_items()
Definition: _zm_power.gsc:173
‪wait_till_clear
‪function wait_till_clear(str_flag)
Definition: flag_shared.csc:248
‪ANY_POWER
‪#define ANY_POWER
Definition: _zm_utility.gsh:7
‪door_think
‪function door_think()
Definition: _zm_blockers.gsc:769
‪cost_high
‪function cost_high()
Definition: _zm_power.gsc:552
‪watch_temp_powered_item
‪function watch_temp_powered_item(powered)
Definition: _zm_power.gsc:277
‪door_power_off
‪function door_power_off(origin, radius)
Definition: _zm_power.gsc:584
‪cost_low_if_local
‪function cost_low_if_local()
Definition: _zm_power.gsc:537
‪watch_global_power
‪function watch_global_power()
Definition: _zm_power.gsc:157
‪door_range
‪function door_range(delta, origin, radius)
Definition: _zm_power.gsc:567
‪WAIT_SERVER_FRAME
‪#define WAIT_SERVER_FRAME
Definition: shared.gsh:265