AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
npc_wg_quest_giver Class Reference
Inheritance diagram for npc_wg_quest_giver:
CreatureScript ScriptObject UpdatableScript< Creature >

Public Member Functions

 npc_wg_quest_giver ()
 
bool OnGossipHello (Player *player, Creature *creature) override
 
uint32 GetDialogStatus (Player *player, Creature *creature) override
 
bool OnGossipSelect (Player *player, Creature *creature, uint32, uint32 action) override
 
- Public Member Functions inherited from CreatureScript
bool IsDatabaseBound () const override
 
virtual bool OnGossipHello (Player *, Creature *)
 
virtual bool OnGossipSelect (Player *, Creature *, uint32, uint32)
 
virtual bool OnGossipSelectCode (Player *, Creature *, uint32, uint32, const char *)
 
virtual bool OnQuestAccept (Player *, Creature *, Quest const *)
 
virtual bool OnQuestSelect (Player *, Creature *, Quest const *)
 
virtual bool OnQuestComplete (Player *, Creature *, Quest const *)
 
virtual bool OnQuestReward (Player *, Creature *, Quest const *, uint32)
 
virtual uint32 GetDialogStatus (Player *, Creature *)
 
virtual CreatureAIGetAI (Creature *) const
 
virtual void OnFfaPvpStateUpdate (Creature *, bool)
 
- Public Member Functions inherited from ScriptObject
virtual bool IsDatabaseBound () const
 
virtual bool isAfterLoadScript () const
 
virtual void checkValidity ()
 
const std::string & GetName () const
 
- Public Member Functions inherited from UpdatableScript< Creature >
virtual void OnUpdate (Creature *, uint32)
 

Additional Inherited Members

- Protected Member Functions inherited from CreatureScript
 CreatureScript (const char *name)
 
- Protected Member Functions inherited from ScriptObject
 ScriptObject (const char *name)
 
virtual ~ScriptObject ()=default
 
- Protected Member Functions inherited from UpdatableScript< Creature >
 UpdatableScript ()=default
 

Detailed Description

Constructor & Destructor Documentation

◆ npc_wg_quest_giver()

npc_wg_quest_giver::npc_wg_quest_giver ( )
inline
406: CreatureScript("npc_wg_quest_giver") { }
Definition: CreatureScript.h:25

Member Function Documentation

◆ GetDialogStatus()

uint32 npc_wg_quest_giver::GetDialogStatus ( Player player,
Creature creature 
)
inlineoverridevirtual

Reimplemented from CreatureScript.

