[10589] Always activate GO type 3 when quest id is defined (and active)

GO may be "lootless", but events at looting can happen

Signed-off-by: NoFantasy <nofantasy@nf.no>
This commit is contained in:
NoFantasy 2010-10-08 10:21:27 +02:00
parent fc2e66231b
commit b0d5e3e51a
3 changed files with 12 additions and 3 deletions

View file

@ -724,7 +724,10 @@ bool GameObject::ActivateToQuest( Player *pTarget)const
// scan GO chest with loot including quest items // scan GO chest with loot including quest items
case GAMEOBJECT_TYPE_CHEST: case GAMEOBJECT_TYPE_CHEST:
{ {
if(LootTemplates_Gameobject.HaveQuestLootForPlayer(GetGOInfo()->GetLootId(), pTarget)) if (pTarget->GetQuestStatus(GetGOInfo()->chest.questId) == QUEST_STATUS_INCOMPLETE)
return true;
if (LootTemplates_Gameobject.HaveQuestLootForPlayer(GetGOInfo()->GetLootId(), pTarget))
{ {
//look for battlegroundAV for some objects which are only activated after mine gots captured by own team //look for battlegroundAV for some objects which are only activated after mine gots captured by own team
if (GetEntry() == BG_AV_OBJECTID_MINE_N || GetEntry() == BG_AV_OBJECTID_MINE_S) if (GetEntry() == BG_AV_OBJECTID_MINE_N || GetEntry() == BG_AV_OBJECTID_MINE_S)

View file

@ -7725,8 +7725,14 @@ void ObjectMgr::LoadGameObjectForQuests()
{ {
uint32 loot_id = goInfo->GetLootId(); uint32 loot_id = goInfo->GetLootId();
// always activate to quest, GO may not have loot
if (goInfo->chest.questId)
{
mGameObjectForQuestSet.insert(go_entry);
++count;
}
// find quest loot for GO // find quest loot for GO
if(LootTemplates_Gameobject.HaveQuestLootFor(loot_id)) else if (LootTemplates_Gameobject.HaveQuestLootFor(loot_id))
{ {
mGameObjectForQuestSet.insert(go_entry); mGameObjectForQuestSet.insert(go_entry);
++count; ++count;

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__ #ifndef __REVISION_NR_H__
#define __REVISION_NR_H__ #define __REVISION_NR_H__
#define REVISION_NR "10588" #define REVISION_NR "10589"
#endif // __REVISION_NR_H__ #endif // __REVISION_NR_H__