コード例 #1
0
//-----------------------------------------------------------------------------
// Purpose: 
//-----------------------------------------------------------------------------
void CPropVehicleDriveable::Use( CBaseEntity *pActivator, CBaseEntity *pCaller, USE_TYPE useType, float value )
{
	CBasePlayer *pPlayer = ToBasePlayer( pActivator );
	if ( !pPlayer )
		return;

	ResetUseKey( pPlayer );

	// Find out which hitbox the player's eyepoint is within
	int iEntryAnim = m_pServerVehicle->GetEntryAnimForPoint( pPlayer->EyePosition() );

	// Are we in an entrypoint zone? 
	if ( iEntryAnim != ACTIVITY_NOT_AVAILABLE )
	{
		// Check to see if this vehicle can be controlled or if it's locked
		if ( CanControlVehicle() && CanEnterVehicle(pPlayer) )
		{
			pPlayer->GetInVehicle( GetServerVehicle(), VEHICLE_DRIVER);

			// Setup the "enter" vehicle sequence and skip the animation if it isn't present.
			m_flCycle = 0;
			m_flAnimTime = gpGlobals->curtime;
			ResetSequence( iEntryAnim );
			ResetClientsideFrame();
			m_bEnterAnimOn = true;
		}
	}
}
コード例 #2
0
            void UpdateAI(uint32 diff)
            {
                VehicleAI::UpdateAI(diff);

                checkTimer += diff;
                if (checkTimer >= 1000)
                {
                    checkTimer = 0;
                    if (me->GetVehicleKit())
                        for (SeatMap::iterator itr = me->GetVehicleKit()->Seats.begin(); itr != me->GetVehicleKit()->Seats.end(); ++itr)
                            if (const VehicleSeatEntry* seatInfo = itr->second.SeatInfo)
                                if (seatInfo->m_flags & VEHICLE_SEAT_FLAG_CAN_CONTROL)
                                    if (Unit* passenger = ObjectAccessor::GetUnit(*me, itr->second.Passenger.Guid))
                                        if (!CanControlVehicle(passenger))
                                        {
                                            passenger->ExitVehicle();
                                            return;
                                        }
                }
            }