‪Black Ops 3 Source Code Explorer  0.1
‪An script explorer for Black Ops 3 by ZeRoY
_zm_perk_quick_revive.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\exploder_shared;
6 #using scripts\shared\flag_shared;
7 #using scripts\shared\system_shared;
8 #using scripts\shared\util_shared;
9 #using scripts\shared\visionset_mgr_shared;
10 
11 #insert scripts\shared\shared.gsh;
12 #insert scripts\shared\version.gsh;
13 
14 #using scripts\zm\_util;
15 #using scripts\zm\_zm;
16 #using scripts\zm\_zm_perks;
17 #using scripts\zm\_zm_pers_upgrades;
18 #using scripts\zm\_zm_pers_upgrades_functions;
19 #using scripts\zm\_zm_pers_upgrades_system;
20 #using scripts\zm\_zm_stats;
21 #using scripts\zm\_zm_utility;
22 
23 #insert scripts\zm\_zm_perk_quick_revive.gsh;
24 #insert scripts\zm\_zm_perks.gsh;
25 #insert scripts\zm\_zm_utility.gsh;
26 
27 #precache( "material", QUICK_REVIVE_SHADER );
28 #precache( "string", "ZOMBIE_PERK_QUICKREVIVE" );
29 #precache( "fx", "zombie/fx_perk_quick_revive_zmb" );
30 
31 #namespace zm_perk_quick_revive;
32 
33 ‪REGISTER_SYSTEM( "zm_perk_quick_revive", &‪__init__, undefined )
34 
35 // QUICK REVIVE ( QUICK REVIVE )
36 
37 //-----------------------------------------------------------------------------------
38 // setup
39 //-----------------------------------------------------------------------------------
40 function ‪__init__()
41 {
43  level.check_quickrevive_hotjoin = &‪check_quickrevive_for_hotjoin;
44 }
45 
47 {
48  // register quick revive perk for level
56  level ‪flag::init( "solo_revive" );
57 
58 }
59 
61 {
62  if( IsDefined(level.quick_revive_precache_override_func) )
63  {
64  [[ level.quick_revive_precache_override_func ]]();
65  return;
66  }
67 
68  level._effect[‪QUICK_REVIVE_MACHINE_LIGHT_FX] = "zombie/fx_perk_quick_revive_zmb";
69 
70  level.machine_assets[‪PERK_QUICK_REVIVE] = SpawnStruct();
71  level.machine_assets[‪PERK_QUICK_REVIVE].weapon = GetWeapon( ‪QUICK_REVIVE_PERK_BOTTLE_WEAPON );
72  level.machine_assets[‪PERK_QUICK_REVIVE].off_model = ‪QUICK_REVIVE_MACHINE_DISABLED_MODEL;
73  level.machine_assets[‪PERK_QUICK_REVIVE].on_model = ‪QUICK_REVIVE_MACHINE_ACTIVE_MODEL;
74 }
75 
77 {
79 }
80 
82 {
84 }
85 
86 function ‪quick_revive_perk_machine_setup( use_trigger, perk_machine, bump_trigger, collision )
87 {
88  use_trigger.script_sound = "mus_perks_revive_jingle";
89  use_trigger.script_string = "revive_perk";
90  use_trigger.script_label = "mus_perks_revive_sting";
91  use_trigger.target = ‪QUICK_REVIVE_RADIANT_MACHINE_NAME;
92  perk_machine.script_string = "revive_perk";
93  perk_machine.targetname = ‪QUICK_REVIVE_RADIANT_MACHINE_NAME;
94  if(IsDefined(bump_trigger))
95  {
96  bump_trigger.script_string = "revive_perk";
97  }
98 }
99 
101 {
103 
104  if( solo )
105  {
106  return 500;
107  }
108  else
109  {
110  return 1500;
111  }
112 }
113 
115 {
116  level endon("stop_quickrevive_logic");
117 
118  level ‪flag::wait_till( "start_zombie_round_logic" );
119 
120  solo_mode = 0;
122  {
123  solo_mode = 1;
124  }
125 
126  if (solo_mode && !‪IS_TRUE(level.solo_revive_init))
127  {
128  level.solo_revive_init=true;
129  }
130 
131  while ( true )
132  {
133  machine = getentarray("vending_revive", "targetname");
134  machine_triggers = GetEntArray( "vending_revive", "target" );
135 
136  for( i = 0; i < machine.size; i++ )
137  {
138  if( level ‪flag::exists("solo_game") && level ‪flag::exists("solo_revive") && level ‪flag::get("solo_game") && level ‪flag::get("solo_revive") )
139  {
140  machine[i] Ghost();
141  machine[i] NotSolid();
142  }
143 
144  machine[i] SetModel(level.machine_assets[‪PERK_QUICK_REVIVE].off_model);
145 
146  if( isDefined(level.quick_revive_final_pos))
147  {
148  level.quick_revive_default_origin = level.quick_revive_final_pos;
149  }
150 
151  if(!isDefined(level.quick_revive_default_origin))
152  {
153  level.quick_revive_default_origin = machine[i].origin;
154  level.quick_revive_default_angles = machine[i].angles;
155  }
156  level.quick_revive_machine = machine[i];
157  }
158 
159  array::thread_all( machine_triggers, &‪zm_perks::set_power_on, false );
160 
161  if ( ‪IS_TRUE( level.initial_quick_revive_power_off ) )
162  {
163  level waittill("revive_on"); //quick revive is off at start of map (zod)
164  }
165  else if ( !solo_mode )
166  {
167  level waittill("revive_on"); //normal zombies map - quick revive is only off if COOP mode
168  }
169 
170  for( i = 0; i < machine.size; i++ )
171  {
172  if(IsDefined(machine[i].classname) && machine[i].classname == "script_model")
173  {
174  if(IsDefined(machine[i].script_noteworthy) && machine[i].script_noteworthy == "clip")
175  {
176  machine_clip = machine[i];
177  }
178  else // then the model
179  {
180  machine[i] SetModel(level.machine_assets[‪PERK_QUICK_REVIVE].on_model);
181  machine[i] playsound("zmb_perks_power_on");
182  machine[i] vibrate((0,-100,0), 0.3, 0.4, 3);
183  machine_model = machine[i];
184  machine[i] thread ‪zm_perks::perk_fx( "revive_light" );
185  ‪exploder::exploder( "quick_revive_lgts" );
186  machine[i] notify("stop_loopsound");
187  machine[i] thread ‪zm_perks::play_loop_on_machine();
188  if (isdefined(machine_triggers[i]) )
189  machine_clip = machine_triggers[i].clip;
190 
191  if (isdefined(machine_triggers[i]) )
192  blocker_model = machine_triggers[i].blocker_model;
193  }
194  }
195  }
197  if ( solo_mode && isdefined( machine_model ) && !‪IS_TRUE(machine_model.ishidden) )
198  {
199  machine_model thread ‪revive_solo_fx(machine_clip, blocker_model);
200  }
201 
202  array::thread_all( machine_triggers, &‪zm_perks::set_power_on, true );
203  if( IsDefined( level.machine_assets[ ‪PERK_QUICK_REVIVE ].power_on_callback ) )
204  {
205  array::thread_all( machine, level.machine_assets[ ‪PERK_QUICK_REVIVE ].power_on_callback );
206  }
207 
208  level notify( "specialty_quickrevive_power_on" );
209 
210  if ( IsDefined( machine_model ) )
211  {
212  machine_model.ishidden = false;
213  }
214 
215  notify_str = level ‪util::waittill_any_return("revive_off","revive_hide", "stop_quickrevive_logic" );
216  should_hide = false;
217  if(notify_str == "revive_hide")
218  {
219  should_hide = true;
220  }
221 
222  if( IsDefined( level.machine_assets[ ‪PERK_QUICK_REVIVE ].power_off_callback ) )
223  {
224  array::thread_all( machine, level.machine_assets[ ‪PERK_QUICK_REVIVE ].power_off_callback );
225  }
226 
227  for( i = 0; i < machine.size; i++ )
228  {
229  if(IsDefined(machine[i].classname) && machine[i].classname == "script_model")
230  {
231  machine[i] ‪zm_perks::turn_perk_off(should_hide);
232  }
233  }
234  }
235 }
236 
237 function ‪reenable_quickrevive(machine_clip,solo_mode)
238 {
239  if(isDefined(level.revive_machine_spawned) && !‪IS_TRUE(level.revive_machine_spawned))
240  {
241  return;
242  }
243 
244  wait(.1);
245  power_state = 0;
246 
247  if(‪IS_TRUE(solo_mode) ) //machine never went away in solo mode or was not in solo mode previously
248  {
249  power_state = 1;
250  should_pause = true;
251 
252  players = GetPlayers();
253  foreach( player in players)
254  {
255  if(isDefined(player.lives) && player.lives > 0 && power_state)
256  {
257  should_pause = false;
258  }
259  else if(isDefined(player.lives) && player.lives < 1)
260  {
261  should_pause = true;
262  }
263  }
264 
265  if(should_pause)
266  {
268  }
269  else
270  {
272  }
273 
274 
275  if(‪IS_TRUE(level.solo_revive_init) && level ‪flag::get("solo_revive") ) //if the machine has already gone away in solo mode, then make sure it goes away again
276  {
277  ‪disable_quickrevive(machine_clip);
278  return;
279  }
280 
281 
283 
285 
287 
288  level notify("revive_off");
289  wait(.1);
290  level notify("stop_quickrevive_logic");
291  }
292  else
293  {
294  if ( !‪IS_TRUE( level._dont_unhide_quickervive_on_hotjoin))
295  {
297  level notify("revive_off");
298  wait(.1);
299  }
300  level notify( "revive_hide");
301  level notify("stop_quickrevive_logic");
302 
304 
305  //DCS: Zone power, need to find zone quick revive is in.
306  triggers = GetEntArray( "zombie_vending", "targetname" );
307  foreach(trigger in triggers)
308  {
309  if(!isDefined(trigger.script_noteworthy))
310  continue;
311 
312  if (trigger.script_noteworthy == ‪PERK_QUICK_REVIVE )
313  {
314  if(IsDefined(trigger.script_int))
315  {
316  if(level ‪flag::get("power_on" + trigger.script_int))
317  {
318  power_state = 1;
319  }
320  }
321  else
322  {
323  if(level ‪flag::get("power_on"))
324  {
325  power_state = 1;
326  }
327  }
328  }
329  }
330 
331  ‪update_quickrevive_power_state(power_state);
332  }
333 
334  level thread ‪turn_revive_on();
335  if(power_state)
336  {
338  level notify("revive_on");
339  wait(.1);
340  level notify("specialty_quickrevive_power_on");
341  }
342  else
343  {
345  }
346 
347  if(!‪IS_TRUE(solo_mode) )
348  {
349  return;
350  }
351 
352  should_pause = true;
353  players = GetPlayers();
354  foreach(player in players)
355  {
356  if( !‪zm_utility::is_player_valid(player) )
357  continue;
358  if ( player HasPerk(‪PERK_QUICK_REVIVE) )
359  {
360  if(!isDefined(player.lives))
361  player.lives = 0;
362 
363  if(!isDefined(level.solo_lives_given))
364  level.solo_lives_given = 0;
365 
366  level.solo_lives_given++;
367  player.lives++;
368 
369  if(isDefined(player.lives) && player.lives > 0 && power_state )
370  {
371  should_pause = false;
372  }
373  else
374  {
375  should_pause = true;
376  }
377  }
378  }
379 
380  if(should_pause)
381  {
383  }
384  else
385  {
387  }
388 }
389 
390 function ‪update_quick_revive(solo_mode)
391 {
392  if(!isDefined(solo_mode))
393  {
394  solo_mode = false;
395  }
396 
397  clip = undefined;
398  if(isDefined(level.quick_revive_machine_clip))
399  {
400  clip = level.quick_revive_machine_clip;
401  }
402 
403  // Updates Quick Revive cost
404  level._custom_perks[ ‪PERK_QUICK_REVIVE ].cost = ‪revive_cost_override();
405 
406  level.quick_revive_machine thread ‪reenable_quickrevive(clip,solo_mode);
407 }
408 
410 {
411  level notify( "notify_check_quickrevive_for_hotjoin" );
412  level endon( "notify_check_quickrevive_for_hotjoin" );
413 
414  solo_mode = 0;
415  should_update = 0;
416 
417  ‪WAIT_SERVER_FRAME; // Wait until Disconnected player is removed from Player array
418 
419  players = GetPlayers();
420  if ( players.size == 1 || ‪IS_TRUE( level.force_solo_quick_revive ) )
421  {
422  solo_mode = 1;
423  if(!level ‪flag::get("solo_game"))
424  should_update = 1;
425 
426  level ‪flag::set("solo_game");
427  }
428  else
429  {
430  if(level ‪flag::get("solo_game"))
431  should_update = 1;
432 
433  level ‪flag::clear("solo_game");
434  }
435 
436  level.using_solo_revive = solo_mode;
437  level.revive_machine_is_solo = solo_mode;
438 
440 
441  if(should_update && isDefined(level.quick_revive_machine))
442  {
443  ‪update_quick_revive(solo_mode);
444  }
445 }
446 
447 function ‪revive_solo_fx(machine_clip, blocker_model)
448 {
449  if( level ‪flag::exists("solo_revive") && level ‪flag::get("solo_revive") && !level ‪flag::get("solo_game") )
450  {
451  return;
452  }
453 
454  if(isDefined(machine_clip))
455  {
456  level.quick_revive_machine_clip = machine_clip;
457  }
458 
459 
460  level notify("revive_solo_fx");
461  level endon("revive_solo_fx");
462  self endon("death");
463 
464  level ‪flag::wait_till( "solo_revive" );
465 
466  if ( isdefined( level.revive_solo_fx_func ) )
467  {
468  level thread [[ level.revive_solo_fx_func ]]();
469  }
470 
471  //DCS: make revive model fly away like a magic box.
472  //self playsound( level.zmb_laugh_alias );
473 
474  wait(2.0);
475 
476  self playsound("zmb_box_move");
477 
478  playsoundatposition ("zmb_whoosh", self.origin );
479  //playsoundatposition ("zmb_vox_ann_magicbox", self.origin );
480 
481  if(isdefined(self._linked_ent))
482  {
483  self Unlink();
484  }
485 
486  self moveto(self.origin + (0,0,40),3);
487 
488  if( isDefined( level.custom_vibrate_func ) )
489  {
490  [[ level.custom_vibrate_func ]]( self );
491  }
492  else
493  {
494  direction = self.origin;
495  direction = (direction[1], direction[0], 0);
496 
497  if(direction[1] < 0 || (direction[0] > 0 && direction[1] > 0))
498  {
499  direction = (direction[0], direction[1] * -1, 0);
500  }
501  else if(direction[0] < 0)
502  {
503  direction = (direction[0] * -1, direction[1], 0);
504  }
505 
506  self Vibrate( direction, 10, 0.5, 5);
507  }
508 
509  self waittill("movedone");
510  PlayFX(level._effect["poltergeist"], self.origin);
511  playsoundatposition ("zmb_box_poof", self.origin);
512 
513  //self SetModel(level.machine_assets[PERK_QUICK_REVIVE].off_model);
514  if (isdefined(self.fx))
515  {
516  self.fx Unlink();
517  self.fx delete();
518  }
519 
520  // DCS: remove the clip.
521  if (isdefined(machine_clip))
522  {
523  machine_clip Hide();
524  machine_clip ConnectPaths();
525  }
526 
527  if( IsDefined( blocker_model ) )
528  {
529  blocker_model Show();
530  }
531 
532  level notify("revive_hide");
533 }
534 
535 function ‪disable_quickrevive(machine_clip)
536 {
537  if ( ‪IS_TRUE( level.solo_revive_init ) && level ‪flag::get( "solo_revive" ) && isdefined( level.quick_revive_machine ) )
538  {
539 
540  triggers = GetEntArray( "zombie_vending", "targetname" );
541  foreach(trigger in triggers)
542  {
543  if(!isDefined(trigger.script_noteworthy))
544  continue;
545 
546  if (trigger.script_noteworthy == ‪PERK_QUICK_REVIVE )
547  {
548  //make sure it's triggered off
549  trigger TriggerEnable( false );
550  }
551  }
552 
553  foreach(item in level.powered_items )
554  {
555  if(isDefined(item.target) && isDefined(item.target.script_noteworthy) && item.target.script_noteworthy == ‪PERK_QUICK_REVIVE )
556  {
557  //update the power state
558  item.power = 1;
559  item.self_powered = 1;
560  }
561  }
562 
563  if(isDefined(level.quick_revive_machine.original_pos) )
564  {
565  level.quick_revive_default_origin = level.quick_revive_machine.original_pos;
566  level.quick_revive_default_angles = level.quick_revive_machine.original_angles;
567  }
568 
569  move_org = level.quick_revive_default_origin;
570 
571  if(isdefined(level.quick_revive_linked_ent))
572  {
573  move_org = level.quick_revive_linked_ent.origin;
574 
575  if(isdefined(level.quick_revive_linked_ent_offset))
576  {
577  move_org += level.quick_revive_linked_ent_offset;
578  }
579 
580  level.quick_revive_machine unlink();
581  }
582 
583  level.quick_revive_machine moveto(move_org + (0,0,40),3);
584 
585  direction = level.quick_revive_machine.origin;
586  direction = (direction[1], direction[0], 0);
587 
588  if(direction[1] < 0 || (direction[0] > 0 && direction[1] > 0))
589  {
590  direction = (direction[0], direction[1] * -1, 0);
591  }
592  else if(direction[0] < 0)
593  {
594  direction = (direction[0] * -1, direction[1], 0);
595  }
596 
597  level.quick_revive_machine Vibrate( direction, 10, 0.5, 4);
598  level.quick_revive_machine waittill("movedone");
599 
600  level.quick_revive_machine hide();
601  level.quick_revive_machine.ishidden = true;
602  if(isDefined(level.quick_revive_machine_clip))
603  {
604  level.quick_revive_machine_clip Hide();
605  level.quick_revive_machine_clip ConnectPaths();
606  }
607 
608 
609  PlayFX(level._effect["poltergeist"], level.quick_revive_machine.origin);
610  if(isDefined(level.quick_revive_trigger) && isDefined(level.quick_revive_trigger.blocker_model))
611  {
612  level.quick_revive_trigger.blocker_model show();
613  }
614  level notify("revive_hide");
615  }
616 }
617 
619 {
620  while ( ‪zm_perks::players_are_in_perk_area(level.quick_revive_machine))
621  {
622  wait(.1);
623  }
624 
625  if(isDefined(level.quick_revive_machine_clip))
626  {
627  level.quick_revive_machine_clip Show();
628  level.quick_revive_machine_clip DisconnectPaths();
629  }
630 
631  if(isDefined(level.quick_revive_final_pos))
632  {
633  level.quick_revive_machine.origin = level.quick_revive_final_pos;
634  }
635 
636  PlayFX(level._effect["poltergeist"], level.quick_revive_machine.origin);
637  if(isDefined(level.quick_revive_trigger) && isDefined(level.quick_revive_trigger.blocker_model))
638  {
639  level.quick_revive_trigger.blocker_model hide();
640  }
641 
642  level.quick_revive_machine Show();
643  level.quick_revive_machine Solid();
644 
645  if(isDefined(level.quick_revive_machine.original_pos) )
646  {
647  level.quick_revive_default_origin = level.quick_revive_machine.original_pos;
648  level.quick_revive_default_angles = level.quick_revive_machine.original_angles;
649  }
650 
651  direction = level.quick_revive_machine.origin;
652  direction = (direction[1], direction[0], 0);
653 
654  if(direction[1] < 0 || (direction[0] > 0 && direction[1] > 0))
655  {
656  direction = (direction[0], direction[1] * -1, 0);
657  }
658  else if(direction[0] < 0)
659  {
660  direction = (direction[0] * -1, direction[1], 0);
661  }
662 
663  // machine._linked_ent = elevator;
664  // machine._linked_ent_moves = true;
665  // machine._linked_ent_offset = (machine.origin - elevator.origin);
666 
667  org = level.quick_revive_default_origin;
668 
669  if(isdefined(level.quick_revive_linked_ent))
670  {
671  org = level.quick_revive_linked_ent.origin;
672 
673  if(isdefined(level.quick_revive_linked_ent_offset))
674  {
675  org += level.quick_revive_linked_ent_offset;
676  }
677  }
678 
679  if(!‪IS_TRUE(level.quick_revive_linked_ent_moves) && (level.quick_revive_machine.origin != org) )
680  {
681  level.quick_revive_machine moveto(org,3);
682 
683  level.quick_revive_machine Vibrate( direction, 10, 0.5, 2.9);
684  level.quick_revive_machine waittill("movedone");
685 
686  level.quick_revive_machine.angles = level.quick_revive_default_angles;
687 
688  }
689  else
690  {
691  if(isdefined(level.quick_revive_linked_ent))
692  {
693  org = level.quick_revive_linked_ent.origin;
694 
695  if(isdefined(level.quick_revive_linked_ent_offset))
696  {
697  org += level.quick_revive_linked_ent_offset;
698  }
699 
700  level.quick_revive_machine.origin = org;
701  }
702 
703  level.quick_revive_machine vibrate((0,-100,0), 0.3, 0.4, 3);
704  }
705 
706  if(isdefined(level.quick_revive_linked_ent))
707  {
708  level.quick_revive_machine LinkTo(level.quick_revive_linked_ent);
709  }
710 
711  level.quick_revive_machine.ishidden = false;
712 }
713 
715 {
716  triggers = GetEntArray( "zombie_vending", "targetname" );
717  foreach(trigger in triggers)
718  {
719  if(!isDefined(trigger.script_noteworthy))
720  continue;
721 
722  if ( trigger.script_noteworthy == ‪PERK_QUICK_REVIVE )
723  {
724  trigger notify("stop_quickrevive_logic");
725  trigger thread ‪zm_perks::vending_trigger_think();
726  trigger TriggerEnable( true );
727  }
728  }
729 }
730 
732 {
733  foreach(item in level.powered_items )
734  {
735  if(isDefined(item.target) && isDefined(item.target.script_noteworthy) && item.target.script_noteworthy == "specialty_quickrevive" )
736  {
737  if(item.power && !poweron)
738  {
739  if(!isDefined(item.powered_count))
740  {
741  item.powered_count = 0;
742  }
743  else if(item.powered_count > 0)
744  {
745  item.powered_count--;
746  }
747  }
748  else if( !item.power && poweron )
749  {
750  if(!isDefined(item.powered_count))
751  {
752  item.powered_count = 0;
753  }
754  item.powered_count++;
755  }
756 
757 
758  if(!isDefined(item.depowered_count))
759  {
760  item.depowered_count = 0;
761  }
762 
763  //update the power state
764  item.power = poweron;
765  }
766  }
767 }
768 
769 // ww: tracks the player's lives in solo, once a life is used then the revive trigger is moved back in to position
770 function ‪solo_revive_buy_trigger_move( revive_trigger_noteworthy )
771 {
772  self endon( "death" );
773 
774  revive_perk_triggers = GetEntArray( revive_trigger_noteworthy, "script_noteworthy" );
775 
776  foreach( revive_perk_trigger in revive_perk_triggers )
777  {
778  self thread ‪solo_revive_buy_trigger_move_trigger( revive_perk_trigger );
779  }
780 }
781 
782 function ‪solo_revive_buy_trigger_move_trigger( revive_perk_trigger )
783 {
784  self endon( "death" );
785 
786  revive_perk_trigger SetInvisibleToPlayer( self );
787 
788  if( level.solo_lives_given >= 3 )
789  {
790  revive_perk_trigger TriggerEnable( false );
791  ‪exploder::stop_exploder( "quick_revive_lgts" );
792 
793  if(IsDefined(level._solo_revive_machine_expire_func))
794  {
795  revive_perk_trigger [[level._solo_revive_machine_expire_func]]();
796  }
797 
798  return;
799  }
800 
801  while( self.lives > 0 )
802  {
803  wait( 0.1 );
804  }
805 
806  revive_perk_trigger SetVisibleToPlayer( self );
807 }
808 
810 {
811  // quick revive in solo gives an extra life
813  {
814  self.lives = 1;
815 
816  if(!isDefined(level.solo_lives_given))
817  {
818  level.solo_lives_given = 0;
819  }
820 
821  // Sometimes we want to gve the quick revive and not take a use away
822  if( IsDefined(level.solo_game_free_player_quickrevive) )
823  {
824  level.solo_game_free_player_quickrevive = undefined;
825  }
826  else
827  {
828  level.solo_lives_given++;
829  }
830 
831  if( level.solo_lives_given >= 3 )
832  {
833  level ‪flag::set( "solo_revive" );
834  }
835 
837  }
838 }
839 
840 function ‪take_quick_revive_perk( b_pause, str_perk, str_result )
841 {
842 }
843 
844 
‪take_quick_revive_perk
‪function take_quick_revive_perk(b_pause, str_perk, str_result)
Definition: _zm_perk_quick_revive.gsc:840
‪solo_revive_buy_trigger_move_trigger
‪function solo_revive_buy_trigger_move_trigger(revive_perk_trigger)
Definition: _zm_perk_quick_revive.gsc:782
‪exploder
‪function exploder(exploder_id, n_localclientnumber)
Definition: exploder_shared.csc:297
‪players_are_in_perk_area
‪function players_are_in_perk_area(perk_machine)
Definition: _zm_perks.gsc:1660
‪perk_unpause
‪function perk_unpause(perk)
Definition: _zm_perks.gsc:1263
‪stop_exploder
‪function stop_exploder(exploder_id, n_localclientnumber)
Definition: exploder_shared.csc:368
‪register_perk_clientfields
‪function register_perk_clientfields(str_perk, func_clientfield_register, func_code_callback)
Definition: _zm_perks.csc:96
‪quick_revive_register_clientfield
‪function quick_revive_register_clientfield()
Definition: _zm_perk_quick_revive.gsc:76
‪enable_quick_revive_perk_for_level
‪function enable_quick_revive_perk_for_level()
Definition: _zm_perk_quick_revive.gsc:46
‪revive_cost_override
‪function revive_cost_override()
Definition: _zm_perk_quick_revive.gsc:100
‪clear
‪function clear(str_flag)
Definition: flag_shared.csc:130
‪check_quickrevive_for_hotjoin
‪function check_quickrevive_for_hotjoin()
Definition: _zm_perk_quick_revive.gsc:409
‪VERSION_SHIP
‪#define VERSION_SHIP
Definition: version.gsh:36
‪quick_revive_precache
‪function quick_revive_precache()
Definition: _zm_perk_quick_revive.gsc:60
‪waittill_any_return
‪function waittill_any_return(string1, string2, string3, string4, string5, string6, string7)
Definition: util_shared.csc:212
‪__init__
‪function __init__()
Definition: _zm_perk_quick_revive.gsc:40
‪register_perk_basic_info
‪function register_perk_basic_info(str_perk, str_alias, n_perk_cost, str_hint_string, w_perk_bottle_weapon)
Definition: _zm_perks.gsc:1820
‪QUICK_REVIVE_MACHINE_ACTIVE_MODEL
‪#define QUICK_REVIVE_MACHINE_ACTIVE_MODEL
Definition: _zm_perk_quick_revive.gsh:7
‪PERK_CLIENTFIELD_QUICK_REVIVE
‪#define PERK_CLIENTFIELD_QUICK_REVIVE
Definition: _zm_perks.gsh:14
‪turn_perk_off
‪function turn_perk_off(ishidden)
Definition: _zm_perks.gsc:240
‪IS_TRUE
‪#define IS_TRUE(__a)
Definition: shared.gsh:251
‪get
‪function get(kvp_value, kvp_key="targetname")
Definition: struct.csc:13
‪set_power_on
‪function set_power_on(state)
Definition: _zm_perks.gsc:233
‪QUICK_REVIVE_PERK_BOTTLE_WEAPON
‪#define QUICK_REVIVE_PERK_BOTTLE_WEAPON
Definition: _zm_perk_quick_revive.gsh:4
‪play_loop_on_machine
‪function play_loop_on_machine()
Definition: _zm_perks.gsc:265
‪is_player_valid
‪function is_player_valid(player, checkIgnoreMeFlag, ignore_laststand_players)
Definition: skeleton.gsc:256
‪give_quick_revive_perk
‪function give_quick_revive_perk()
Definition: _zm_perk_quick_revive.gsc:809
‪register_perk_machine
‪function register_perk_machine(str_perk, func_perk_machine_setup, func_perk_machine_thread)
Definition: _zm_perks.gsc:1849
‪QUICK_REVIVE_RADIANT_MACHINE_NAME
‪#define QUICK_REVIVE_RADIANT_MACHINE_NAME
Definition: _zm_perk_quick_revive.gsh:8
‪revive_solo_fx
‪function revive_solo_fx(machine_clip, blocker_model)
Definition: _zm_perk_quick_revive.gsc:447
‪register_perk_precache_func
‪function register_perk_precache_func(str_perk, func_precache)
Definition: _zm_perks.gsc:1900
‪update_quickrevive_power_state
‪function update_quickrevive_power_state(poweron)
Definition: _zm_perk_quick_revive.gsc:731
‪wait_network_frame
‪function wait_network_frame(n_count=1)
Definition: util_shared.gsc:64
‪set_default_laststand_pistol
‪function set_default_laststand_pistol(solo_mode)
Definition: _zm.gsc:7051
‪PERK_QUICK_REVIVE
‪#define PERK_QUICK_REVIVE
Definition: _zm_perks.gsh:24
‪use_solo_revive
‪function use_solo_revive()
Definition: _zm_perks.gsc:214
‪wait_till
‪function wait_till(str_flag)
Definition: flag_shared.csc:189
‪unhide_quickrevive
‪function unhide_quickrevive()
Definition: _zm_perk_quick_revive.gsc:618
‪REGISTER_SYSTEM
‪#define REGISTER_SYSTEM(__sys, __func_init_preload, __reqs)
Definition: shared.gsh:204
‪solo_revive_buy_trigger_move
‪function solo_revive_buy_trigger_move(revive_trigger_noteworthy)
Definition: _zm_perk_quick_revive.gsc:770
‪quick_revive_perk_machine_setup
‪function quick_revive_perk_machine_setup(use_trigger, perk_machine, bump_trigger, collision)
Definition: _zm_perk_quick_revive.gsc:86
‪register_perk_threads
‪function register_perk_threads(str_perk, func_give_player_perk, func_take_player_perk)
Definition: _zm_perks.gsc:1924
‪register_perk_host_migration_params
‪function register_perk_host_migration_params(str_perk, str_radiant_name, str_effect_name)
Definition: _zm_perks.gsc:1986
‪register_perk_machine_power_override
‪function register_perk_machine_power_override(str_perk, func_perk_machine_power_override)
Definition: _zm_perks.gsc:1877
‪reenable_quickrevive
‪function reenable_quickrevive(machine_clip, solo_mode)
Definition: _zm_perk_quick_revive.gsc:237
‪quick_revive_set_clientfield
‪function quick_revive_set_clientfield(state)
Definition: _zm_perk_quick_revive.gsc:81
‪turn_revive_on
‪function turn_revive_on()
Definition: _zm_perk_quick_revive.gsc:114
‪disable_quickrevive
‪function disable_quickrevive(machine_clip)
Definition: _zm_perk_quick_revive.gsc:535
‪init
‪function init()
Definition: struct.csc:1
‪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
‪exists
‪function exists(str_flag)
Definition: flag_shared.csc:43
‪set_player_uimodel
‪function set_player_uimodel(str_field_name, n_value)
Definition: clientfield_shared.gsc:75
‪perk_pause
‪function perk_pause(perk)
Definition: _zm_perks.gsc:1234
‪register
‪function register()
Definition: _ai_tank.gsc:126
‪QUICK_REVIVE_MACHINE_LIGHT_FX
‪#define QUICK_REVIVE_MACHINE_LIGHT_FX
Definition: _zm_perk_quick_revive.gsh:9
‪restart_quickrevive
‪function restart_quickrevive()
Definition: _zm_perk_quick_revive.gsc:714
‪QUICK_REVIVE_MACHINE_DISABLED_MODEL
‪#define QUICK_REVIVE_MACHINE_DISABLED_MODEL
Definition: _zm_perk_quick_revive.gsh:6
‪update_quick_revive
‪function update_quick_revive(solo_mode)
Definition: _zm_perk_quick_revive.gsc:390
‪perk_fx
‪function perk_fx(fx, turnOffFx)
Definition: _zm_perks.gsc:280
‪WAIT_SERVER_FRAME
‪#define WAIT_SERVER_FRAME
Definition: shared.gsh:265