diff options
author | Subv2112 <s.v.h21@hotmail.com> | 2012-01-09 09:29:45 -0500 |
---|---|---|
committer | Subv2112 <s.v.h21@hotmail.com> | 2012-01-09 09:29:45 -0500 |
commit | d02c78124193d3ce6fd0a4437b7fd46867109fda (patch) | |
tree | 0db9dacddafaf32d1e6f787b25719e5e4d6bf57c /src | |
parent | 7101e9626cf9a94ca37110b1ee1fd1c0b6258b91 (diff) |
Core/Gossips: Fixed questgiver GOs that also have gossip menus, fixed gossip option selecting on GOs
Signed-off-by: Subv2112 <s.v.h21@hotmail.com>
Diffstat (limited to 'src')
-rwxr-xr-x | src/server/game/Entities/Player/Player.cpp | 9 | ||||
-rwxr-xr-x | src/server/game/Server/Protocol/Handlers/MiscHandler.cpp | 3 |
2 files changed, 6 insertions, 6 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index e9a1ac0e64f..7f7facfaff1 100755 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -13997,6 +13997,10 @@ void Player::PrepareGossipMenu(WorldObject* source, uint32 menuId /*= 0*/, bool PrepareQuestMenu(source->GetGUID()); } + if (source->GetTypeId() == TYPEID_GAMEOBJECT) + if (source->ToGameObject()->GetGoType() == GAMEOBJECT_TYPE_QUESTGIVER) + PrepareQuestMenu(source->GetGUID()); + for (GossipMenuItemsMap::const_iterator itr = menuItemBounds.first; itr != menuItemBounds.second; ++itr) { bool canTalk = true; @@ -14082,11 +14086,6 @@ void Player::PrepareGossipMenu(WorldObject* source, uint32 menuId /*= 0*/, bool switch (itr->second.OptionType) { - case GOSSIP_OPTION_QUESTGIVER: - if (go->GetGoType() == GAMEOBJECT_TYPE_QUESTGIVER) - PrepareQuestMenu(source->GetGUID()); - canTalk = false; - break; case GOSSIP_OPTION_GOSSIP: if (go->GetGoType() != GAMEOBJECT_TYPE_QUESTGIVER && go->GetGoType() != GAMEOBJECT_TYPE_GOOBER) canTalk = false; diff --git a/src/server/game/Server/Protocol/Handlers/MiscHandler.cpp b/src/server/game/Server/Protocol/Handlers/MiscHandler.cpp index d5d205279f7..d1227c9b7d7 100755 --- a/src/server/game/Server/Protocol/Handlers/MiscHandler.cpp +++ b/src/server/game/Server/Protocol/Handlers/MiscHandler.cpp @@ -160,7 +160,8 @@ void WorldSession::HandleGossipSelectOptionOpcode(WorldPacket & recv_data) else { go->AI()->GossipSelect(_player, menuId, gossipListId); - sScriptMgr->OnGossipSelect(_player, go, _player->PlayerTalkClass->GetGossipOptionSender(gossipListId), _player->PlayerTalkClass->GetGossipOptionAction(gossipListId)); + if (!sScriptMgr->OnGossipSelect(_player, go, _player->PlayerTalkClass->GetGossipOptionSender(gossipListId), _player->PlayerTalkClass->GetGossipOptionAction(gossipListId))) + _player->OnGossipSelect(go, gossipListId, menuId); } } } |