#include maps\mp\zombies\_zm_perk_random; #include common_scripts\utility; #include maps\mp\_utility; #include maps\mp\zombies\_zm_utility; #include maps\mp\zombies\_zm_score; #include maps\mp\zombies\_zm_stats; #include maps\mp\animscripts\zm_utility; #include maps\mp\zombies\_zm_unitrigger; #include maps\mp\zombies\_zm_audio; #include maps\mp\zombies\_zm_perks; machine_selector() { while ( true ) { level waittill( "random_perk_moving" ); machines = getentarray( "random_perk_machine", "targetname" ); if ( machines.size == 1 ) { new_machine = machines[0]; new_machine thread machine_think(); continue; } do new_machine = machines[randomint( machines.size )]; while ( new_machine == level.random_perk_start_machine ); level.random_perk_start_machine = new_machine; new_machine thread machine_think(); } } trigger_visible_to_player( player ) { self setinvisibletoplayer( player ); visible = 1; if ( isdefined( self.stub.trigger_target.machine_user ) ) { if ( player != self.stub.trigger_target.machine_user ) visible = 0; } else if ( !player can_buy_perk() ) visible = 0; if ( !visible ) return false; self setvisibletoplayer( player ); return true; } can_buy_perk() { if ( isdefined( self.is_drinking ) && self.is_drinking > 0 ) return false; current_weapon = self getcurrentweapon(); if ( is_equipment_that_blocks_purchase( current_weapon ) ) return false; if ( self in_revive_trigger() ) return false; if ( current_weapon == "none" ) return false; return true; }