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
408: 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.

597 {
598 QuestRelationBounds qr = sObjectMgr->GetCreatureQuestRelationBounds(creature->GetEntry());
599 QuestRelationBounds qir = sObjectMgr->GetCreatureQuestInvolvedRelationBounds(creature->GetEntry());
601
602 Battlefield* wintergrasp = sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG);
603
604 for (QuestRelations::const_iterator i = qir.first; i != qir.second; ++i)
605 {
607 uint32 questId = i->second;
608 Quest const* quest = sObjectMgr->GetQuestTemplate(questId);
609 if (!quest)
610 continue;
611
612 ConditionList conditions = sConditionMgr->GetConditionsForNotGroupedEntry(CONDITION_SOURCE_TYPE_QUEST_AVAILABLE, quest->GetQuestId());
613 if (!sConditionMgr->IsObjectMeetToConditions(player, conditions))
614 continue;
615
616 QuestStatus status = player->GetQuestStatus(questId);
617 if ((status == QUEST_STATUS_COMPLETE && !player->GetQuestRewardStatus(questId)) ||
618 (quest->IsAutoComplete() && player->CanTakeQuest(quest, false)))
619 {
620 if (quest->IsAutoComplete() && quest->IsRepeatable() && !quest->IsDailyOrWeekly())
621 result2 = DIALOG_STATUS_REWARD_REP;
622 else
623 result2 = DIALOG_STATUS_REWARD;
624 }
625 else if (status == QUEST_STATUS_INCOMPLETE)
626 result2 = DIALOG_STATUS_INCOMPLETE;
627
628 if (result2 > result)
629 result = result2;
630 }
631
632 for (QuestRelations::const_iterator i = qr.first; i != qr.second; ++i)
633 {
635 uint32 questId = i->second;
636 Quest const* quest = sObjectMgr->GetQuestTemplate(questId);
637 if (!quest)
638 continue;
639
640 ConditionList conditions = sConditionMgr->GetConditionsForNotGroupedEntry(CONDITION_SOURCE_TYPE_QUEST_AVAILABLE, quest->GetQuestId());
641 if (!sConditionMgr->IsObjectMeetToConditions(player, conditions))
642 continue;
643
644 switch (questId)
645 {
647 if (!sPoolMgr->IsSpawnedObject<Quest>(QUEST_BONES_AND_ARROWS_ALLIANCE_DEF))
648 continue;
649 break;
652 continue;
653 break;
655 if (!sPoolMgr->IsSpawnedObject<Quest>(QUEST_A_RARE_HERB_ALLIANCE_DEF))
656 continue;
657 break;
660 continue;
661 break;
663 if (!sPoolMgr->IsSpawnedObject<Quest>(QUEST_BONES_AND_ARROWS_HORDE_DEF))
664 continue;
665 break;
667 if (!sPoolMgr->IsSpawnedObject<Quest>(QUEST_WARDING_THE_WALLS_HORDE_DEF))
668 continue;
669 break;
672 continue;
673 break;
675 if (!sPoolMgr->IsSpawnedObject<Quest>(QUEST_HEALING_WITH_ROSES_HORDE_DEF))
676 continue;
677 break;
678 }
679
680 if (wintergrasp)
681 {
682 // Certain quests are only available when attacking / defending
683 bool hasCorrectZoneControl = false;
684 switch (questId)
685 {
686 // Horde attacker
693 if (wintergrasp->GetAttackerTeam() == TEAM_HORDE)
694 {
695 hasCorrectZoneControl = true;
696 }
697 break;
698 // Horde defender
706 if (wintergrasp->GetDefenderTeam() == TEAM_HORDE)
707 {
708 hasCorrectZoneControl = true;
709 }
710 break;
711 // Alliance attacker
718 if (wintergrasp->GetAttackerTeam() == TEAM_ALLIANCE)
719 {
720 hasCorrectZoneControl = true;
721 }
722 break;
723 // Alliance defender
731 if (wintergrasp->GetDefenderTeam() == TEAM_ALLIANCE)
732 {
733 hasCorrectZoneControl = true;
734 }
735 break;
736 default:
737 hasCorrectZoneControl = true;
738 break;
739 }
740
741 if (!hasCorrectZoneControl)
742 {
743 continue;
744 }
745 }
746
747 QuestStatus status = player->GetQuestStatus(questId);
748 if (status == QUEST_STATUS_NONE)
749 {
750 if (player->CanSeeStartQuest(quest))
751 {
752 if (player->SatisfyQuestLevel(quest, false))
753 {
754 if (quest->IsAutoComplete())
755 result2 = DIALOG_STATUS_REWARD_REP;
756 else if (player->GetLevel() <= (player->GetQuestLevel(quest) + sWorld->getIntConfig(CONFIG_QUEST_LOW_LEVEL_HIDE_DIFF)))
757 {
758 if (quest->IsDaily())
760 else
761 result2 = DIALOG_STATUS_AVAILABLE;
762 }
763 else
765 }
766 else
768 }
769 }
770
771 if (result2 > result)
772 result = result2;
773 }
774
775 return result;
776 }
#define sBattlefieldMgr
Definition BattlefieldMgr.h:76
@ BATTLEFIELD_BATTLEID_WG
Definition Battlefield.h:36
#define sConditionMgr
Definition ConditionMgr.h:292
@ CONDITION_SOURCE_TYPE_QUEST_AVAILABLE
Definition ConditionMgr.h:144
std::list< Condition * > ConditionList
Definition ConditionMgr.h:239
std::uint32_t uint32
Definition Define.h:107
std::pair< QuestRelations::const_iterator, QuestRelations::const_iterator > QuestRelationBounds
Definition ObjectMgr.h:528
#define sObjectMgr
Definition ObjectMgr.h:1712
#define sPoolMgr
Definition PoolMgr.h:165
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:208
TeamId GetAttackerTeam() const
Definition Battlefield.h:280
TeamId GetDefenderTeam() const
Definition Battlefield.h:279
uint32 GetEntry() const
Definition Object.h:117
int32 GetQuestLevel(Quest const *quest) const
Definition Player.h:1441
bool GetQuestRewardStatus(uint32 quest_id) const
Definition PlayerQuest.cpp:1447
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:968
QuestStatus GetQuestStatus(uint32 quest_id) const
Definition PlayerQuest.cpp:1462
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:316
@ QUEST_HEALING_WITH_ROSES_HORDE_DEF
Definition zone_wintergrasp.cpp:97
@ QUEST_DEFEND_THE_SIEGE_HORDE_ATT
Definition zone_wintergrasp.cpp:91
@ QUEST_SHOUTHERN_SABOTAGE_ALLIANCE_DEF
Definition zone_wintergrasp.cpp:111
@ QUEST_SLAY_THEM_ALL_HORDE_DEF
Definition zone_wintergrasp.cpp:95
@ QUEST_FUELING_THE_DEMOLISHERS_HORDE_DEF
Definition zone_wintergrasp.cpp:96
@ QUEST_A_RARE_HERB_ALLIANCE_DEF
Definition zone_wintergrasp.cpp:113
@ QUEST_FUELING_THE_DEMOLISHERS_HORDE_ATT
Definition zone_wintergrasp.cpp:89
@ QUEST_SLAY_THEM_ALL_HORDE_ATT
Definition zone_wintergrasp.cpp:88
@ QUEST_STOP_THE_SIEGE_HORDE_DEF
Definition zone_wintergrasp.cpp:99
@ QUEST_WARDING_THE_WALLS_HORDE_DEF
Definition zone_wintergrasp.cpp:94
@ QUEST_BONES_AND_ARROWS_ALLIANCE_DEF
Definition zone_wintergrasp.cpp:108
@ QUEST_A_RARE_HERB_ALLIANCE_ATT
Definition zone_wintergrasp.cpp:105
@ QUEST_HEALING_WITH_ROSES_HORDE_ATT
Definition zone_wintergrasp.cpp:90
@ QUEST_BONES_AND_ARROWS_ALLIANCE_ATT
Definition zone_wintergrasp.cpp:101
@ QUEST_NO_MERCY_FOR_THE_MERCILESS_ALLIANCE_ATT
Definition zone_wintergrasp.cpp:103
@ QUEST_FUELING_THE_DEMOLISHERS_ALLIANCE_ATT
Definition zone_wintergrasp.cpp:106
@ QUEST_STOP_THE_SIEGE_ALLIANCE_DEF
Definition zone_wintergrasp.cpp:112
@ QUEST_NO_MERCY_FOR_THE_MERCILESS_ALLIANCE_DEF
Definition zone_wintergrasp.cpp:110
@ QUEST_WARDING_THE_WARRIORS_ALLIANCE_ATT
Definition zone_wintergrasp.cpp:102
@ QUEST_TOPPLING_THE_TOWERS_HORDE_DEF
Definition zone_wintergrasp.cpp:98
@ QUEST_BONES_AND_ARROWS_HORDE_DEF
Definition zone_wintergrasp.cpp:93
@ QUEST_WARDING_THE_WARRIORS_ALLIANCE_DEF
Definition zone_wintergrasp.cpp:109
@ QUEST_FUELING_THE_DEMOLISHERS_ALLIANCE_DEF
Definition zone_wintergrasp.cpp:114
@ QUEST_BONES_AND_ARROWS_HORDE_ATT
Definition zone_wintergrasp.cpp:86
@ QUEST_DEFEND_THE_SIEGE_ALLIANCE_ATT
Definition zone_wintergrasp.cpp:104
@ QUEST_JINXING_THE_WALLS_HORDE_ATT
Definition zone_wintergrasp.cpp:87

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.

