mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-02-01 14:46:54 +01:00
Fixed some crash, cause instance scripts
--HG-- branch : trunk
This commit is contained in:
@@ -134,7 +134,8 @@ struct TRINITY_DLL_DECL boss_moroesAI : public ScriptedAI
|
||||
DeSpawnAdds();
|
||||
|
||||
//remove aura from spell Garrote when Moroes dies
|
||||
pInstance->DoRemoveAurasDueToSpellOnPlayers(SPELL_GARROTE);
|
||||
if(pInstance)
|
||||
pInstance->DoRemoveAurasDueToSpellOnPlayers(SPELL_GARROTE);
|
||||
}
|
||||
|
||||
void SpawnAdds()
|
||||
|
||||
@@ -577,12 +577,15 @@ struct TRINITY_DLL_DECL boss_alythessAI : public Scripted_NoMovementAI
|
||||
}
|
||||
if(!m_creature->getVictim())
|
||||
{
|
||||
Creature* sisiter = Unit::GetCreature((*m_creature),pInstance->GetData64(DATA_SACROLASH));
|
||||
if (sisiter && !sisiter->isDead() && sisiter->getVictim())
|
||||
if(pInstance)
|
||||
{
|
||||
m_creature->AddThreat(sisiter->getVictim(),0.0f);
|
||||
DoStartNoMovement(sisiter->getVictim());
|
||||
m_creature->Attack(sisiter->getVictim(),false);
|
||||
Creature* sisiter = Unit::GetCreature((*m_creature),pInstance->GetData64(DATA_SACROLASH));
|
||||
if (sisiter && !sisiter->isDead() && sisiter->getVictim())
|
||||
{
|
||||
m_creature->AddThreat(sisiter->getVictim(),0.0f);
|
||||
DoStartNoMovement(sisiter->getVictim());
|
||||
m_creature->Attack(sisiter->getVictim(),false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -313,6 +313,8 @@ struct TRINITY_DLL_DECL boss_taldaramAI : public ScriptedAI
|
||||
|
||||
void RemovePrison()
|
||||
{
|
||||
if(!pInstance)
|
||||
return;
|
||||
m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_OOC_NOT_ATTACKABLE);
|
||||
m_creature->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
|
||||
m_creature->RemoveAurasDueToSpell(SPELL_BEAM_VISUAL);
|
||||
|
||||
@@ -53,6 +53,8 @@ struct TRINITY_DLL_DECL npc_toc5_announcerAI : public ScriptedAI
|
||||
|
||||
void StartEvent(Player* pPlayer)
|
||||
{
|
||||
if(!pInstance)
|
||||
return;
|
||||
if(pInstance->GetData(TYPE_GRAND_CHAMPIONS) == NOT_STARTED && pInstance->GetData(TYPE_ARGENT_CHALLENGE) == NOT_STARTED && pInstance->GetData(TYPE_BLACK_KNIGHT) == NOT_STARTED)
|
||||
{
|
||||
chmp1 = RAND(35572,35569,35571,35570,35617);
|
||||
@@ -97,6 +99,9 @@ bool GossipHello_npc_toc5_announcer(Player* pPlayer, Creature* pCreature)
|
||||
{
|
||||
ScriptedInstance* pInstance = pCreature->GetInstanceData();
|
||||
|
||||
if(!pInstance)
|
||||
return false;
|
||||
|
||||
if(pInstance->GetData(TYPE_GRAND_CHAMPIONS) == NOT_STARTED && pInstance->GetData(TYPE_ARGENT_CHALLENGE) == NOT_STARTED && pInstance->GetData(TYPE_BLACK_KNIGHT) == NOT_STARTED)
|
||||
pPlayer->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_START_EVENT1, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
|
||||
else
|
||||
|
||||
@@ -150,8 +150,11 @@ struct TRINITY_DLL_DECL boss_drakkari_elementalAI : public ScriptedAI
|
||||
boss_drakkari_elementalAI(Creature* pCreature) : ScriptedAI(pCreature)
|
||||
{
|
||||
pInstance = pCreature->GetInstanceData();
|
||||
if (pCreature->GetMap()->IsDungeon())
|
||||
pColossus = CAST_CRE(pCreature->GetUnit(*pCreature, pInstance->GetData64(DATA_DRAKKARI_COLOSSUS)));
|
||||
if(pInstance)
|
||||
{
|
||||
if (pCreature->GetMap()->IsDungeon())
|
||||
pColossus = CAST_CRE(pCreature->GetUnit(*pCreature, pInstance->GetData64(DATA_DRAKKARI_COLOSSUS)));
|
||||
}
|
||||
}
|
||||
|
||||
Creature* pColossus;
|
||||
@@ -221,8 +224,11 @@ struct TRINITY_DLL_DECL npc_living_mojoAI : public ScriptedAI
|
||||
{
|
||||
HeroicMode = pCreature->GetMap()->IsHeroic();
|
||||
pInstance = pCreature->GetInstanceData();
|
||||
if (pCreature->GetMap()->IsDungeon())
|
||||
pColossus = CAST_CRE(pCreature->GetUnit(*pCreature, pInstance->GetData64(DATA_DRAKKARI_COLOSSUS)));
|
||||
if(pInstance)
|
||||
{
|
||||
if (pCreature->GetMap()->IsDungeon())
|
||||
pColossus = CAST_CRE(pCreature->GetUnit(*pCreature, pInstance->GetData64(DATA_DRAKKARI_COLOSSUS)));
|
||||
}
|
||||
}
|
||||
|
||||
Creature* pColossus;
|
||||
|
||||
@@ -284,7 +284,8 @@ struct TRINITY_DLL_DECL boss_sartharionAI : public ScriptedAI
|
||||
|
||||
void FetchDragons()
|
||||
{
|
||||
assert(pInstance);
|
||||
if(!pInstance)
|
||||
return;
|
||||
Creature* pFetchTene = Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_TENEBRON));
|
||||
Creature* pFetchShad = Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_SHADRON));
|
||||
Creature* pFetchVesp = Unit::GetCreature(*m_creature, pInstance->GetData64(DATA_VESPERON));
|
||||
|
||||
@@ -246,7 +246,7 @@ struct TRINITY_DLL_DECL boss_dalronn_the_controllerAI : public ScriptedAI
|
||||
|
||||
void EnterCombat(Unit *who)
|
||||
{
|
||||
if (!ghost)
|
||||
if (!ghost && pInstance)
|
||||
{
|
||||
Unit* skarvald = Unit::GetUnit((*m_creature),pInstance->GetData64(DATA_SKARVALD));
|
||||
if (skarvald && skarvald->isAlive() && !skarvald->getVictim())
|
||||
@@ -261,7 +261,7 @@ struct TRINITY_DLL_DECL boss_dalronn_the_controllerAI : public ScriptedAI
|
||||
|
||||
void JustDied(Unit* Killer)
|
||||
{
|
||||
if (!ghost)
|
||||
if (!ghost && pInstance)
|
||||
{
|
||||
Unit* skarvald = Unit::GetUnit((*m_creature),pInstance->GetData64(DATA_SKARVALD));
|
||||
if (skarvald)
|
||||
|
||||
@@ -151,7 +151,7 @@ struct TRINITY_DLL_DECL boss_palehoofAI : public ScriptedAI
|
||||
if (!UpdateVictim())
|
||||
return;
|
||||
|
||||
Creature* pTemp = Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_MOB_ORB));
|
||||
Creature* pTemp = Unit::GetCreature((*m_creature), pInstance ? pInstance->GetData64(DATA_MOB_ORB) : 0);
|
||||
if (pTemp && pTemp->isAlive())
|
||||
pTemp->DisappearAndDie();
|
||||
|
||||
@@ -182,7 +182,7 @@ struct TRINITY_DLL_DECL boss_palehoofAI : public ScriptedAI
|
||||
DoScriptText(SAY_DEATH, m_creature);
|
||||
if (pInstance)
|
||||
pInstance->SetData(DATA_GORTOK_PALEHOOF_EVENT, DONE);
|
||||
Creature* pTemp = Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_MOB_ORB));
|
||||
Creature* pTemp = Unit::GetCreature((*m_creature), pInstance ? pInstance->GetData64(DATA_MOB_ORB) : 0);
|
||||
if (pTemp && pTemp->isAlive())
|
||||
pTemp->DisappearAndDie();
|
||||
}
|
||||
@@ -438,7 +438,7 @@ struct TRINITY_DLL_DECL mob_frenzied_worgenAI : public ScriptedAI
|
||||
{
|
||||
if (pInstance)
|
||||
{
|
||||
Creature *pPalehoof = Unit::GetCreature((*m_creature), pInstance ? pInstance->GetData64(DATA_GORTOK_PALEHOOF) : 0);
|
||||
Creature *pPalehoof = Unit::GetCreature((*m_creature), pInstance->GetData64(DATA_GORTOK_PALEHOOF));
|
||||
if (pPalehoof)
|
||||
CAST_AI(boss_palehoofAI, pPalehoof->AI())->NextPhase();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user