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 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 CreatureAIGetAI (Creature *) const
 
virtual void OnFfaPvpStateUpdate (Creature *, bool)
 
- Public Member Functions inherited from ScriptObject
virtual bool isAfterLoadScript () const
 
virtual void checkValidity ()
 
const std::string & GetName () const
 
uint16 GetTotalAvailableHooks ()
 
- 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, uint16 totalAvailableHooks=0)
 
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
413: 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.

602 {
603 QuestRelationBounds qr = sObjectMgr->GetCreatureQuestRelationBounds(creature->GetEntry());
604 QuestRelationBounds qir = sObjectMgr->GetCreatureQuestInvolvedRelationBounds(creature->GetEntry());
606
607 Battlefield* wintergrasp = sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG);
608
609 for (QuestRelations::const_iterator i = qir.first; i != qir.second; ++i)
610 {
612 uint32 questId = i->second;
613 Quest const* quest = sObjectMgr->GetQuestTemplate(questId);
614 if (!quest)
615 continue;
616
617 ConditionList conditions = sConditionMgr->GetConditionsForNotGroupedEntry(CONDITION_SOURCE_TYPE_QUEST_AVAILABLE, quest->GetQuestId());
618 if (!sConditionMgr->IsObjectMeetToConditions(player, conditions))
619 continue;
620
621 QuestStatus status = player->GetQuestStatus(questId);
622 if ((status == QUEST_STATUS_COMPLETE && !player->GetQuestRewardStatus(questId)) ||
623 (quest->IsAutoComplete() && player->CanTakeQuest(quest, false)))
624 {
625 if (quest->IsAutoComplete() && quest->IsRepeatable() && !quest->IsDailyOrWeekly())
626 result2 = DIALOG_STATUS_REWARD_REP;
627 else
628 result2 = DIALOG_STATUS_REWARD;
629 }
630 else if (status == QUEST_STATUS_INCOMPLETE)
631 result2 = DIALOG_STATUS_INCOMPLETE;
632
633 if (result2 > result)
634 result = result2;
635 }
636
637 for (QuestRelations::const_iterator i = qr.first; i != qr.second; ++i)
638 {
640 uint32 questId = i->second;
641 Quest const* quest = sObjectMgr->GetQuestTemplate(questId);
642 if (!quest)
643 continue;
644
645 ConditionList conditions = sConditionMgr->GetConditionsForNotGroupedEntry(CONDITION_SOURCE_TYPE_QUEST_AVAILABLE, quest->GetQuestId());
646 if (!sConditionMgr->IsObjectMeetToConditions(player, conditions))
647 continue;
648
649 switch (questId)
650 {
652 if (!sPoolMgr->IsSpawnedObject<Quest>(QUEST_BONES_AND_ARROWS_ALLIANCE_DEF))
653 continue;
654 break;
657 continue;
658 break;
660 if (!sPoolMgr->IsSpawnedObject<Quest>(QUEST_A_RARE_HERB_ALLIANCE_DEF))
661 continue;
662 break;
665 continue;
666 break;
668 if (!sPoolMgr->IsSpawnedObject<Quest>(QUEST_BONES_AND_ARROWS_HORDE_DEF))
669 continue;
670 break;
672 if (!sPoolMgr->IsSpawnedObject<Quest>(QUEST_WARDING_THE_WALLS_HORDE_DEF))
673 continue;
674 break;
677 continue;
678 break;
680 if (!sPoolMgr->IsSpawnedObject<Quest>(QUEST_HEALING_WITH_ROSES_HORDE_DEF))
681 continue;
682 break;
683 }
684
685 if (wintergrasp)
686 {
687 // Certain quests are only available when attacking / defending
688 bool hasCorrectZoneControl = false;
689 switch (questId)
690 {
691 // Horde attacker
698 if (wintergrasp->GetAttackerTeam() == TEAM_HORDE)
699 {
700 hasCorrectZoneControl = true;
701 }
702 break;
703 // Horde defender
711 if (wintergrasp->GetDefenderTeam() == TEAM_HORDE)
712 {
713 hasCorrectZoneControl = true;
714 }
715 break;
716 // Alliance attacker
723 if (wintergrasp->GetAttackerTeam() == TEAM_ALLIANCE)
724 {
725 hasCorrectZoneControl = true;
726 }
727 break;
728 // Alliance defender
736 if (wintergrasp->GetDefenderTeam() == TEAM_ALLIANCE)
737 {
738 hasCorrectZoneControl = true;
739 }
740 break;
741 default:
742 hasCorrectZoneControl = true;
743 break;
744 }
745
746 if (!hasCorrectZoneControl)
747 {
748 continue;
749 }
750 }
751
752 QuestStatus status = player->GetQuestStatus(questId);
753 if (status == QUEST_STATUS_NONE)
754 {
755 if (player->CanSeeStartQuest(quest))
756 {
757 if (player->SatisfyQuestLevel(quest, false))
758 {
759 if (quest->IsAutoComplete())
760 result2 = DIALOG_STATUS_REWARD_REP;
761 else if (player->GetLevel() <= (player->GetQuestLevel(quest) + sWorld->getIntConfig(CONFIG_QUEST_LOW_LEVEL_HIDE_DIFF)))
762 {
763 if (quest->IsDaily())
765 else
766 result2 = DIALOG_STATUS_AVAILABLE;
767 }
768 else
770 }
771 else
773 }
774 }
775
776 if (result2 > result)
777 result = result2;
778 }
779
780 return result;
781 }
#define sBattlefieldMgr
Definition BattlefieldMgr.h:79
@ BATTLEFIELD_BATTLEID_WG
Definition Battlefield.h:36
#define sConditionMgr
Definition ConditionMgr.h:296
@ CONDITION_SOURCE_TYPE_QUEST_AVAILABLE
Definition ConditionMgr.h:145
std::list< Condition * > ConditionList
Definition ConditionMgr.h:240
std::uint32_t uint32
Definition Define.h:107
std::pair< QuestRelations::const_iterator, QuestRelations::const_iterator > QuestRelationBounds
Definition ObjectMgr.h:531
#define sObjectMgr
Definition ObjectMgr.h:1732
#define sPoolMgr
Definition PoolMgr.h:177
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
@ TEAM_ALLIANCE
Definition SharedDefines.h:748
@ TEAM_HORDE
Definition SharedDefines.h:749
@ CONFIG_QUEST_LOW_LEVEL_HIDE_DIFF
Definition WorldConfig.h:243
Definition Battlefield.h:196
TeamId GetAttackerTeam() const
Definition Battlefield.h:268
TeamId GetDefenderTeam() const
Definition Battlefield.h:267
uint32 GetEntry() const
Definition Object.h:117
int32 GetQuestLevel(Quest const *quest) const
Definition Player.h:1444
bool GetQuestRewardStatus(uint32 quest_id) const
Definition PlayerQuest.cpp:1451
bool CanTakeQuest(Quest const *quest, bool msg)
Definition PlayerQuest.cpp:252
bool CanSeeStartQuest(Quest const *quest)
Definition PlayerQuest.cpp:238
bool SatisfyQuestLevel(Quest const *qInfo, bool msg) const
Definition PlayerQuest.cpp:970
QuestStatus GetQuestStatus(uint32 quest_id) const
Definition PlayerQuest.cpp:1466
Definition QuestDef.h:210
bool IsRepeatable() const
Definition QuestDef.h:284
bool IsAutoComplete() const
Definition QuestDef.cpp:275
uint32 GetQuestId() const
Definition QuestDef.h:228
bool IsDaily() const
Definition QuestDef.h:288
bool IsDailyOrWeekly() const
Definition QuestDef.h:292
uint8 GetLevel() const
Definition Unit.h:1103
#define sWorld
Definition World.h:317
@ QUEST_HEALING_WITH_ROSES_HORDE_DEF
Definition zone_wintergrasp.cpp:96
@ QUEST_DEFEND_THE_SIEGE_HORDE_ATT
Definition zone_wintergrasp.cpp:90
@ QUEST_SHOUTHERN_SABOTAGE_ALLIANCE_DEF
Definition zone_wintergrasp.cpp:110
@ QUEST_SLAY_THEM_ALL_HORDE_DEF
Definition zone_wintergrasp.cpp:94
@ QUEST_FUELING_THE_DEMOLISHERS_HORDE_DEF
Definition zone_wintergrasp.cpp:95
@ QUEST_A_RARE_HERB_ALLIANCE_DEF
Definition zone_wintergrasp.cpp:112
@ QUEST_FUELING_THE_DEMOLISHERS_HORDE_ATT
Definition zone_wintergrasp.cpp:88
@ QUEST_SLAY_THEM_ALL_HORDE_ATT
Definition zone_wintergrasp.cpp:87
@ QUEST_STOP_THE_SIEGE_HORDE_DEF
Definition zone_wintergrasp.cpp:98
@ QUEST_WARDING_THE_WALLS_HORDE_DEF
Definition zone_wintergrasp.cpp:93
@ QUEST_BONES_AND_ARROWS_ALLIANCE_DEF
Definition zone_wintergrasp.cpp:107
@ QUEST_A_RARE_HERB_ALLIANCE_ATT
Definition zone_wintergrasp.cpp:104
@ QUEST_HEALING_WITH_ROSES_HORDE_ATT
Definition zone_wintergrasp.cpp:89
@ QUEST_BONES_AND_ARROWS_ALLIANCE_ATT
Definition zone_wintergrasp.cpp:100
@ QUEST_NO_MERCY_FOR_THE_MERCILESS_ALLIANCE_ATT
Definition zone_wintergrasp.cpp:102
@ QUEST_FUELING_THE_DEMOLISHERS_ALLIANCE_ATT
Definition zone_wintergrasp.cpp:105
@ QUEST_STOP_THE_SIEGE_ALLIANCE_DEF
Definition zone_wintergrasp.cpp:111
@ QUEST_NO_MERCY_FOR_THE_MERCILESS_ALLIANCE_DEF
Definition zone_wintergrasp.cpp:109
@ QUEST_WARDING_THE_WARRIORS_ALLIANCE_ATT
Definition zone_wintergrasp.cpp:101
@ QUEST_TOPPLING_THE_TOWERS_HORDE_DEF
Definition zone_wintergrasp.cpp:97
@ QUEST_BONES_AND_ARROWS_HORDE_DEF
Definition zone_wintergrasp.cpp:92
@ QUEST_WARDING_THE_WARRIORS_ALLIANCE_DEF
Definition zone_wintergrasp.cpp:108
@ QUEST_FUELING_THE_DEMOLISHERS_ALLIANCE_DEF
Definition zone_wintergrasp.cpp:113
@ QUEST_BONES_AND_ARROWS_HORDE_ATT
Definition zone_wintergrasp.cpp:85
@ QUEST_DEFEND_THE_SIEGE_ALLIANCE_ATT
Definition zone_wintergrasp.cpp:103
@ QUEST_JINXING_THE_WALLS_HORDE_ATT
Definition zone_wintergrasp.cpp:86

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.

416 {
417 if (creature->IsQuestGiver())
418 {
419 player->PrepareQuestMenu(creature->GetGUID());
420 }
421
422 if (creature->IsVendor())
423 {
425 }
426
427 Battlefield* wintergrasp = sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG);
428 if (!wintergrasp)
429 {
430 return true;
431 }
432
433 if (creature->IsQuestGiver())
434 {
435 QuestRelationBounds objectQR = sObjectMgr->GetCreatureQuestRelationBounds(creature->GetEntry());
436 QuestRelationBounds objectQIR = sObjectMgr->GetCreatureQuestInvolvedRelationBounds(creature->GetEntry());
437
438 QuestMenu& qm = player->PlayerTalkClass->GetQuestMenu();
439 qm.ClearMenu();
440
441 for (QuestRelations::const_iterator i = objectQIR.first; i != objectQIR.second; ++i)
442 {
443 uint32 quest_id = i->second;
444 QuestStatus status = player->GetQuestStatus(quest_id);
445 if (status == QUEST_STATUS_COMPLETE)
446 qm.AddMenuItem(quest_id, 4);
447 else if (status == QUEST_STATUS_INCOMPLETE)
448 qm.AddMenuItem(quest_id, 4);
449 //else if (status == QUEST_STATUS_AVAILABLE)
450 // qm.AddMenuItem(quest_id, 2);
451 }
452
453 // xinef: add att/def doubles if this quest is spawned
454 std::vector<uint32> questRelationVector;
455 for (QuestRelations::const_iterator i = objectQR.first; i != objectQR.second; ++i)
456 {
457 uint32 questId = i->second;
458 Quest const* quest = sObjectMgr->GetQuestTemplate(questId);
459 if (!quest)
460 continue;
461
462 switch (questId)
463 {
465 if (!sPoolMgr->IsSpawnedObject<Quest>(QUEST_BONES_AND_ARROWS_ALLIANCE_DEF))
466 continue;
467 questRelationVector.push_back(QUEST_BONES_AND_ARROWS_ALLIANCE_ATT);
468 break;
471 continue;
472 questRelationVector.push_back(QUEST_WARDING_THE_WARRIORS_ALLIANCE_ATT);
473 break;
475 if (!sPoolMgr->IsSpawnedObject<Quest>(QUEST_A_RARE_HERB_ALLIANCE_DEF))
476 continue;
477 questRelationVector.push_back(QUEST_A_RARE_HERB_ALLIANCE_ATT);
478 break;
481 continue;
482 questRelationVector.push_back(QUEST_FUELING_THE_DEMOLISHERS_ALLIANCE_ATT);
483 break;
485 if (!sPoolMgr->IsSpawnedObject<Quest>(QUEST_BONES_AND_ARROWS_HORDE_DEF))
486 continue;
487 questRelationVector.push_back(QUEST_BONES_AND_ARROWS_HORDE_ATT);
488 break;
490 if (!sPoolMgr->IsSpawnedObject<Quest>(QUEST_WARDING_THE_WALLS_HORDE_DEF))
491 continue;
492 questRelationVector.push_back(QUEST_JINXING_THE_WALLS_HORDE_ATT);
493 break;
496 continue;
497 questRelationVector.push_back(QUEST_FUELING_THE_DEMOLISHERS_HORDE_ATT);
498 break;
500 if (!sPoolMgr->IsSpawnedObject<Quest>(QUEST_HEALING_WITH_ROSES_HORDE_DEF))
501 continue;
502 questRelationVector.push_back(QUEST_HEALING_WITH_ROSES_HORDE_ATT);
503 break;
504 default:
505 questRelationVector.push_back(questId);
506 break;
507 }
508 }
509
510 for (std::vector<uint32>::const_iterator i = questRelationVector.begin(); i != questRelationVector.end(); ++i)
511 {
512 uint32 questId = *i;
513 Quest const* quest = sObjectMgr->GetQuestTemplate(questId);
514 switch (questId)
515 {
516 // Horde attacker
523 if (wintergrasp->GetAttackerTeam() == TEAM_HORDE)
524 {
525 QuestStatus status = player->GetQuestStatus(questId);
526
527 if (quest->IsAutoComplete() && player->CanTakeQuest(quest, false))
528 qm.AddMenuItem(questId, 4);
529 else if (status == QUEST_STATUS_NONE && player->CanTakeQuest(quest, false))
530 qm.AddMenuItem(questId, 2);
531 }
532 break;
533 // Horde defender
541 if (wintergrasp->GetDefenderTeam() == TEAM_HORDE)
542 {
543 QuestStatus status = player->GetQuestStatus(questId);
544
545 if (quest->IsAutoComplete() && player->CanTakeQuest(quest, false))
546 qm.AddMenuItem(questId, 4);
547 else if (status == QUEST_STATUS_NONE && player->CanTakeQuest(quest, false))
548 qm.AddMenuItem(questId, 2);
549 }
550 break;
551 // Alliance attacker
558 if (wintergrasp->GetAttackerTeam() == TEAM_ALLIANCE)
559 {
560 QuestStatus status = player->GetQuestStatus(questId);
561
562 if (quest->IsAutoComplete() && player->CanTakeQuest(quest, false))
563 qm.AddMenuItem(questId, 4);
564 else if (status == QUEST_STATUS_NONE && player->CanTakeQuest(quest, false))
565 qm.AddMenuItem(questId, 2);
566 }
567 break;
568 // Alliance defender
576 if (wintergrasp->GetDefenderTeam() == TEAM_ALLIANCE)
577 {
578 QuestStatus status = player->GetQuestStatus(questId);
579
580 if (quest->IsAutoComplete() && player->CanTakeQuest(quest, false))
581 qm.AddMenuItem(questId, 4);
582 else if (status == QUEST_STATUS_NONE && player->CanTakeQuest(quest, false))
583 qm.AddMenuItem(questId, 2);
584 }
585 break;
586 default:
587 QuestStatus status = player->GetQuestStatus(questId);
588
589 if (quest->IsAutoComplete() && player->CanTakeQuest(quest, false))
590 qm.AddMenuItem(questId, 4);
591 else if (status == QUEST_STATUS_NONE && player->CanTakeQuest(quest, false))
592 qm.AddMenuItem(questId, 2);
593 break;
594 }
595 }
596 }
597 SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
598 return true;
599 }
@ GOSSIP_ICON_VENDOR
Definition GossipDef.h:62
void AddGossipItemFor(Player *player, uint32 icon, std::string const &text, uint32 sender, uint32 action)
Definition ScriptedGossip.cpp:28
void SendGossipMenuFor(Player *player, uint32 npcTextID, ObjectGuid const &guid)
Definition ScriptedGossip.cpp:45
#define GOSSIP_TEXT_BROWSE_GOODS
Definition ScriptedGossip.h:25
@ GOSSIP_SENDER_MAIN
Definition ScriptedGossip.h:70
@ GOSSIP_ACTION_TRADE
Definition ScriptedGossip.h:56
static ObjectGuid GetGUID(Object const *o)
Definition Object.h:114
QuestMenu & GetQuestMenu()
Definition GossipDef.h:265
void PrepareQuestMenu(ObjectGuid guid)
Definition PlayerQuest.cpp:40
uint32 GetGossipTextId(uint32 menuId, WorldObject *source)
Definition PlayerGossip.cpp:409
PlayerMenu * PlayerTalkClass
Definition Player.h:2278
Definition GossipDef.h:229
void ClearMenu()
Definition GossipDef.cpp:310
void AddMenuItem(uint32 QuestId, uint8 Icon)
Definition GossipDef.cpp:286
bool IsQuestGiver() const
Definition Unit.h:805
bool IsVendor() const
Definition Unit.h:803

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.

784 {
785 ClearGossipMenuFor(player);
786 switch (action)
787 {
789 player->GetSession()->SendListInventory(creature->GetGUID());
790 break;
791 }
792
793 return true;
794 }
void ClearGossipMenuFor(Player *player)
Definition ScriptedGossip.cpp:22
WorldSession * GetSession() const
Definition Player.h:2023
void SendListInventory(ObjectGuid guid, uint32 vendorEntry=0)
Definition ItemHandler.cpp:854

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


The documentation for this class was generated from the following file: