您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ HasCondition函数代码示例

51自学网 2021-06-01 21:25:30
  C++
这篇教程C++ HasCondition函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中HasCondition函数的典型用法代码示例。如果您正苦于以下问题:C++ HasCondition函数的具体用法?C++ HasCondition怎么用?C++ HasCondition使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了HasCondition函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: switch

//---------------------------------------------------------//---------------------------------------------------------int CNPC_Roller::SelectSchedule ( void ){	if( m_fHACKJustSpawned )	{		m_fHACKJustSpawned = false;		return SCHED_ROLLER_WAIT_FOR_PHYSICS;	}	switch( m_NPCState )	{	case NPC_STATE_COMBAT:		if( HasCondition( COND_ROLLER_PHYSICS ) )		{			return SCHED_ROLLER_WAIT_FOR_PHYSICS;		}		break;	default:		if( HasCondition( COND_ROLLER_PHYSICS ) )		{			return SCHED_ROLLER_WAIT_FOR_PHYSICS;		}		return SCHED_IDLE_STAND;		break;	}	return SCHED_IDLE_STAND;}
开发者ID:RaisingTheDerp,项目名称:raisingthebar,代码行数:31,


示例2: SelectSchedule

//------------------------------------------------------------------------------// Purpose: routine called to select what schedule we want to run// Output : returns the schedule id of the schedule we want to run//------------------------------------------------------------------------------int CAI_ASW_ShieldBehavior::SelectSchedule(){	if ( !HasCondition( COND_CAN_MELEE_ATTACK2 ) )	{		return SCHED_SHIELD_LOWER;	}	if ( GetBehaviorParam( m_StatusParm ) == 0 )	{		return SCHED_SHIELD_PREPARE;	}	else	{		return SCHED_SHIELD_MAINTAIN;	}#if 0	if ( m_bShieldLowering == true )	{		return SCHED_SHIELD_LOWER;	}	if ( GetBehaviorParam( m_StatusParm ) == 0 )	{		return SCHED_SHIELD_PREPARE;	}	if ( HasCondition( COND_SHIELD_CAN_FLICK ) )	{		return SCHED_SHIELD_FLICK;	}	return SCHED_SHIELD_MAINTAIN;#endif}
开发者ID:Au-heppa,项目名称:swarm-sdk,代码行数:39,


示例3: switch

int CNPC_Hydra::SelectSchedule (){	switch ( m_NPCState )	{	case NPC_STATE_IDLE:		{			SetState( NPC_STATE_ALERT );			return SCHED_HYDRA_DEPLOY;		}		break;	case NPC_STATE_ALERT:		{			return SCHED_HYDRA_STAB;		}		break;	case NPC_STATE_COMBAT:		{			if (HasCondition( COND_HYDRA_SNAGGED ))			{				return SCHED_HYDRA_PULLBACK;			}			else if (HasCondition( COND_HYDRA_OVERSTRETCH ))			{				return SCHED_HYDRA_STAB;			}			return SCHED_HYDRA_STAB;		}		break;		}	return BaseClass::SelectSchedule();}
开发者ID:Adidasman1,项目名称:source-sdk-2013,代码行数:34,


示例4: SelectUnreachableSchedule

// note: mostly copied from shover parent (no clean way to call up and extend), with the jump part addedint	CASW_Alien_Jumper::SelectCombatSchedule( void ){	//Physics target	if ( HasCondition( COND_ALIEN_SHOVER_PHYSICS_TARGET ) )	{		//Msg("Alien shoving physics object from selectcombatschedule/n");		return SCHED_ALIEN_SHOVER_PHYSICS_ATTACK;	}	// Attack if we can	if ( HasCondition(COND_CAN_MELEE_ATTACK1) )		return SCHED_MELEE_ATTACK1;	// See if we can bash what's in our way, or roar	if ( HasCondition( COND_ENEMY_UNREACHABLE ) )	{		int iUnreach = SelectUnreachableSchedule();		if (iUnreach != -1)			return iUnreach;	}	// Try to jump	if ( HasCondition( COND_ASW_ALIEN_CAN_JUMP ) )		return SCHED_ASW_ALIEN_JUMP;	return BaseClass::BaseClass::SelectSchedule();}
开发者ID:BenLubar,项目名称:riflemod,代码行数:28,


示例5: GetBot

//================================================================================//================================================================================float CHuntEnemySchedule::GetDesire() const{    if ( !GetMemory() || !GetLocomotion() )        return BOT_DESIRE_NONE;    if ( !GetDecision()->CanHuntThreat() )        return BOT_DESIRE_NONE;    CEntityMemory *memory = GetBot()->GetPrimaryThreat();    if ( memory == NULL )        return BOT_DESIRE_NONE;    // We have no vision of the enemy    if ( HasCondition( BCOND_ENEMY_LOST ) ) {        // But we have a vision of his last position and we are close        if ( HasCondition( BCOND_ENEMY_LAST_POSITION_VISIBLE ) && (HasCondition( BCOND_ENEMY_TOO_NEAR ) || HasCondition( BCOND_ENEMY_NEAR )) )            return BOT_DESIRE_NONE;                return 0.65f;    }    // We do not have direct vision to the enemy (a person, window, etc.)    if ( HasCondition( BCOND_ENEMY_OCCLUDED ) )        return 0.65f;    // We do not have range of attack    if ( HasCondition( BCOND_TOO_FAR_TO_ATTACK ) )        return 0.38f;    return BOT_DESIRE_NONE;}
开发者ID:WorldGamers,项目名称:Mobile-Forces-Source,代码行数:34,


示例6: switch