411 {
412 if (creature->IsQuestGiver())
413 {
414 player->PrepareQuestMenu(creature->GetGUID());
415 }
416
417 if (creature->IsVendor())
418 {
420 }
421
422 Battlefield* wintergrasp = sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG);
423 if (!wintergrasp)
424 {
425 return true;
426 }
427
428 if (creature->IsQuestGiver())
429 {
430 QuestRelationBounds objectQR = sObjectMgr->GetCreatureQuestRelationBounds(creature->GetEntry());
431 QuestRelationBounds objectQIR = sObjectMgr->GetCreatureQuestInvolvedRelationBounds(creature->GetEntry());
432
433 QuestMenu& qm = player->PlayerTalkClass->GetQuestMenu();
434 qm.ClearMenu();
435
436 for (QuestRelations::const_iterator i = objectQIR.first; i != objectQIR.second; ++i)
437 {
438 uint32 quest_id = i->second;
439 QuestStatus status = player->GetQuestStatus(quest_id);
440 if (status == QUEST_STATUS_COMPLETE)
441 qm.AddMenuItem(quest_id, 4);
442 else if (status == QUEST_STATUS_INCOMPLETE)
443 qm.AddMenuItem(quest_id, 4);
444 //else if (status == QUEST_STATUS_AVAILABLE)
445 // qm.AddMenuItem(quest_id, 2);
446 }
447
448 // xinef: add att/def doubles if this quest is spawned
449 std::vector<uint32> questRelationVector;
450 for (QuestRelations::const_iterator i = objectQR.first; i != objectQR.second; ++i)
451 {
452 uint32 questId = i->second;
453 Quest const* quest = sObjectMgr->GetQuestTemplate(questId);
454 if (!quest)
455 continue;
456
457 switch (questId)
458 {
460 if (!sPoolMgr->IsSpawnedObject<Quest>(QUEST_BONES_AND_ARROWS_ALLIANCE_DEF))
461 continue;
462 questRelationVector.push_back(QUEST_BONES_AND_ARROWS_ALLIANCE_ATT);
463 break;
466 continue;
467 questRelationVector.push_back(QUEST_WARDING_THE_WARRIORS_ALLIANCE_ATT);
468 break;
470 if (!sPoolMgr->IsSpawnedObject<Quest>(QUEST_A_RARE_HERB_ALLIANCE_DEF))
471 continue;
472 questRelationVector.push_back(QUEST_A_RARE_HERB_ALLIANCE_ATT);
473 break;
476 continue;
477 questRelationVector.push_back(QUEST_FUELING_THE_DEMOLISHERS_ALLIANCE_ATT);
478 break;
480 if (!sPoolMgr->IsSpawnedObject<Quest>(QUEST_BONES_AND_ARROWS_HORDE_DEF))
481 continue;
482 questRelationVector.push_back(QUEST_BONES_AND_ARROWS_HORDE_ATT);
483 break;
485 if (!sPoolMgr->IsSpawnedObject<Quest>(QUEST_WARDING_THE_WALLS_HORDE_DEF))
486 continue;
487 questRelationVector.push_back(QUEST_JINXING_THE_WALLS_HORDE_ATT);
488 break;
491 continue;
492 questRelationVector.push_back(QUEST_FUELING_THE_DEMOLISHERS_HORDE_ATT);
493 break;
495 if (!sPoolMgr->IsSpawnedObject<Quest>(QUEST_HEALING_WITH_ROSES_HORDE_DEF))
496 continue;
497 questRelationVector.push_back(QUEST_HEALING_WITH_ROSES_HORDE_ATT);
498 break;
499 default:
500 questRelationVector.push_back(questId);
501 break;
502 }
503 }
504
505 for (std::vector<uint32>::const_iterator i = questRelationVector.begin(); i != questRelationVector.end(); ++i)
506 {
507 uint32 questId = *i;
508 Quest const* quest = sObjectMgr->GetQuestTemplate(questId);
509 switch (questId)
510 {
511 // Horde attacker
518 if (wintergrasp->GetAttackerTeam() == TEAM_HORDE)
519 {
520 QuestStatus status = player->GetQuestStatus(questId);
521
522 if (quest->IsAutoComplete() && player->CanTakeQuest(quest, false))
523 qm.AddMenuItem(questId, 4);
524 else if (status == QUEST_STATUS_NONE && player->CanTakeQuest(quest, false))
525 qm.AddMenuItem(questId, 2);
526 }
527 break;
528 // Horde defender
536 if (wintergrasp->GetDefenderTeam() == TEAM_HORDE)
537 {
538 QuestStatus status = player->GetQuestStatus(questId);
539
540 if (quest->IsAutoComplete() && player->CanTakeQuest(quest, false))
541 qm.AddMenuItem(questId, 4);
542 else if (status == QUEST_STATUS_NONE && player->CanTakeQuest(quest, false))
543 qm.AddMenuItem(questId, 2);
544 }
545 break;
546 // Alliance attacker
553 if (wintergrasp->GetAttackerTeam() == TEAM_ALLIANCE)
554 {
555 QuestStatus status = player->GetQuestStatus(questId);
556
557 if (quest->IsAutoComplete() && player->CanTakeQuest(quest, false))
558 qm.AddMenuItem(questId, 4);
559 else if (status == QUEST_STATUS_NONE && player->CanTakeQuest(quest, false))
560 qm.AddMenuItem(questId, 2);
561 }
562 break;
563 // Alliance defender
571 if (wintergrasp->GetDefenderTeam() == TEAM_ALLIANCE)
572 {
573 QuestStatus status = player->GetQuestStatus(questId);
574
575 if (quest->IsAutoComplete() && player->CanTakeQuest(quest, false))
576 qm.AddMenuItem(questId, 4);
577 else if (status == QUEST_STATUS_NONE && player->CanTakeQuest(quest, false))
578 qm.AddMenuItem(questId, 2);
579 }
580 break;
581 default:
582 QuestStatus status = player->GetQuestStatus(questId);
583
584 if (quest->IsAutoComplete() && player->CanTakeQuest(quest, false))
585 qm.AddMenuItem(questId, 4);
586 else if (status == QUEST_STATUS_NONE && player->CanTakeQuest(quest, false))
587 qm.AddMenuItem(questId, 2);
588 break;
589 }
590 }
591 }
592 SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
593 return true;
594 }
@ 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:39
uint32 GetGossipTextId(uint32 menuId, WorldObject *source)
Definition PlayerGossip.cpp:409
PlayerMenu * PlayerTalkClass
Definition Player.h:2274
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.

779 {
780 ClearGossipMenuFor(player);
781 switch (action)
782 {
784 player->GetSession()->SendListInventory(creature->GetGUID());
785 break;
786 }
787
788 return true;
789 }
void ClearGossipMenuFor(Player *player)
Definition ScriptedGossip.cpp:22
WorldSession * GetSession() const
Definition Player.h:2019
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: