本文整理汇总了C++中instance_icecrown_citadel类的典型用法代码示例。如果您正苦于以下问题:C++ instance_icecrown_citadel类的具体用法?C++ instance_icecrown_citadel怎么用?C++ instance_icecrown_citadel使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了instance_icecrown_citadel类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: MovementInform
void MovementInform(uint32 uiMoveType, uint32 uiPointId) override
{
if (uiMoveType != POINT_MOTION_TYPE)
return;
if (uiPointId == POINT_ID_EVADE)
{
m_creature->SetFacingTo(fIntroPosition[3]);
if (m_pInstance)
m_pInstance->SetData(TYPE_DEATHBRINGER_SAURFANG, FAIL);
}
else if (uiPointId == POINT_ID_INTRO)
{
if (m_pInstance)
m_pInstance->DoUseDoorOrButton(GO_SAURFANG_DOOR);
// Note: this should be done only after the intro event is finished
// ToDo: move this to the proper place after the intro will be implemented
// Also the faction needs to be checked if it should be handled in database
m_creature->setFaction(FACTION_ID_UNDEAD);
m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE | UNIT_FLAG_PASSIVE);
m_creature->SetInCombatWithZone();
}
}
示例2: JustReachedHome
void JustReachedHome() override
{
if (m_pInstance)
{
m_pInstance->SetData(TYPE_LADY_DEATHWHISPER, FAIL);
m_pInstance->SetSpecialAchievementCriteria(ACHIEVE_FULL_HOUSE, false);
}
}
示例3: JustReachedHome
void JustReachedHome() override
{
if (m_pInstance)
{
m_pInstance->SetData(TYPE_MARROWGAR, FAIL);
m_pInstance->SetSpecialAchievementCriteria(ACHIEVE_BONED, false);
}
}
示例4: UpdateAI
void UpdateAI(const uint32 uiDiff) override
{
if (!m_pInstance)
return;
if (m_pInstance->GetData(TYPE_PLAGUE_WING_ENTRANCE) != IN_PROGRESS)
return;
// random summon creatures
if (m_uiSummonTimer)
{
if (m_uiSummonTimer <= uiDiff)
{
float fX, fY, fZ;
uint8 uiMaxInsects = urand(MAX_INSECT_PER_ROUND * 0.5, MAX_INSECT_PER_ROUND);
for (uint8 i = 0; i < uiMaxInsects; ++i)
{
m_creature->GetRandomPoint(m_creature->GetPositionX(), m_creature->GetPositionY(), m_creature->GetPositionZ(), 15.0f, fX, fY, fZ);
m_creature->SummonCreature(NPC_FLESH_EATING_INSECT, fX, fY, fZ + 20.0f, 0, TEMPSUMMON_TIMED_OOC_OR_DEAD_DESPAWN, 5 * MINUTE * IN_MILLISECONDS);
}
m_uiSummonTimer = urand(2000, 5000);
}
else
m_uiSummonTimer -= uiDiff;
}
// event can last max 5 min
if (m_uiEventTimer)
{
if (m_uiEventTimer <= uiDiff)
{
bool bEventFailed = true;
// check withing all players in map if any are still alive and in LoS
Map::PlayerList const& pAllPlayers = m_pInstance->instance->GetPlayers();
if (!pAllPlayers.isEmpty())
{
for (Map::PlayerList::const_iterator itr = pAllPlayers.begin(); itr != pAllPlayers.end(); ++itr)
{
if (Player* pPlayer = itr->getSource())
{
if (pPlayer->isAlive() && pPlayer->IsWithinLOSInMap(m_creature))
bEventFailed = false;
}
}
}
// set event as done if there are still players around
m_pInstance->SetData(TYPE_PLAGUE_WING_ENTRANCE, bEventFailed ? FAIL : DONE);
m_uiSummonTimer = 0;
m_uiEventTimer = 0;
}
else
m_uiEventTimer -= uiDiff;
}
}
示例5: JustReachedHome
void JustReachedHome() override
{
DoCastSpellIfCan(m_creature, SPELL_OOZE_FLOOD_REMOVE, CAST_TRIGGERED);
if (m_pInstance)
{
m_pInstance->SetData(TYPE_ROTFACE, FAIL);
// reset putricide
if (Creature* pPutricide = m_pInstance->GetSingleCreatureFromStorage(NPC_PROFESSOR_PUTRICIDE))
pPutricide->AI()->EnterEvadeMode();
}
}
示例6: Aggro
void Aggro(Unit* /*pWho*/) override
{
DoScriptText(SAY_AGGRO, m_creature);
DoCastSpellIfCan(m_creature, SPELL_SHROUD_OF_SORROW, CAST_TRIGGERED);
if (m_pInstance)
{
m_pInstance->SetData(TYPE_QUEEN_LANATHEL, IN_PROGRESS);
if (m_pInstance->IsHeroicDifficulty())
DoCastSpellIfCan(m_creature, SPELL_PRESENCE_OF_DARKFALLEN, CAST_TRIGGERED);
}
}
示例7: Aggro
void Aggro(Unit* /*pWho*/) override
{
if (m_pInstance)
{
m_pInstance->SetData(TYPE_LADY_DEATHWHISPER, IN_PROGRESS);
m_pInstance->SetSpecialAchievementCriteria(ACHIEVE_FULL_HOUSE, true);
}
// make sure that the event will not continue in the fight
m_bIsEventFinished = true;
DoScriptText(SAY_AGGRO, m_creature);
DoCastSpellIfCan(m_creature, SPELL_MANA_BARRIER, CAST_TRIGGERED);
}
示例8: JustDied
void JustDied(Unit* /*pKiller*/) override
{
DoCastSpellIfCan(m_creature, SPELL_OOZE_FLOOD_REMOVE, CAST_TRIGGERED);
if (m_pInstance)
{
m_pInstance->SetData(TYPE_ROTFACE, DONE);
// reset putricide
if (Creature* pPutricide = m_pInstance->GetSingleCreatureFromStorage(NPC_PROFESSOR_PUTRICIDE))
pPutricide->AI()->EnterEvadeMode();
}
DoScriptText(SAY_DEATH, m_creature);
}
示例9: JustReachedHome
void JustReachedHome() override
{
if (m_pInstance)
m_pInstance->SetData(TYPE_SINDRAGOSA, FAIL);
m_creature->GetMotionMaster()->MovePoint(SINDRAGOSA_POINT_AIR_EAST, SindragosaPosition[8][0], SindragosaPosition[8][1], SindragosaPosition[8][2], false);
}
示例10: UpdateAI
void UpdateAI(const uint32 uiDiff) override
{
if (!m_bHasImpaled)
{
if (m_creature->IsTemporarySummon())
{
TemporarySummon* pTemporary = (TemporarySummon*)m_creature;
// Impale player
if (Player* pSummoner = m_creature->GetMap()->GetPlayer(pTemporary->GetSummonerGuid()))
DoCastSpellIfCan(pSummoner, SPELL_IMPALED);
}
m_bHasImpaled = true;
}
// achievement check
if (m_bBonedFailed)
return;
if (m_uiImpaledTimer > 8000)
{
m_bBonedFailed = true;
if (m_pInstance)
m_pInstance->SetSpecialAchievementCriteria(TYPE_ACHIEV_BONED, false);
}
m_uiImpaledTimer += uiDiff;
}
示例11: Aggro
void Aggro(Unit* /*pWho*/) override
{
DoScriptText(SAY_AGGRO, m_creature);
if (m_pInstance)
m_pInstance->SetData(TYPE_MARROWGAR, IN_PROGRESS);
}
示例12: JustReachedHome
void JustReachedHome() override
{
if (m_pInstance)
{
m_pInstance->SetData(TYPE_FESTERGUT, FAIL);
// reset gas stalker and putricide
if (Creature* pStalker = m_pInstance->GetSingleCreatureFromStorage(NPC_GAS_STALKER))
pStalker->RemoveAllAurasOnEvade();
if (Creature* pPutricide = m_pInstance->GetSingleCreatureFromStorage(NPC_PROFESSOR_PUTRICIDE))
pPutricide->AI()->EnterEvadeMode();
}
DoCastSpellIfCan(m_creature, SPELL_REMOVE_INOCULENT, CAST_TRIGGERED);
}
示例13: JustReachedHome
void JustReachedHome() override
{
if (m_pInstance)
m_pInstance->SetData(TYPE_ROTFACE, FAIL);
DoCastSpellIfCan(m_creature, SPELL_OOZE_FLOOD_REMOVE, CAST_TRIGGERED);
}
示例14: JustDied
void JustDied(Unit* /*pKiller*/) override
{
if (m_pInstance)
m_pInstance->SetData(TYPE_ROTFACE, DONE);
DoScriptText(SAY_DEATH, m_creature);
}
示例15: JustReachedHome
void JustReachedHome() override
{
if (m_pInstance)
m_pInstance->SetData(TYPE_FESTERGUT, FAIL);
DoCastSpellIfCan(m_creature, SPELL_REMOVE_INOCULENT, CAST_TRIGGERED);
}