natesmithzombies

power_gun

Feb 11th, 2017
470
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.32 KB | None | 0 0
  1. function triggered_perks()
  2. {
  3.     zm_perks::register_perk_machine_power_override( "specialty_armorvest", &wait_for_trigger );
  4.     zm_perks::register_perk_machine_power_override( "specialty_quickrevive", &wait_for_trigger );
  5.     zm_perks::register_perk_machine_power_override( "specialty_fastreload", &wait_for_trigger );
  6.     zm_perks::register_perk_machine_power_override( "specialty_doubletap2", &wait_for_trigger );
  7.     zm_perks::register_perk_machine_power_override( "specialty_staminup", &wait_for_trigger );
  8.     zm_perks::register_perk_machine_power_override( "specialty_phdflopper", &wait_for_trigger );
  9.     zm_perks::register_perk_machine_power_override( "specialty_deadshot", &wait_for_trigger );
  10.     zm_perks::register_perk_machine_power_override( "specialty_additionalprimaryweapon", &wait_for_trigger );
  11.     zm_perks::register_perk_machine_power_override( "specialty_electriccherry", &wait_for_trigger );
  12.     zm_perks::register_perk_machine_power_override( "specialty_widowswine", &wait_for_trigger );
  13. }
  14.  
  15. function wait_for_trigger()
  16. {
  17.     if( isDefined( level.run_special_power_once ) ) // make the func run once and only once
  18.         return;
  19.     level.run_special_power_once = true;
  20.    
  21.     trigs = GetEntArray( "triggered_perks", "targetname" );
  22.     foreach( trig in trigs )
  23.         trig thread activate_on_shoot();
  24. }
  25.  
  26. function activate_on_shoot()
  27. {
  28.     while(1)
  29.     {
  30.         self waittill( "damage", amount, attacker, direction_vec, point, type, tagName, modelName, partName, weapon, dFlags, inflictor, chargeLevel );
  31.         if( weapon == GetWeapon("tesla_gun") ) // change tesla_gun to whatever weapon you want
  32.         {
  33.             perk_machine_think( self.script_noteworthy, level._custom_perks[ self.script_noteworthy ] );
  34.             break;
  35.         }
  36.     }
  37. }
  38.  
  39. function perk_machine_think( str_key, s_custom_perk )
  40. {  
  41.     str_endon = str_key + PERK_END_POWER_THREAD;
  42.     level endon( str_endon );//Support endon for any perk machine
  43.    
  44.     str_on = s_custom_perk.alias + "_on";
  45.     str_off = s_custom_perk.alias + "_off";
  46.     str_notify = str_key + "_power_on";
  47.    
  48.     while ( true )
  49.     {
  50.         machine = getentarray( s_custom_perk.radiant_machine_name, "targetname");
  51.         machine_triggers = GetEntArray( s_custom_perk.radiant_machine_name, "target" );
  52.        
  53.         for( i = 0; i < machine.size; i++ )
  54.             machine[i] SetModel(level.machine_assets[str_key].off_model);
  55.        
  56.         level thread zm_perks::do_initial_power_off_callback( machine, str_key );
  57.         array::thread_all( machine_triggers, &zm_perks::set_power_on, false );
  58.    
  59.         // level waittill( str_on );
  60.    
  61.         for( i = 0; i < machine.size; i++ )
  62.         {
  63.             machine[i] SetModel(level.machine_assets[str_key].on_model);
  64.             machine[i] vibrate((0,-100,0), 0.3, 0.4, 3);
  65.             machine[i] playsound("zmb_perks_power_on");
  66.             machine[i] thread zm_perks::perk_fx( s_custom_perk.machine_light_effect );
  67.             machine[i] thread zm_perks::play_loop_on_machine();
  68.         }
  69.         level notify( str_notify );
  70.        
  71.         array::thread_all( machine_triggers, &zm_perks::set_power_on, true );
  72.         if( isdefined( level.machine_assets[ str_key ].power_on_callback ) )
  73.         {
  74.             array::thread_all( machine, level.machine_assets[ str_key ].power_on_callback );
  75.         }
  76.        
  77.         level waittill( str_off );
  78.            
  79.         if( isdefined( level.machine_assets[ str_key ].power_off_callback ) )
  80.         {
  81.             array::thread_all( machine, level.machine_assets[ str_key ].power_off_callback );
  82.         }
  83.         array::thread_all( machine, &zm_perks::turn_perk_off );
  84.     }
  85. }
Advertisement
Add Comment
Please, Sign In to add comment