595 {
596 QuestRelationBounds qr = sObjectMgr->GetCreatureQuestRelationBounds(creature->GetEntry());
597 QuestRelationBounds qir = sObjectMgr->GetCreatureQuestInvolvedRelationBounds(creature->GetEntry());
599
600 Battlefield* wintergrasp = sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG);
601
602 for (QuestRelations::const_iterator i = qir.first; i != qir.second; ++i)
603 {
605 uint32 questId = i->second;
606 Quest const* quest = sObjectMgr->GetQuestTemplate(questId);
607 if (!quest)
608 continue;
609
610 ConditionList conditions = sConditionMgr->GetConditionsForNotGroupedEntry(CONDITION_SOURCE_TYPE_QUEST_AVAILABLE, quest->GetQuestId());
611 if (!sConditionMgr->IsObjectMeetToConditions(player, conditions))
612 continue;
613
614 QuestStatus status = player->GetQuestStatus(questId);
615 if ((status == QUEST_STATUS_COMPLETE && !player->GetQuestRewardStatus(questId)) ||
616 (quest->IsAutoComplete() && player->CanTakeQuest(quest, false)))
617 {
618 if (quest->IsAutoComplete() && quest->IsRepeatable() && !quest->IsDailyOrWeekly())
619 result2 = DIALOG_STATUS_REWARD_REP;
620 else
621 result2 = DIALOG_STATUS_REWARD;
622 }
623 else if (status == QUEST_STATUS_INCOMPLETE)
624 result2 = DIALOG_STATUS_INCOMPLETE;
625
626 if (result2 > result)
627 result = result2;
628 }
629
630 for (QuestRelations::const_iterator i = qr.first; i != qr.second; ++i)
631 {
633 uint32 questId = i->second;
634 Quest const* quest = sObjectMgr->GetQuestTemplate(questId);
635 if (!quest)
636 continue;
637
638 ConditionList conditions = sConditionMgr->GetConditionsForNotGroupedEntry(CONDITION_SOURCE_TYPE_QUEST_AVAILABLE, quest->GetQuestId());
639 if (!sConditionMgr->IsObjectMeetToConditions(player, conditions))
640 continue;
641
642 switch (questId)
643 {
645 if (!sPoolMgr->IsSpawnedObject<Quest>(QUEST_BONES_AND_ARROWS_ALLIANCE_DEF))
646 continue;
647 break;
650 continue;
651 break;
653 if (!sPoolMgr->IsSpawnedObject<Quest>(QUEST_A_RARE_HERB_ALLIANCE_DEF))
654 continue;
655 break;
658 continue;
659 break;
661 if (!sPoolMgr->IsSpawnedObject<Quest>(QUEST_BONES_AND_ARROWS_HORDE_DEF))
662 continue;
663 break;
665 if (!sPoolMgr->IsSpawnedObject<Quest>(QUEST_WARDING_THE_WALLS_HORDE_DEF))
666 continue;
667 break;
670 continue;
671 break;
673 if (!sPoolMgr->IsSpawnedObject<Quest>(QUEST_HEALING_WITH_ROSES_HORDE_DEF))
674 continue;
675 break;
676 }
677
678 if (wintergrasp)
679 {
680 // Certain quests are only available when attacking / defending
681 bool hasCorrectZoneControl = false;
682 switch (questId)
683 {
684 // Horde attacker
691 if (wintergrasp->GetAttackerTeam() == TEAM_HORDE)
692 {
693 hasCorrectZoneControl = true;
694 }
695 break;
696 // Horde defender
704 if (wintergrasp->GetDefenderTeam() == TEAM_HORDE)
705 {
706 hasCorrectZoneControl = true;
707 }
708 break;
709 // Alliance attacker
716 if (wintergrasp->GetAttackerTeam() == TEAM_ALLIANCE)
717 {
718 hasCorrectZoneControl = true;
719 }
720 break;
721 // Alliance defender
729 if (wintergrasp->GetDefenderTeam() == TEAM_ALLIANCE)
730 {
731 hasCorrectZoneControl = true;
732 }
733 break;
734 default:
735 hasCorrectZoneControl = true;
736 break;
737 }
738
739 if (!hasCorrectZoneControl)
740 {
741 continue;
742 }
743 }
744
745 QuestStatus status = player->GetQuestStatus(questId);
746 if (status == QUEST_STATUS_NONE)
747 {
748 if (player->CanSeeStartQuest(quest))
749 {
750 if (player->SatisfyQuestLevel(quest, false))
751 {
752 if (quest->IsAutoComplete())
753 result2 = DIALOG_STATUS_REWARD_REP;
754 else if (player->GetLevel() <= (player->GetQuestLevel(quest) + sWorld->getIntConfig(CONFIG_QUEST_LOW_LEVEL_HIDE_DIFF)))
755 {
756 if (quest->IsDaily())
758 else
759 result2 = DIALOG_STATUS_AVAILABLE;
760 }
761 else
763 }
764 else
766 }
767 }
768
769 if (result2 > result)
770 result = result2;
771 }
772
773 return result;
774 }
std::uint32_t uint32
Definition: Define.h:108
@ BATTLEFIELD_BATTLEID_WG
Definition: Battlefield.h:37
#define sBattlefieldMgr
Definition: BattlefieldMgr.h:77
#define sConditionMgr
Definition: ConditionMgr.h:289
@ CONDITION_SOURCE_TYPE_QUEST_AVAILABLE
Definition: ConditionMgr.h:141
std::list< Condition * > ConditionList
Definition: ConditionMgr.h:236
std::pair< QuestRelations::const_iterator, QuestRelations::const_iterator > QuestRelationBounds
Definition: ObjectMgr.h:519
#define sObjectMgr
Definition: ObjectMgr.h:1640
#define sPoolMgr
Definition: PoolMgr.h:163
QuestGiverStatus
Definition: QuestDef.h:111
@ DIALOG_STATUS_UNAVAILABLE
Definition: QuestDef.h:113
@ DIALOG_STATUS_NONE
Definition: QuestDef.h:112
@ DIALOG_STATUS_AVAILABLE
Definition: QuestDef.h:120
@ DIALOG_STATUS_REWARD
Definition: QuestDef.h:122
@ DIALOG_STATUS_LOW_LEVEL_AVAILABLE
Definition: QuestDef.h:114
@ DIALOG_STATUS_REWARD_REP
Definition: QuestDef.h:118
@ DIALOG_STATUS_INCOMPLETE
Definition: QuestDef.h:117
@ DIALOG_STATUS_AVAILABLE_REP
Definition: QuestDef.h:119
QuestStatus
Definition: QuestDef.h:99
@ QUEST_STATUS_INCOMPLETE
Definition: QuestDef.h:103
@ QUEST_STATUS_NONE
Definition: QuestDef.h:100
@ QUEST_STATUS_COMPLETE
Definition: QuestDef.h:101
@ CONFIG_QUEST_LOW_LEVEL_HIDE_DIFF
Definition: IWorld.h:287
@ QUEST_HEALING_WITH_ROSES_HORDE_DEF
Definition: zone_wintergrasp.cpp:95
@ QUEST_DEFEND_THE_SIEGE_HORDE_ATT
Definition: zone_wintergrasp.cpp:89
@ QUEST_SHOUTHERN_SABOTAGE_ALLIANCE_DEF
Definition: zone_wintergrasp.cpp:109
@ QUEST_SLAY_THEM_ALL_HORDE_DEF
Definition: zone_wintergrasp.cpp:93
@ QUEST_FUELING_THE_DEMOLISHERS_HORDE_DEF
Definition: zone_wintergrasp.cpp:94
@ QUEST_A_RARE_HERB_ALLIANCE_DEF
Definition: zone_wintergrasp.cpp:111
@ QUEST_FUELING_THE_DEMOLISHERS_HORDE_ATT
Definition: zone_wintergrasp.cpp:87
@ QUEST_SLAY_THEM_ALL_HORDE_ATT
Definition: zone_wintergrasp.cpp:86
@ QUEST_STOP_THE_SIEGE_HORDE_DEF
Definition: zone_wintergrasp.cpp:97
@ QUEST_WARDING_THE_WALLS_HORDE_DEF
Definition: zone_wintergrasp.cpp:92
@ QUEST_BONES_AND_ARROWS_ALLIANCE_DEF
Definition: zone_wintergrasp.cpp:106
@ QUEST_A_RARE_HERB_ALLIANCE_ATT
Definition: zone_wintergrasp.cpp:103
@ QUEST_HEALING_WITH_ROSES_HORDE_ATT
Definition: zone_wintergrasp.cpp:88
@ QUEST_BONES_AND_ARROWS_ALLIANCE_ATT
Definition: zone_wintergrasp.cpp:99
@ QUEST_NO_MERCY_FOR_THE_MERCILESS_ALLIANCE_ATT
Definition: zone_wintergrasp.cpp:101
@ QUEST_FUELING_THE_DEMOLISHERS_ALLIANCE_ATT
Definition: zone_wintergrasp.cpp:104
@ QUEST_STOP_THE_SIEGE_ALLIANCE_DEF
Definition: zone_wintergrasp.cpp:110
@ QUEST_NO_MERCY_FOR_THE_MERCILESS_ALLIANCE_DEF
Definition: zone_wintergrasp.cpp:108
@ QUEST_WARDING_THE_WARRIORS_ALLIANCE_ATT
Definition: zone_wintergrasp.cpp:100
@ QUEST_TOPPLING_THE_TOWERS_HORDE_DEF
Definition: zone_wintergrasp.cpp:96
@ QUEST_BONES_AND_ARROWS_HORDE_DEF
Definition: zone_wintergrasp.cpp:91
@ QUEST_WARDING_THE_WARRIORS_ALLIANCE_DEF
Definition: zone_wintergrasp.cpp:107
@ QUEST_FUELING_THE_DEMOLISHERS_ALLIANCE_DEF
Definition: zone_wintergrasp.cpp:112
@ QUEST_BONES_AND_ARROWS_HORDE_ATT
Definition: zone_wintergrasp.cpp:84
@ QUEST_DEFEND_THE_SIEGE_ALLIANCE_ATT
Definition: zone_wintergrasp.cpp:102
@ QUEST_JINXING_THE_WALLS_HORDE_ATT
Definition: zone_wintergrasp.cpp:85
@ TEAM_ALLIANCE
Definition: SharedDefines.h:760
@ TEAM_HORDE
Definition: SharedDefines.h:761
#define sWorld
Definition: World.h:447
Definition: Battlefield.h:206
TeamId GetDefenderTeam()
Definition: Battlefield.h:277
TeamId GetAttackerTeam()
Definition: Battlefield.h:278
uint32 GetEntry() const
Definition: Object.h:109
int32 GetQuestLevel(Quest const *quest) const
Definition: Player.h:1403
bool GetQuestRewardStatus(uint32 quest_id) const
Definition: PlayerQuest.cpp:1401
bool CanTakeQuest(Quest const *quest, bool msg)
Definition: PlayerQuest.cpp:251
bool CanSeeStartQuest(Quest const *quest)
Definition: PlayerQuest.cpp:237
bool SatisfyQuestLevel(Quest const *qInfo, bool msg) const
Definition: PlayerQuest.cpp:966
QuestStatus GetQuestStatus(uint32 quest_id) const
Definition: PlayerQuest.cpp:1416
uint8 GetLevel() const
Definition: Unit.h:1432
Definition: QuestDef.h:207
bool IsRepeatable() const
Definition: QuestDef.h:280
bool IsAutoComplete() const
Definition: QuestDef.cpp:271
uint32 GetQuestId() const
Definition: QuestDef.h:225
bool IsDaily() const
Definition: QuestDef.h:284
bool IsDailyOrWeekly() const
Definition: QuestDef.h:288

