本文整理汇总了C++中IsCombatMovementAllowed函数的典型用法代码示例。如果您正苦于以下问题:C++ IsCombatMovementAllowed函数的具体用法?C++ IsCombatMovementAllowed怎么用?C++ IsCombatMovementAllowed使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了IsCombatMovementAllowed函数的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: AttackStart
void ScriptedAI::AttackStart(Unit* who)
{
if (IsCombatMovementAllowed())
CreatureAI::AttackStart(who);
else
AttackStartNoMove(who);
}
示例2: Reset
void Reset()
{
if (!IsCombatMovementAllowed())
SetCombatMovement(true);
Phase = PHASE_START;
FlameBreathTimer = urand(10000, 20000);
TailSweepTimer = urand(15000, 20000);
CleaveTimer = urand(2000, 5000);
WingBuffetTimer = urand(10000, 20000);
MovePoint = urand(0, 5);
MovementTimer = 14000;
PointData = GetMoveData();
FireballTimer = 15000;
WhelpTimer = 60000;
LairGuardTimer = 60000;
DeepBreathTimer = 85000;
BellowingRoarTimer = 30000;
Summons.DespawnAll();
SummonWhelpCount = 0;
IsMoving = false;
if (instance)
{
instance->SetData(DATA_ONYXIA, NOT_STARTED);
instance->SetData(DATA_ONYXIA_PHASE, Phase);
instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT);
}
}
示例3: Reset
void Reset() override
{
Initialize();
if (!IsCombatMovementAllowed())
SetCombatMovement(true);
_Reset();
me->SetReactState(REACT_AGGRESSIVE);
instance->SetData(DATA_ONYXIA_PHASE, Phase);
instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT);
}
示例4: JustRespawned
void FollowerAI::JustRespawned()
{
m_uiFollowState = STATE_FOLLOW_NONE;
if (!IsCombatMovementAllowed())
SetCombatMovement(true);
if (me->getFaction() != me->GetCreatureTemplate()->faction_A)
me->setFaction(me->GetCreatureTemplate()->faction_A);
Reset();
}
示例5: AttackStart
void npc_escortAI::AttackStart(Unit* who)
{
if (!who)
return;
if (me->Attack(who, true))
{
if (me->GetMotionMaster()->GetCurrentMovementGeneratorType() == POINT_MOTION_TYPE)
me->GetMotionMaster()->MovementExpired();
if (IsCombatMovementAllowed())
me->GetMotionMaster()->MoveChase(who);
}
}
示例6: AttackStart
void AttackStart(Unit* who)
{
if (!who)
return;
if (me->Attack(who, true))
{
me->SetInCombatWith(who);
who->SetInCombatWith(me);
if (IsCombatMovementAllowed())
me->GetMotionMaster()->MoveChase(who);
}
}
示例7: JustRespawned
void npc_escortAI::JustRespawned()
{
m_uiEscortState = STATE_ESCORT_NONE;
if (!IsCombatMovementAllowed())
SetCombatMovement(true);
//add a small delay before going to first waypoint, normal in near all cases
m_uiWPWaitTimer = 2500;
if (me->getFaction() != me->GetCreatureTemplate()->faction)
me->RestoreFaction();
Reset();
}
示例8: AttackStart
void FollowerAI::AttackStart(Unit* who)
{
if (!who)
return;
if (me->Attack(who, true))
{
me->AddThreat(who, 0.0f);
me->SetInCombatWith(who);
who->SetInCombatWith(me);
if (me->HasUnitState(UNIT_STATE_FOLLOW))
me->ClearUnitState(UNIT_STATE_FOLLOW);
if (IsCombatMovementAllowed())
me->GetMotionMaster()->MoveChase(who);
}
}
示例9: AttackStart
void FollowerAI::AttackStart(Unit* who)
{
if (!who)
return;
if (me->Attack(who, true))
{
// This is done in Unit::Attack function which wont bug npcs by not adding threat upon combat start...
//me->AddThreat(who, 0.0f);
//me->SetInCombatWith(who);
//who->SetInCombatWith(me);
if (me->HasUnitState(UNIT_STATE_FOLLOW))
me->ClearUnitState(UNIT_STATE_FOLLOW);
if (IsCombatMovementAllowed())
me->GetMotionMaster()->MoveChase(who);
}
}
示例10: AddEscortState
void SmoothEscortAI::AttackStart(Unit* who)
{
if (!who)
return;
if (me->Attack(who, true))
{
if (!HasEscortState(ESCORT_STATE_COMBAT))
{
AddEscortState(ESCORT_STATE_COMBAT);
me->StopMoving();
Position pos;
me->GetPosition(&pos);
me->SetHomePosition(pos);
}
if (IsCombatMovementAllowed())
me->GetMotionMaster()->MoveChase(who);
}
}