Scripts: Gossip can crash with null instance

This commit is contained in:
Vincent_Michael
2014-01-24 17:08:17 +01:00
parent d7f76f2eda
commit 9531073b77
5 changed files with 9 additions and 10 deletions
@@ -113,7 +113,7 @@ public:
{
InstanceScript* instance = creature->GetInstanceScript();
if (instance->GetData(TYPE_EVENT) == NOT_STARTED)
if (instance && instance->GetData(TYPE_EVENT) == NOT_STARTED)
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_START_EVENT, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
player->SEND_GOSSIP_MENU(GOSSIP_TEXT_EMI, creature->GetGUID());
@@ -92,8 +92,8 @@ public:
{
InstanceScript* instance = creature->GetInstanceScript();
if (instance->GetData(TYPE_FREE_NPC) != DONE && instance->GetData(TYPE_RETHILGORE) == DONE)
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_DOOR, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF+1);
if (instance && instance->GetData(TYPE_FREE_NPC) != DONE && instance->GetData(TYPE_RETHILGORE) == DONE)
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, GOSSIP_ITEM_DOOR, GOSSIP_SENDER_MAIN, GOSSIP_ACTION_INFO_DEF + 1);
player->SEND_GOSSIP_MENU(player->GetGossipTextId(creature), creature->GetGUID());
@@ -773,7 +773,7 @@ class npc_high_overlord_saurfang_icc : public CreatureScript
bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
InstanceScript* instance = creature->GetInstanceScript();
if (instance->GetBossState(DATA_DEATHBRINGER_SAURFANG) != DONE)
if (instance && instance->GetBossState(DATA_DEATHBRINGER_SAURFANG) != DONE)
{
player->ADD_GOSSIP_ITEM(GOSSIP_ICON_CHAT, "We are ready to go, High Overlord. The Lich King must fall!", 631, -ACTION_START_EVENT);
player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, creature->GetGUID());
@@ -921,7 +921,7 @@ class npc_muradin_bronzebeard_icc : public CreatureScript
bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
InstanceScript* instance = creature->GetInstanceScript();
if (instance->GetBossState(DATA_DEATHBRINGER_SAURFANG) != DONE)
if (instance && instance->GetBossState(DATA_DEATHBRINGER_SAURFANG) != DONE)
{
player->ADD_GOSSIP_ITEM(0, "Let it begin...", 631, -ACTION_START_EVENT + 1);
player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE, creature->GetGUID());
@@ -1192,7 +1192,7 @@ class npc_lorekeeper : public CreatureScript
bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
InstanceScript* instance = creature->GetInstanceScript();
if (instance->GetData(BOSS_LEVIATHAN) != DONE && player)
if (instance && instance->GetData(BOSS_LEVIATHAN) != DONE && player)
{
player->PrepareGossipMenu(creature);
@@ -1245,7 +1245,7 @@ public:
//bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
//{
// InstanceScript* instance = creature->GetInstanceScript();
// if (instance->GetData(BOSS_LEVIATHAN) !=DONE)
// if (instance && instance->GetData(BOSS_LEVIATHAN) !=DONE)
// {
// player->PrepareGossipMenu(creature);
//
@@ -1285,8 +1285,7 @@ class go_ulduar_tower : public GameObjectScript
break;
}
Creature* trigger = go->FindNearestCreature(NPC_ULDUAR_GAUNTLET_GENERATOR, 15.0f, true);
if (trigger)
if (Creature* trigger = go->FindNearestCreature(NPC_ULDUAR_GAUNTLET_GENERATOR, 15.0f, true))
trigger->DisappearAndDie();
}
};
@@ -720,7 +720,7 @@ class npc_expedition_commander : public CreatureScript
bool OnGossipHello(Player* player, Creature* creature) OVERRIDE
{
InstanceScript* instance = creature->GetInstanceScript();
if (instance->GetBossState(BOSS_RAZORSCALE) == NOT_STARTED)
if (instance && instance->GetBossState(BOSS_RAZORSCALE) == NOT_STARTED)
{
player->PrepareGossipMenu(creature);