References BATTLEFIELD_BATTLEID_WG, Player::CanSeeStartQuest(), Player::CanTakeQuest(), CONDITION_SOURCE_TYPE_QUEST_AVAILABLE, CONFIG_QUEST_LOW_LEVEL_HIDE_DIFF, DIALOG_STATUS_AVAILABLE, DIALOG_STATUS_AVAILABLE_REP, DIALOG_STATUS_INCOMPLETE, DIALOG_STATUS_LOW_LEVEL_AVAILABLE, DIALOG_STATUS_NONE, DIALOG_STATUS_REWARD, DIALOG_STATUS_REWARD_REP, DIALOG_STATUS_UNAVAILABLE, Battlefield::GetAttackerTeam(), Battlefield::GetDefenderTeam(), Object::GetEntry(), Unit::GetLevel(), Quest::GetQuestId(), Player::GetQuestLevel(), Player::GetQuestRewardStatus(), Player::GetQuestStatus(), Quest::IsAutoComplete(), Quest::IsDaily(), Quest::IsDailyOrWeekly(), Quest::IsRepeatable(), QUEST_A_RARE_HERB_ALLIANCE_ATT, QUEST_A_RARE_HERB_ALLIANCE_DEF, QUEST_BONES_AND_ARROWS_ALLIANCE_ATT, QUEST_BONES_AND_ARROWS_ALLIANCE_DEF, QUEST_BONES_AND_ARROWS_HORDE_ATT, QUEST_BONES_AND_ARROWS_HORDE_DEF, QUEST_DEFEND_THE_SIEGE_ALLIANCE_ATT, QUEST_DEFEND_THE_SIEGE_HORDE_ATT, QUEST_FUELING_THE_DEMOLISHERS_ALLIANCE_ATT, QUEST_FUELING_THE_DEMOLISHERS_ALLIANCE_DEF, QUEST_FUELING_THE_DEMOLISHERS_HORDE_ATT, QUEST_FUELING_THE_DEMOLISHERS_HORDE_DEF, QUEST_HEALING_WITH_ROSES_HORDE_ATT, QUEST_HEALING_WITH_ROSES_HORDE_DEF, QUEST_JINXING_THE_WALLS_HORDE_ATT, QUEST_NO_MERCY_FOR_THE_MERCILESS_ALLIANCE_ATT, QUEST_NO_MERCY_FOR_THE_MERCILESS_ALLIANCE_DEF, QUEST_SHOUTHERN_SABOTAGE_ALLIANCE_DEF, QUEST_SLAY_THEM_ALL_HORDE_ATT, QUEST_SLAY_THEM_ALL_HORDE_DEF, QUEST_STATUS_COMPLETE, QUEST_STATUS_INCOMPLETE, QUEST_STATUS_NONE, QUEST_STOP_THE_SIEGE_ALLIANCE_DEF, QUEST_STOP_THE_SIEGE_HORDE_DEF, QUEST_TOPPLING_THE_TOWERS_HORDE_DEF, QUEST_WARDING_THE_WALLS_HORDE_DEF, QUEST_WARDING_THE_WARRIORS_ALLIANCE_ATT, QUEST_WARDING_THE_WARRIORS_ALLIANCE_DEF, Player::SatisfyQuestLevel(), sBattlefieldMgr, sConditionMgr, sObjectMgr, sPoolMgr, sWorld, TEAM_ALLIANCE, and TEAM_HORDE.

