本文整理汇总了C++中instance_naxxramas::GetData方法的典型用法代码示例。如果您正苦于以下问题:C++ instance_naxxramas::GetData方法的具体用法?C++ instance_naxxramas::GetData怎么用?C++ instance_naxxramas::GetData使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类instance_naxxramas
的用法示例。
在下文中一共展示了instance_naxxramas::GetData方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: MoveInLineOfSight
void MoveInLineOfSight(Unit* pWho) override
{
if (m_pInstance && m_pInstance->GetData(TYPE_KELTHUZAD) != IN_PROGRESS)
return;
ScriptedAI::MoveInLineOfSight(pWho);
}
示例2: SetupChain
bool SetupChain()
{
// Check, if instance_ script failed or encounter finished
if (!m_pInstance || m_pInstance->GetData(TYPE_THADDIUS) == DONE)
return true;
GameObject* pNoxTeslaFeugen = m_pInstance->GetSingleGameObjectFromStorage(GO_CONS_NOX_TESLA_FEUGEN);
GameObject* pNoxTeslaStalagg = m_pInstance->GetSingleGameObjectFromStorage(GO_CONS_NOX_TESLA_STALAGG);
// Try again, till Tesla GOs are spawned
if (!pNoxTeslaFeugen || !pNoxTeslaStalagg)
return false;
m_bToFeugen = m_creature->GetDistanceOrder(pNoxTeslaFeugen, pNoxTeslaStalagg);
return DoCastSpellIfCan(m_creature, m_bToFeugen ? SPELL_FEUGEN_CHAIN : SPELL_STALAGG_CHAIN) == CAST_OK;
}
示例3: IsCentralDoorClosed
bool IsCentralDoorClosed()
{
return m_pInstance && m_pInstance->GetData(TYPE_GOTHIK) != SPECIAL;
}
示例4: UpdateAI
void UpdateAI(const uint32 uiDiff) override
{
if (!m_creature->SelectHostileTarget() || !m_creature->getVictim())
return;
if (!m_pInstance || m_pInstance->GetData(TYPE_KELTHUZAD) != IN_PROGRESS)
return;
if (m_uiPhase == PHASE_INTRO)
{
if (m_uiIntroPackCount < 7)
{
if (m_uiSummonIntroTimer < uiDiff)
{
if (!m_uiIntroPackCount)
DoScriptText(SAY_SUMMON_MINIONS, m_creature);
SummonIntroCreatures(m_uiIntroPackCount);
++m_uiIntroPackCount;
m_uiSummonIntroTimer = 2000;
}
else
m_uiSummonIntroTimer -= uiDiff;
}
else
{
if (m_uiPhase1Timer < uiDiff)
{
m_uiPhase = PHASE_NORMAL;
DespawnIntroCreatures();
m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
SetCombatMovement(true);
m_creature->GetMotionMaster()->MoveChase(m_creature->getVictim());
DoScriptText(EMOTE_PHASE2, m_creature);
switch (urand(0, 2))
{
case 0: DoScriptText(SAY_AGGRO1, m_creature); break;
case 1: DoScriptText(SAY_AGGRO2, m_creature); break;
case 2: DoScriptText(SAY_AGGRO3, m_creature); break;
};
}
else
m_uiPhase1Timer -= uiDiff;
if (m_uiSoldierCount < MAX_SOLDIER_COUNT)
{
if (m_uiSoldierTimer < uiDiff)
{
SummonMob(NPC_SOLDIER_FROZEN);
++m_uiSoldierCount;
m_uiSoldierTimer = 3000;
}
else
m_uiSoldierTimer -= uiDiff;
}
if (m_uiAbominationCount < MAX_ABOMINATION_COUNT)
{
if (m_uiAbominationTimer < uiDiff)
{
SummonMob(NPC_UNSTOPPABLE_ABOM);
++m_uiAbominationCount;
m_uiAbominationTimer = 25000;
}
else
m_uiAbominationTimer -= uiDiff;
}
if (m_uiBansheeCount < MAX_BANSHEE_COUNT)
{
if (m_uiBansheeTimer < uiDiff)
{
SummonMob(NPC_SOUL_WEAVER);
++m_uiBansheeCount;
m_uiBansheeTimer = 25000;
}
else
m_uiBansheeTimer -= uiDiff;
}
}
}
else // normal or guardian phase
{
if (m_uiFrostBoltTimer < uiDiff)
{
if (DoCastSpellIfCan(m_creature->getVictim(), m_bIsRegularMode ? SPELL_FROST_BOLT : SPELL_FROST_BOLT_H) == CAST_OK)
m_uiFrostBoltTimer = urand(1000, 60000);
}
else
m_uiFrostBoltTimer -= uiDiff;
if (m_uiFrostBoltNovaTimer < uiDiff)
{
if (DoCastSpellIfCan(m_creature->getVictim(), m_bIsRegularMode ? SPELL_FROST_BOLT_NOVA : SPELL_FROST_BOLT_NOVA_H) == CAST_OK)
m_uiFrostBoltNovaTimer = 15000;
}
else
//.........这里部分代码省略.........