NPC_STATE CNPC_Cremator::SelectIdealState( void ){	switch( m_NPCState )	{	case NPC_STATE_COMBAT:		{			if ( GetEnemy() == NULL )			{				if ( !HasCondition( COND_ENEMY_DEAD ) )				{					SetCondition( COND_ENEMY_DEAD ); // TODO: patrolling				}				return NPC_STATE_ALERT;			}			else if ( HasCondition( COND_ENEMY_DEAD ) )			{				//AnnounceEnemyKill(GetEnemy());			}		}	default:		{			return BaseClass::SelectIdealState();		}	}	return GetIdealState();}
开发者ID:RaraFolf,项目名称:FIREFIGHT-RELOADED-src-sdk-2013,代码行数:28,


示例7: SelectScheduleUpdateWeapon

int CAI_StandoffBehavior::SelectScheduleUpdateWeapon( void ){	// Check if need to reload	if ( HasCondition ( COND_NO_PRIMARY_AMMO ) || HasCondition ( COND_LOW_PRIMARY_AMMO ))	{		if ( m_params.fCoverOnReload )			return SCHED_HIDE_AND_RELOAD;		else			return SCHED_RELOAD;	}		// Otherwise, update planned shots to fire before taking cover again	if ( HasCondition( COND_LIGHT_DAMAGE ) )	{		// if hurt:		int iPercent = random->RandomInt(0,99);		if ( iPercent <= m_params.oddsCover && GetEnemy() != NULL )		{			SetReuseCurrentCover();			m_ShotRegulator.SetShots( ( m_ShotRegulator.GetShots() > 1 ) ? 1 : 0 );		}	}	m_ShotRegulator.Update();	return SCHED_NONE;}
开发者ID:RaisingTheDerp,项目名称:raisingthebar,代码行数:28,


示例8: StandoffMsg

int CAI_StandoffBehavior::SelectScheduleUpdateWeapon( void ){	// Check if need to reload	if ( HasCondition ( COND_NO_PRIMARY_AMMO ) || HasCondition ( COND_LOW_PRIMARY_AMMO ))	{		StandoffMsg( "Out of ammo, reloading/n" );		if ( m_params.fCoverOnReload )		{			GetOuter()->SpeakSentence( STANDOFF_SENTENCE_OUT_OF_AMMO );			return SCHED_HIDE_AND_RELOAD;		}				return SCHED_RELOAD;	}		// Otherwise, update planned shots to fire before taking cover again	if ( HasCondition( COND_LIGHT_DAMAGE ) )	{		// if hurt:		int iPercent = random->RandomInt(0,99);		if ( iPercent <= m_params.oddsCover && GetEnemy() != NULL )		{			SetReuseCurrentCover();			StandoffMsg( "Hurt, firing one more shot before cover/n" );			if ( !GetOuter()->GetShotRegulator()->IsInRestInterval() )			{				GetOuter()->GetShotRegulator()->SetBurstShotsRemaining( 1 );			}		}	}	return SCHED_NONE;}
开发者ID:BenLubar,项目名称:SwarmDirector2,代码行数:34,


示例9: GatherConditions

//---------------------------------------------------------//---------------------------------------------------------void CNPC_GroundTurret::GatherConditions(){	if( !IsEnabled() )	{		return;	}	if( !IsOpen() && !UTIL_FindClientInPVS( edict() ) )	{		return;	}	// Throw away old enemies so the turret can retire	AIEnemiesIter_t iter;	for( AI_EnemyInfo_t *pEMemory = GetEnemies()->GetFirst(&iter); pEMemory != NULL; pEMemory = GetEnemies()->GetNext(&iter) )	{		if( pEMemory->timeLastSeen < gpGlobals->curtime - GROUNDTURRET_RETIRE_TIME )		{			pEMemory->hEnemy = NULL;		}	}	BaseClass::GatherConditions();	if( GetEnemy() && HasCondition(COND_SEE_ENEMY) )	{		m_flTimeLastSawEnemy = gpGlobals->curtime;	}	else	{		if( gpGlobals->curtime - m_flTimeLastSawEnemy >= GROUNDTURRET_RETIRE_TIME )		{			m_OnAreaClear.FireOutput(this, this);			m_flTimeLastSawEnemy = FLT_MAX;			return;		}	}	if( HasCondition( COND_SEE_ENEMY ) )	{		m_bSeeEnemy = true;	}	else	{		m_bSeeEnemy = false;	}	if( GetEnemy() && m_bSeeEnemy && IsEnabled() )	{		if( m_flTimeNextShoot < gpGlobals->curtime )		{			Shoot();		}	}}
开发者ID:Au-heppa,项目名称:source-sdk-2013,代码行数:58,


示例10: HasCondition

bool CAI_LeadBehavior::CanSelectSchedule(){ 	if ( !AI_GetSinglePlayer() || AI_GetSinglePlayer()->IsDead() )		return false;	bool fAttacked = ( HasCondition( COND_LIGHT_DAMAGE ) || HasCondition( COND_HEAVY_DAMAGE ) );	bool fNonCombat = ( GetNpcState() == NPC_STATE_IDLE || GetNpcState() == NPC_STATE_ALERT );		return ( !fAttacked && (fNonCombat || m_args.bLeadDuringCombat) && HasGoal() );}
开发者ID:Adidasman1,项目名称:source-sdk-2013,代码行数:10,


示例11: CalcIdealYaw

//-----------------------------------------------------------------------------// Purpose: // Input  : &vecTarget - // Output : float//-----------------------------------------------------------------------------float CNPC_Bug_Warrior::CalcIdealYaw( const Vector &vecTarget ){	//If we can see our enemy but not reach them, face them always	if ( ( GetEnemy() != NULL ) && ( HasCondition( COND_SEE_ENEMY ) && HasCondition( COND_ENEMY_UNREACHABLE ) ) )	{		return UTIL_VecToYaw ( GetEnemy()->GetAbsOrigin() - GetAbsOrigin() );	}	return BaseClass::CalcIdealYaw( vecTarget );}
开发者ID:RaisingTheDerp,项目名称:raisingthebar,代码行数:15,


示例12: HasCondition

bool CNPC_Tentacle::HeardAnything( void ){	if ( HasCondition( COND_HEAR_DANGER ) || // I remove a bunch of sounds from here on purpose. Talk to me if you're changing this!(sjb)		 HasCondition( COND_HEAR_COMBAT ) ||		 HasCondition( COND_HEAR_WORLD )  ||		 HasCondition( COND_HEAR_PLAYER ) )		 return true;	return false;}
开发者ID:AgentAgrimar,项目名称:source-sdk-trilogy,代码行数:10,


示例13: SetCondition

//-----------------------------------------------------------------------------// Purpose: Move the zombie to the vehicle//-----------------------------------------------------------------------------int CAI_PassengerBehaviorZombie::SelectSchedule( void ){	// See if our enemy got out	if ( GetOuter()->GetEnemy() != NULL && EnemyInVehicle() == false  )	{		if ( GetPassengerState() == PASSENGER_STATE_INSIDE )		{			// Exit the vehicle			SetCondition( COND_PASSENGER_EXITING );		}		else if ( GetPassengerState() == PASSENGER_STATE_OUTSIDE )		{			// Our target has left the vehicle and we're outside as well, so give up			Disable();			return BaseClass::SelectSchedule();		}	}	// Entering schedule	if ( HasCondition( COND_PASSENGER_ENTERING ) )	{		ClearCondition( COND_PASSENGER_ENTERING );		return SCHED_PASSENGER_ZOMBIE_ENTER_VEHICLE;	}	// Exiting schedule	if ( HasCondition( COND_PASSENGER_EXITING ) )	{		ClearCondition( COND_PASSENGER_EXITING );		return SCHED_PASSENGER_ZOMBIE_EXIT_VEHICLE;	}	// Select different schedules based on our state	PassengerState_e nState = GetPassengerState();	int nNewSchedule = SCHED_NONE;	if ( nState == PASSENGER_STATE_INSIDE )	{		nNewSchedule = SelectInsideSchedule();		if ( nNewSchedule != SCHED_NONE )			return nNewSchedule;	}	else if ( nState == PASSENGER_STATE_OUTSIDE )	{		nNewSchedule = SelectOutsideSchedule();		if ( nNewSchedule != SCHED_NONE )			return nNewSchedule;	}	// Worst case he just stands here	Assert(0);	return SCHED_IDLE_STAND;}
开发者ID:SizzlingStats,项目名称:hl2sdk-ob-valve,代码行数:56,


示例14: GetEnemy

//=========================================================// CheckRangeAttack1 //// !!!LATER - we may want to load balance this. Several// tracelines are done, so we may not want to do this every// server frame. Definitely not while firing. //=========================================================int CNPC_AlienGrunt::RangeAttack1Conditions ( float flDot, float flDist ){	if ( gpGlobals->curtime < m_flNextHornetAttackCheck )	{		if ( HasCondition( COND_SEE_ENEMY ) )		{			if ( m_fCanHornetAttack == true )			{				 return COND_CAN_RANGE_ATTACK1;			}			else			{				return COND_NONE;			}		}		else			return COND_NONE;	}	if ( flDist < AGRUNT_MELEE_DIST )		 return COND_NONE;	if ( flDist > 1024 )		 return COND_NONE;	if ( flDot < 0.5 )		 return COND_NONE;		if ( HasCondition( COND_SEE_ENEMY ) )	{		trace_t tr;		Vector	vecArmPos;		QAngle	angArmDir;				// verify that a shot fired from the gun will hit the enemy before the world.		// !!!LATER - we may wish to do something different for projectile weapons as opposed to instant-hit		GetAttachment( "0", vecArmPos, angArmDir );		UTIL_TraceLine( vecArmPos, GetEnemy()->BodyTarget( vecArmPos ), MASK_SOLID, this, COLLISION_GROUP_NONE, &tr);				if ( tr.fraction == 1.0 || tr.m_pEnt == GetEnemy() )		{			m_flNextHornetAttackCheck = gpGlobals->curtime + random->RandomFloat( 2, 5 );			m_fCanHornetAttack = true;						return COND_CAN_RANGE_ATTACK1;		}	}		m_flNextHornetAttackCheck = gpGlobals->curtime + 0.2;// don't check for half second if this check wasn't successful	m_fCanHornetAttack = false;	return COND_NONE;}
开发者ID:hitmen047,项目名称:TF2HLCoop,代码行数:59,


示例15: AddZigZagToPath

void CNPC_Stalker::AddZigZagToPath(void) {	// If already on a detour don't add a zigzag	if (GetNavigator()->GetCurWaypointFlags() & bits_WP_TO_DETOUR)	{		return;	}	// If enemy isn't facing me or occluded, don't add a zigzag	if (HasCondition(COND_ENEMY_OCCLUDED) || !HasCondition ( COND_ENEMY_FACING_ME ))	{		return;	}	Vector waypointPos = GetNavigator()->GetCurWaypointPos();	Vector waypointDir = (waypointPos - GetAbsOrigin());	// If the distance to the next node is greater than ZIG_ZAG_SIZE	// then add a random zig/zag to the path	if (waypointDir.LengthSqr() > ZIG_ZAG_SIZE)	{		// Pick a random distance for the zigzag (less that sqrt(ZIG_ZAG_SIZE)		float distance = random->RandomFloat( 30, 60 );		// Get me a vector orthogonal to the direction of motion		VectorNormalize( waypointDir );		Vector vDirUp(0,0,1);		Vector vDir;		CrossProduct( waypointDir, vDirUp, vDir);		// Pick a random direction (left/right) for the zigzag		if (random->RandomInt(0,1))		{			vDir = -1 * vDir;		}		// Get zigzag position in direction of target waypoint		Vector zigZagPos = GetAbsOrigin() + waypointDir * 60;		// Now offset 		zigZagPos = zigZagPos + (vDir * distance);		// Now make sure that we can still get to the zigzag position and the waypoint		AIMoveTrace_t moveTrace1, moveTrace2;		GetMoveProbe()->MoveLimit( NAV_GROUND, GetAbsOrigin(), zigZagPos, GetAITraceMask(), NULL, &moveTrace1);		GetMoveProbe()->MoveLimit( NAV_GROUND, zigZagPos, waypointPos, GetAITraceMask(), NULL, &moveTrace2);		if ( !IsMoveBlocked( moveTrace1 ) && !IsMoveBlocked( moveTrace2 ) )		{			GetNavigator()->PrependWaypoint( zigZagPos, NAV_GROUND, bits_WP_TO_DETOUR );		}	}}
开发者ID:Muini,项目名称:Nag-asw,代码行数:52,


示例16: SelectSchedule

//------------------------------------------------------------------------------// Purpose: routine called to select what schedule we want to run// Output : returns the schedule id of the schedule we want to run//------------------------------------------------------------------------------int CAI_ASW_HealOtherBehavior::SelectSchedule(){	if ( HasCondition( COND_HEAL_OTHER_NOT_HAS_TARGET ) || HasCondition( COND_HEAL_OTHER_HAS_FULL_HEALTH ) || HasCondition( COND_HEAL_OTHER_NOT_TARGET_IN_RANGE ) || HasCondition( COND_HEAL_OTHER_TARGET_CHANGED ) )	{		return SCHED_HEAL_OTHER_MOVE_TO_CANDIDATE;	}	else	{		return SCHED_HEAL_WAIT;	}//	return BaseClass::SelectSchedule();}
开发者ID:jtanx,项目名称:ch1ckenscoop,代码行数:17,


示例17: SelectSchedule

//-----------------------------------------------------------------------------// Purpose: ////// Output : //-----------------------------------------------------------------------------int CNPC_RollerDozer::SelectSchedule ( void ){	if( HasCondition( COND_ROLLERDOZER_FOUND_DEBRIS ) )	{		return SCHED_ROLLERDOZER_CLEAR_DEBRIS;	}	if( HasCondition( COND_ROLLER_PHYSICS ) )	{		m_hDebris = NULL;	}		return BaseClass::SelectSchedule();}
开发者ID:RaisingTheDerp,项目名称:raisingthebar,代码行数:20,


示例18: CanSelectSchedule

//------------------------------------------------------------------------------// Purpose: determines if we can use this behavior currently// Output : returns true if this behavior is able to run//------------------------------------------------------------------------------bool CAI_ASW_RetreatBehavior::CanSelectSchedule(){	if ( !GetOuter()->IsInterruptable() )	{		return false;	}	if ( !HasCondition( COND_LIGHT_DAMAGE ) && !HasCondition( COND_HEAVY_DAMAGE ) )	{		return false;	}	return BaseClass::CanSelectSchedule();}
开发者ID:Au-heppa,项目名称:swarm-sdk,代码行数:18,


示例19: HasCondition

int CNPC_SO_BaseZombie::SelectAlertSchedule(){	// Improve zombies' perception of their surroundings	// http://developer.valvesoftware.com/wiki/AI_Perception_Behavior_Enhancement	if ( HasCondition ( COND_HEAR_DANGER ) ||		 HasCondition ( COND_HEAR_PLAYER ) ||		 HasCondition ( COND_HEAR_WORLD  ) ||		 HasCondition ( COND_HEAR_BULLET_IMPACT ) ||		 HasCondition ( COND_HEAR_COMBAT ) )	{		return SCHED_INVESTIGATE_SOUND;	}	return BaseClass::SelectAlertSchedule();}
开发者ID:jonnyboy0719,项目名称:situation-outbreak-two,代码行数:15,


示例20: ClearCondition

//-----------------------------------------------------------------------------// Purpose: //-----------------------------------------------------------------------------int CNPC_VehicleDriver::SelectSchedule( void ){	// Vehicle driver hangs in the air inside the vehicle, so we never need to fall to ground	ClearCondition( COND_FLOATING_OFF_GROUND );	if ( HasSpawnFlags(SF_VEHICLEDRIVER_INACTIVE) )	{		SetState( NPC_STATE_IDLE );		return SCHED_VEHICLEDRIVER_INACTIVE;	}	if ( GetGoalEnt() )		return SCHED_VEHICLEDRIVER_DRIVE_PATH;	switch ( m_NPCState )	{	case NPC_STATE_IDLE:		break;	case NPC_STATE_ALERT:		break;	case NPC_STATE_COMBAT:		{			if ( HasCondition(COND_NEW_ENEMY) || HasCondition( COND_ENEMY_DEAD ) )				return BaseClass::SelectSchedule();			if ( HasCondition(COND_SEE_ENEMY) )			{				// we can see the enemy				if ( HasCondition(COND_CAN_RANGE_ATTACK2) )					return SCHED_RANGE_ATTACK2;				if ( HasCondition(COND_CAN_RANGE_ATTACK1) )					return SCHED_RANGE_ATTACK1;				// What to do here? Not necessarily easy to face enemy.				//if ( HasCondition(COND_NOT_FACING_ATTACK) )					//return SCHED_COMBAT_FACE;			}			// We can see him, but can't shoot him. Just wait and hope he comes closer.			return SCHED_VEHICLEDRIVER_COMBAT_WAIT;		}		break;	}	return BaseClass::SelectSchedule();}
开发者ID:BenLubar,项目名称:SwarmDirector2,代码行数:51,


示例21: VecCheckThrow

//=========================================================// CheckRangeAttack2 - toss grenade is enemy gets in the way and is too close. //=========================================================int CNPC_HAssassin::RangeAttack2Conditions ( float flDot, float flDist ){	m_fThrowGrenade = false;	if ( !FBitSet ( GetEnemy()->GetFlags(), FL_ONGROUND ) )	{		// don't throw grenades at anything that isn't on the ground!		return COND_NONE;	}	// don't get grenade happy unless the player starts to piss you off	if ( m_iFrustration <= 2)		return COND_NONE;	if ( m_flNextGrenadeCheck < gpGlobals->curtime && !HasCondition( COND_ENEMY_OCCLUDED ) && flDist <= 512 )	{		Vector vTossPos;		QAngle vAngles;		GetAttachment( "grenadehand", vTossPos, vAngles );		Vector vecToss = VecCheckThrow( this, vTossPos, GetEnemy()->WorldSpaceCenter(), flDist, 0.5 ); // use dist as speed to get there in 1 second		if ( vecToss != vec3_origin )		{			m_vecTossVelocity = vecToss;			// throw a hand grenade			m_fThrowGrenade = TRUE;			return COND_CAN_RANGE_ATTACK2;		}	}	return COND_NONE;}
开发者ID:AgentAgrimar,项目名称:source-sdk-trilogy,代码行数:38,


示例22: IsHeavyDamage

//-----------------------------------------------------------------------------//-----------------------------------------------------------------------------bool CRebelZombie::IsHeavyDamage( const CTakeDamageInfo &info ){#ifdef HL2_EPISODIC	if ( info.GetDamageType() & DMG_BUCKSHOT )	{		if ( info.GetDamage() > (m_iMaxHealth/3) )			return true;	}	// Randomly treat all damage as heavy	if ( info.GetDamageType() & (DMG_BULLET | DMG_BUCKSHOT) )	{		// Don't randomly flinch if I'm melee attacking		if ( !HasCondition(COND_CAN_MELEE_ATTACK1) && (RandomFloat() > 0.5) )		{			// Randomly forget I've flinched, so that I'll be forced to play a big flinch			// If this doesn't happen, it means I may not fully flinch if I recently flinched			if ( RandomFloat() > 0.75 )			{				Forget(bits_MEMORY_FLINCHED);			}			return true;		}	}#endif // HL2_EPISODIC	return BaseClass::IsHeavyDamage(info);}
开发者ID:KyleGospo,项目名称:City-17-Episode-One-Source,代码行数:31,


示例23: SelectFailSchedule

int CRebelZombie::SelectFailSchedule( int failedSchedule, int failedTask, AI_TaskFailureCode_t taskFailCode ){	if ( HasCondition( COND_BLOCKED_BY_DOOR ) && m_hBlockingDoor != NULL )	{		ClearCondition( COND_BLOCKED_BY_DOOR );		if ( m_NextTimeToStartDoorBash.Expired() && failedSchedule != SCHED_ZOMBIE_BASH_DOOR )			return SCHED_ZOMBIE_BASH_DOOR;		m_hBlockingDoor = NULL;	}	if ( failedSchedule != SCHED_ZOMBIE_CHARGE_ENEMY && 		 IsPathTaskFailure( taskFailCode ) &&		 random->RandomInt( 1, 100 ) < 50 )	{		return SCHED_ZOMBIE_CHARGE_ENEMY;	}	if ( failedSchedule != SCHED_ZOMBIE_WANDER_ANGRILY &&		 ( failedSchedule == SCHED_TAKE_COVER_FROM_ENEMY || 		   failedSchedule == SCHED_CHASE_ENEMY_FAILED ) )	{		return SCHED_ZOMBIE_WANDER_ANGRILY;	}	return BaseClass::SelectFailSchedule( failedSchedule, failedTask, taskFailCode );}
开发者ID:KyleGospo,项目名称:City-17-Episode-One-Source,代码行数:26,


示例24: red

// Выбор скина для глаз крематора в зависимости от обстановки (уместно сравнить с Большими Папочками в Bioshock). В настоящее время не работает.void CNPC_Cremator::SelectSkin( void ) // doesn't quite work, it can turn eyes red ("combat" skin) when combating an enemy, but will not return to calm/alert skin when an enemy is dead{	if(m_NPCState == NPC_STATE_COMBAT)	{		m_nSkin = 3;		if ( HasCondition( COND_ENEMY_DEAD ) )		{			m_nSkin = 0;		}		if ( GetEnemy() == NULL )		{			m_nSkin = 1;		}	}	if(m_NPCState == NPC_STATE_ALERT)	{		m_nSkin = 3;		if ( GetEnemy() == NULL )		{			m_nSkin = 1;		}	}	if(m_NPCState == NPC_STATE_NONE)	{		m_nSkin = 1;	}}
开发者ID:RaraFolf,项目名称:FIREFIGHT-RELOADED-src-sdk-2013,代码行数:28,


示例25: return

//=========================================================// MeleeAttack2Conditions - bullsquid is a big guy, so has a longer// melee range than most monsters. This is the bite attack.// this attack will not be performed if the tailwhip attack// is valid.//=========================================================int CNPC_Bullsquid::MeleeAttack2Conditions( float flDot, float flDist ){	if ( flDist <= 85 && flDot >= 0.7 && !HasCondition( COND_CAN_MELEE_ATTACK1 ) )		// The player & bullsquid can be as much as their bboxes 		 return ( COND_CAN_MELEE_ATTACK2 );		return( COND_NONE );}
开发者ID:hitmen047,项目名称:TF2HLCoop,代码行数:13,


示例26:

int CNPC_APCDriver::RangeAttack2Conditions( float flDot, float flDist ){	if ( HasSpawnFlags(SF_APCDRIVER_NO_ROCKET_ATTACK) )		return COND_NONE;	if ( m_hAPC->m_lifeState != LIFE_ALIVE )		return COND_NONE;	if ( IsBeingCarried() || m_bFiringDisabled )		return COND_NONE;	if ( !HasCondition( COND_SEE_ENEMY ) )		return COND_NONE;	// Vehicle not ready to fire again yet?	if ( m_pVehicleInterface->Weapon_SecondaryCanFireAt() > gpGlobals->curtime + 0.1f )		return COND_NONE;	float flMinDist, flMaxDist;	m_pVehicleInterface->Weapon_SecondaryRanges( &flMinDist, &flMaxDist );	if (flDist < flMinDist)		return COND_NONE;	if (flDist > flMaxDist)		return COND_NONE;	return COND_CAN_RANGE_ATTACK2;}
开发者ID:Adidasman1,项目名称:source-sdk-2013,代码行数:29,


示例27: GatherEnemyConditions

void CASW_Parasite::GatherEnemyConditions( CBaseEntity *pEnemy ){	// Do the base class	BaseClass::GatherEnemyConditions( pEnemy );	// If we're not already too far away, check again	//TODO: Check to make sure we don't already have a condition set that removes the need for this	if ( HasCondition( COND_ENEMY_UNREACHABLE ) == false )	{		Vector	predPosition;		UTIL_PredictedPosition( GetEnemy(), 1.0f, &predPosition );		Vector	predDir = ( predPosition - GetAbsOrigin() );		float	predLength = VectorNormalize( predDir );		// See if we'll be outside our effective target range		if ( predLength > 2000 ) // m_flEludeDistance		{			Vector	predVelDir = ( predPosition - GetEnemy()->GetAbsOrigin() );			float	predSpeed  = VectorNormalize( predVelDir );			// See if the enemy is moving mostly away from us			if ( ( predSpeed > 512.0f ) && ( DotProduct( predVelDir, predDir ) > 0.0f ) )			{				// Mark the enemy as eluded and burrow away				ClearEnemyMemory();				SetEnemy( NULL );				SetIdealState( NPC_STATE_ALERT );				SetCondition( COND_ENEMY_UNREACHABLE );			}		}	}}
开发者ID:detoxhby,项目名称:SwarmDirector2,代码行数:33,


示例28: ClearCondition

//-----------------------------------------------------------------------------// Purpose: //-----------------------------------------------------------------------------void CNPC_Assassin::GatherEnemyConditions( CBaseEntity *pEnemy ){	ClearCondition( COND_ASSASSIN_ENEMY_TARGETTING_ME );	BaseClass::GatherEnemyConditions( pEnemy );	// See if we're being targetted specifically	if ( HasCondition( COND_ENEMY_FACING_ME ) )	{		Vector	enemyDir = GetAbsOrigin() - pEnemy->GetAbsOrigin();		VectorNormalize( enemyDir );		Vector	enemyBodyDir;		CBasePlayer	*pPlayer = ToBasePlayer( pEnemy );		if ( pPlayer != NULL )		{			enemyBodyDir = pPlayer->BodyDirection3D();		}		else		{			AngleVectors( pEnemy->GetAbsAngles(), &enemyBodyDir );		}		float	enemyDot = DotProduct( enemyBodyDir, enemyDir );		//FIXME: Need to refine this a bit		if ( enemyDot > 0.97f )		{			SetCondition( COND_ASSASSIN_ENEMY_TARGETTING_ME );		}	}}
开发者ID:0xFEEDC0DE64,项目名称:UltraGame,代码行数:36,


示例29: switch

//-----------------------------------------------------------------------------// Purpose: Translate base schedules into overridden forms//-----------------------------------------------------------------------------int CAI_BehaviorAlyxInjured::TranslateSchedule( int scheduleType ){	switch( scheduleType )	{	case SCHED_RUN_FROM_ENEMY:	case SCHED_RUN_FROM_ENEMY_MOB:		{			// Get under cover if we're able to			if ( ShouldRunToCover() )				return SCHED_INJURED_RUN_FROM_ENEMY;			// Run to our follow goal if we're too far away from it			if ( ShouldRunToFollowGoal() )				return SCHED_FOLLOW;			// Cower if surrounded			if ( HasCondition( COND_INJURED_OVERWHELMED ) )				return SCHED_INJURED_COWER;			// Face our enemies			return SCHED_INJURED_FEAR_FACE;		}		break;	case SCHED_RUN_FROM_ENEMY_FALLBACK:		return SCHED_INJURED_COWER;		break;	}	return BaseClass::TranslateSchedule( scheduleType );}
开发者ID:SizzlingStats,项目名称:hl2sdk-ob-valve,代码行数:34,



注:本文中的HasCondition函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ HasConditions函数代码示例
C++ HasClientObjectData函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。