◆ OnGossipHello()

bool npc_wg_quest_giver::OnGossipHello ( Player player,
Creature creature 
)
inlineoverridevirtual

Reimplemented from CreatureScript.

409 {
410 if (creature->IsQuestGiver())
411 {
412 player->PrepareQuestMenu(creature->GetGUID());
413 }
414
415 if (creature->IsVendor())
416 {
418 }
419
420 Battlefield* wintergrasp = sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG);
421 if (!wintergrasp)
422 {
423 return true;
424 }
425
426 if (creature->IsQuestGiver())
427 {
428 QuestRelationBounds objectQR = sObjectMgr->GetCreatureQuestRelationBounds(creature->GetEntry());
429 QuestRelationBounds objectQIR = sObjectMgr->GetCreatureQuestInvolvedRelationBounds(creature->GetEntry());
430
431 QuestMenu& qm = player->PlayerTalkClass->GetQuestMenu();
432 qm.ClearMenu();
433
434 for (QuestRelations::const_iterator i = objectQIR.first; i != objectQIR.second; ++i)
435 {
436 uint32 quest_id = i->second;
437 QuestStatus status = player->GetQuestStatus(quest_id);
438 if (status == QUEST_STATUS_COMPLETE)
439 qm.AddMenuItem(quest_id, 4);
440 else if (status == QUEST_STATUS_INCOMPLETE)
441 qm.AddMenuItem(quest_id, 4);
442 //else if (status == QUEST_STATUS_AVAILABLE)
443 // qm.AddMenuItem(quest_id, 2);
444 }
445
446 // xinef: add att/def doubles if this quest is spawned
447 std::vector<uint32> questRelationVector;
448 for (QuestRelations::const_iterator i = objectQR.first; i != objectQR.second; ++i)
449 {
450 uint32 questId = i->second;
451 Quest const* quest = sObjectMgr->GetQuestTemplate(questId);
452 if (!quest)
453 continue;
454
455 switch (questId)
456 {
458 if (!sPoolMgr->IsSpawnedObject<Quest>(QUEST_BONES_AND_ARROWS_ALLIANCE_DEF))
459 continue;
460 questRelationVector.push_back(QUEST_BONES_AND_ARROWS_ALLIANCE_ATT);
461 break;
464 continue;
465 questRelationVector.push_back(QUEST_WARDING_THE_WARRIORS_ALLIANCE_ATT);
466 break;
468 if (!sPoolMgr->IsSpawnedObject<Quest>(QUEST_A_RARE_HERB_ALLIANCE_DEF))
469 continue;
470 questRelationVector.push_back(QUEST_A_RARE_HERB_ALLIANCE_ATT);
471 break;
474 continue;
475 questRelationVector.push_back(QUEST_FUELING_THE_DEMOLISHERS_ALLIANCE_ATT);
476 break;
478 if (!sPoolMgr->IsSpawnedObject<Quest>(QUEST_BONES_AND_ARROWS_HORDE_DEF))
479 continue;
480 questRelationVector.push_back(QUEST_BONES_AND_ARROWS_HORDE_ATT);
481 break;
483 if (!sPoolMgr->IsSpawnedObject<Quest>(QUEST_WARDING_THE_WALLS_HORDE_DEF))
484 continue;
485 questRelationVector.push_back(QUEST_JINXING_THE_WALLS_HORDE_ATT);
486 break;
489 continue;
490 questRelationVector.push_back(QUEST_FUELING_THE_DEMOLISHERS_HORDE_ATT);
491 break;
493 if (!sPoolMgr->IsSpawnedObject<Quest>(QUEST_HEALING_WITH_ROSES_HORDE_DEF))
494 continue;
495 questRelationVector.push_back(QUEST_HEALING_WITH_ROSES_HORDE_ATT);
496 break;
497 default:
498 questRelationVector.push_back(questId);
499 break;
500 }
501 }
502
503 for (std::vector<uint32>::const_iterator i = questRelationVector.begin(); i != questRelationVector.end(); ++i)
504 {
505 uint32 questId = *i;
506 Quest const* quest = sObjectMgr->GetQuestTemplate(questId);
507 switch (questId)
508 {
509 // Horde attacker
516 if (wintergrasp->GetAttackerTeam() == TEAM_HORDE)
517 {
518 QuestStatus status = player->GetQuestStatus(questId);
519
520 if (quest->IsAutoComplete() && player->CanTakeQuest(quest, false))
521 qm.AddMenuItem(questId, 4);
522 else if (status == QUEST_STATUS_NONE && player->CanTakeQuest(quest, false))
523 qm.AddMenuItem(questId, 2);
524 }
525 break;
526 // Horde defender
534 if (wintergrasp->GetDefenderTeam() == TEAM_HORDE)
535 {
536 QuestStatus status = player->GetQuestStatus(questId);
537
538 if (quest->IsAutoComplete() && player->CanTakeQuest(quest, false))
539 qm.AddMenuItem(questId, 4);
540 else if (status == QUEST_STATUS_NONE && player->CanTakeQuest(quest, false))
541 qm.AddMenuItem(questId, 2);
542 }
543 break;
544 // Alliance attacker
551 if (wintergrasp->GetAttackerTeam() == TEAM_ALLIANCE)
552 {
553 QuestStatus status = player->GetQuestStatus(questId);
554
555 if (quest->IsAutoComplete() && player->CanTakeQuest(quest, false))
556 qm.AddMenuItem(questId, 4);
557 else if (status == QUEST_STATUS_NONE && player->CanTakeQuest(quest, false))
558 qm.AddMenuItem(questId, 2);
559 }
560 break;
561 // Alliance defender
569 if (wintergrasp->GetDefenderTeam() == TEAM_ALLIANCE)
570 {
571 QuestStatus status = player->GetQuestStatus(questId);
572
573 if (quest->IsAutoComplete() && player->CanTakeQuest(quest, false))
574 qm.AddMenuItem(questId, 4);
575 else if (status == QUEST_STATUS_NONE && player->CanTakeQuest(quest, false))
576 qm.AddMenuItem(questId, 2);
577 }
578 break;
579 default:
580 QuestStatus status = player->GetQuestStatus(questId);
581
582 if (quest->IsAutoComplete() && player->CanTakeQuest(quest, false))
583 qm.AddMenuItem(questId, 4);
584 else if (status == QUEST_STATUS_NONE && player->CanTakeQuest(quest, false))
585 qm.AddMenuItem(questId, 2);
586 break;
587 }
588 }
589 }
590 SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
591 return true;
592 }
void SendGossipMenuFor(Player *player, uint32 npcTextID, ObjectGuid const guid)
Definition: ScriptedGossip.cpp:45
void AddGossipItemFor(Player *player, uint32 icon, std::string const &text, uint32 sender, uint32 action)
Definition: ScriptedGossip.cpp:28
#define GOSSIP_TEXT_BROWSE_GOODS
Definition: ScriptedGossip.h:25
@ GOSSIP_SENDER_MAIN
Definition: ScriptedGossip.h:70
@ GOSSIP_ACTION_TRADE
Definition: ScriptedGossip.h:56
@ GOSSIP_ICON_VENDOR
Definition: GossipDef.h:61
Definition: GossipDef.h:228
void ClearMenu()
Definition: GossipDef.cpp:312
void AddMenuItem(uint32 QuestId, uint8 Icon)
Definition: GossipDef.cpp:288
QuestMenu & GetQuestMenu()
Definition: GossipDef.h:264
static ObjectGuid GetGUID(Object const *o)
Definition: Object.h:106
void PrepareQuestMenu(ObjectGuid guid)
Definition: PlayerQuest.cpp:39
uint32 GetGossipTextId(uint32 menuId, WorldObject *source)
Definition: PlayerGossip.cpp:403
PlayerMenu * PlayerTalkClass
Definition: Player.h:2201
bool IsQuestGiver() const
Definition: Unit.h:1667
bool IsVendor() const
Definition: Unit.h:1665

References AddGossipItemFor(), QuestMenu::AddMenuItem(), BATTLEFIELD_BATTLEID_WG, Player::CanTakeQuest(), QuestMenu::ClearMenu(), Battlefield::GetAttackerTeam(), Battlefield::GetDefenderTeam(), Object::GetEntry(), Player::GetGossipTextId(), Object::GetGUID(), PlayerMenu::GetQuestMenu(), Player::GetQuestStatus(), GOSSIP_ACTION_TRADE, GOSSIP_ICON_VENDOR, GOSSIP_SENDER_MAIN, GOSSIP_TEXT_BROWSE_GOODS, Quest::IsAutoComplete(), Unit::IsQuestGiver(), Unit::IsVendor(), Player::PlayerTalkClass, Player::PrepareQuestMenu(), QUEST_A_RARE_HERB_ALLIANCE_ATT, QUEST_A_RARE_HERB_ALLIANCE_DEF, QUEST_BONES_AND_ARROWS_ALLIANCE_ATT, QUEST_BONES_AND_ARROWS_ALLIANCE_DEF, QUEST_BONES_AND_ARROWS_HORDE_ATT, QUEST_BONES_AND_ARROWS_HORDE_DEF, QUEST_DEFEND_THE_SIEGE_ALLIANCE_ATT, QUEST_DEFEND_THE_SIEGE_HORDE_ATT, QUEST_FUELING_THE_DEMOLISHERS_ALLIANCE_ATT, QUEST_FUELING_THE_DEMOLISHERS_ALLIANCE_DEF, QUEST_FUELING_THE_DEMOLISHERS_HORDE_ATT, QUEST_FUELING_THE_DEMOLISHERS_HORDE_DEF, QUEST_HEALING_WITH_ROSES_HORDE_ATT, QUEST_HEALING_WITH_ROSES_HORDE_DEF, QUEST_JINXING_THE_WALLS_HORDE_ATT, QUEST_NO_MERCY_FOR_THE_MERCILESS_ALLIANCE_ATT, QUEST_NO_MERCY_FOR_THE_MERCILESS_ALLIANCE_DEF, QUEST_SHOUTHERN_SABOTAGE_ALLIANCE_DEF, QUEST_SLAY_THEM_ALL_HORDE_ATT, QUEST_SLAY_THEM_ALL_HORDE_DEF, QUEST_STATUS_COMPLETE, QUEST_STATUS_INCOMPLETE, QUEST_STATUS_NONE, QUEST_STOP_THE_SIEGE_ALLIANCE_DEF, QUEST_STOP_THE_SIEGE_HORDE_DEF, QUEST_TOPPLING_THE_TOWERS_HORDE_DEF, QUEST_WARDING_THE_WALLS_HORDE_DEF, QUEST_WARDING_THE_WARRIORS_ALLIANCE_ATT, QUEST_WARDING_THE_WARRIORS_ALLIANCE_DEF, sBattlefieldMgr, SendGossipMenuFor(), sObjectMgr, sPoolMgr, TEAM_ALLIANCE, and TEAM_HORDE.

◆ OnGossipSelect()

bool npc_wg_quest_giver::OnGossipSelect ( Player player,
Creature creature,
uint32  ,
uint32  action 
)
inlineoverridevirtual

Reimplemented from CreatureScript.

777 {
778 ClearGossipMenuFor(player);
779 switch (action)
780 {
782 player->GetSession()->SendListInventory(creature->GetGUID());
783 break;
784 }
785
786 return true;
787 }
void ClearGossipMenuFor(Player *player)
Definition: ScriptedGossip.cpp:22
WorldSession * GetSession() const
Definition: Player.h:1961
void SendListInventory(ObjectGuid guid, uint32 vendorEntry=0)
Definition: ItemHandler.cpp:1035

References ClearGossipMenuFor(), Object::GetGUID(), Player::GetSession(), GOSSIP_ACTION_TRADE, and WorldSession::SendListInventory().