Question Increment player's score cost when buying a door/debris

BUBBER_

New Member
Messages
1
Reaction score
0
Points
1
Hello,
I got the door count to increment per person when someone opens a door but how would I get the cumulative cost of doors/debris per person opened.

UPDATE: I got it to work using array::thread_all, I found this works for all trigger objects with a function handler. Some code was pulled from scripts\zm\_zm_blockers.gsc

C-like:
function init(){
    zombie_doors = GetEntArray( "zombie_door", "targetname" );
     if (isdefined(zombie_doors)){
             array::thread_all(zombie_doors,&monitorDoors);
      }
     zombie_debris = GetEntArray( "zombie_debris", "targetname" );
     if (isdefined(zombie_debris)){
             array::thread_all(zombie_debris,&monitorDebris);
      }
}

function monitorDoors(){
    self endon("disconnect");
    self endon("destroyMenu");
    level endon("game_ended");
    self waittill( "trigger", who, force );
    if ( isdefined( level.custom_door_buy_check ) )
    {
        if ( !who [[ level.custom_door_buy_check ]]( self ) )
        {
            return false;
        }
    }
    if(GetDvarInt( "zombie_unlock_all") > 0 || IS_TRUE( force ) )
    {
        return true;
    }

    if( !who UseButtonPressed() )
    {
        return false;
    }

    if( who zm_utility::in_revive_trigger() )
    {
        return false;
    }

    if( IS_DRINKING(who.is_drinking) )
    {
        return false;
    }
    cost = 0;
    upgraded = 0;
    if( zm_utility::is_player_valid( who ) )
    {
        players = GetPlayers();
        cost = self.zombie_cost;
        if (self._door_open == true){
            return false;
        }
        else if (who zm_score::can_player_purchase( cost )){
            who incSpent(cost);
        }
        else{
            return false;
        }
    }
}

function monitorDebris(){
    self endon("disconnect");
    self endon("destroyMenu");
    level endon("game_ended");
    while( 1 ){
        self waittill( "trigger", who, force );

        if(GetDvarInt( "zombie_unlock_all") > 0 || IS_TRUE( force ) )
        {
            //bypass.
        }
        else
        {
            if( !who UseButtonPressed() )
            {
                continue;
            }

            if( IS_DRINKING(who.is_drinking) )
            {
                continue;
            }

            if( who zm_utility::in_revive_trigger() )
            {
                continue;
            }
        }

        if( zm_utility::is_player_valid( who ) )
        {
            // Can we afford this door?
            players = GetPlayers();
            if(GetDvarInt( "zombie_unlock_all") > 0)
            {
                // bypass charge.
            }
            else if ( /*players.size == 1 &&*/ who zm_score::can_player_purchase( self.zombie_cost ) )
            {
                who incSpent(self.zombie_cost);
                return true;
            }
            else
            {
                continue;
            }
    }
}
}
 
Last edited:
Top