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
403: CreatureScript("npc_wg_quest_giver") { }
Definition: ScriptMgr.h:719

Member Function Documentation

◆ GetDialogStatus()

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

Reimplemented from CreatureScript.

592 {
593 QuestRelationBounds qr = sObjectMgr->GetCreatureQuestRelationBounds(creature->GetEntry());
594 QuestRelationBounds qir = sObjectMgr->GetCreatureQuestInvolvedRelationBounds(creature->GetEntry());
596
597 Battlefield* wintergrasp = sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG);
598
599 for (QuestRelations::const_iterator i = qir.first; i != qir.second; ++i)
600 {
602 uint32 questId = i->second;
603 Quest const* quest = sObjectMgr->GetQuestTemplate(questId);
604 if (!quest)
605 continue;
606
607 ConditionList conditions = sConditionMgr->GetConditionsForNotGroupedEntry(CONDITION_SOURCE_TYPE_QUEST_AVAILABLE, quest->GetQuestId());
608 if (!sConditionMgr->IsObjectMeetToConditions(player, conditions))
609 continue;
610
611 QuestStatus status = player->GetQuestStatus(questId);
612 if ((status == QUEST_STATUS_COMPLETE && !player->GetQuestRewardStatus(questId)) ||
613 (quest->IsAutoComplete() && player->CanTakeQuest(quest, false)))
614 {
615 if (quest->IsAutoComplete() && quest->IsRepeatable() && !quest->IsDailyOrWeekly())
616 result2 = DIALOG_STATUS_REWARD_REP;
617 else
618 result2 = DIALOG_STATUS_REWARD;
619 }
620 else if (status == QUEST_STATUS_INCOMPLETE)
621 result2 = DIALOG_STATUS_INCOMPLETE;
622
623 if (result2 > result)
624 result = result2;
625 }
626
627 for (QuestRelations::const_iterator i = qr.first; i != qr.second; ++i)
628 {
630 uint32 questId = i->second;
631 Quest const* quest = sObjectMgr->GetQuestTemplate(questId);
632 if (!quest)
633 continue;
634
635 ConditionList conditions = sConditionMgr->GetConditionsForNotGroupedEntry(CONDITION_SOURCE_TYPE_QUEST_AVAILABLE, quest->GetQuestId());
636 if (!sConditionMgr->IsObjectMeetToConditions(player, conditions))
637 continue;
638
639 switch (questId)
640 {
642 if (!sPoolMgr->IsSpawnedObject<Quest>(QUEST_BONES_AND_ARROWS_ALLIANCE_DEF))
643 continue;
644 break;
647 continue;
648 break;
650 if (!sPoolMgr->IsSpawnedObject<Quest>(QUEST_A_RARE_HERB_ALLIANCE_DEF))
651 continue;
652 break;
655 continue;
656 break;
658 if (!sPoolMgr->IsSpawnedObject<Quest>(QUEST_BONES_AND_ARROWS_HORDE_DEF))
659 continue;
660 break;
662 if (!sPoolMgr->IsSpawnedObject<Quest>(QUEST_WARDING_THE_WALLS_HORDE_DEF))
663 continue;
664 break;
667 continue;
668 break;
670 if (!sPoolMgr->IsSpawnedObject<Quest>(QUEST_HEALING_WITH_ROSES_HORDE_DEF))
671 continue;
672 break;
673 }
674
675 if (wintergrasp)
676 {
677 // Certain quests are only available when attacking / defending
678 bool hasCorrectZoneControl = false;
679 switch (questId)
680 {
681 // Horde attacker
688 if (wintergrasp->GetAttackerTeam() == TEAM_HORDE)
689 {
690 hasCorrectZoneControl = true;
691 }
692 break;
693 // Horde defender
701 if (wintergrasp->GetDefenderTeam() == TEAM_HORDE)
702 {
703 hasCorrectZoneControl = true;
704 }
705 break;
706 // Alliance attacker
713 if (wintergrasp->GetAttackerTeam() == TEAM_ALLIANCE)
714 {
715 hasCorrectZoneControl = true;
716 }
717 break;
718 // Alliance defender
726 if (wintergrasp->GetDefenderTeam() == TEAM_ALLIANCE)
727 {
728 hasCorrectZoneControl = true;
729 }
730 break;
731 default:
732 hasCorrectZoneControl = true;
733 break;
734 }
735
736 if (!hasCorrectZoneControl)
737 {
738 continue;
739 }
740 }
741
742 QuestStatus status = player->GetQuestStatus(questId);
743 if (status == QUEST_STATUS_NONE)
744 {
745 if (player->CanSeeStartQuest(quest))
746 {
747 if (player->SatisfyQuestLevel(quest, false))
748 {
749 if (quest->IsAutoComplete())
750 result2 = DIALOG_STATUS_REWARD_REP;
751 else if (player->GetLevel() <= (player->GetQuestLevel(quest) + sWorld->getIntConfig(CONFIG_QUEST_LOW_LEVEL_HIDE_DIFF)))
752 {
753 if (quest->IsDaily())
755 else
756 result2 = DIALOG_STATUS_AVAILABLE;
757 }
758 else
760 }
761 else
763 }
764 }
765
766 if (result2 > result)
767 result = result2;
768 }
769
770 return result;
771 }
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:285
@ QUEST_HEALING_WITH_ROSES_HORDE_DEF
Definition: zone_wintergrasp.cpp:92
@ QUEST_DEFEND_THE_SIEGE_HORDE_ATT
Definition: zone_wintergrasp.cpp:86
@ QUEST_SHOUTHERN_SABOTAGE_ALLIANCE_DEF
Definition: zone_wintergrasp.cpp:106
@ QUEST_SLAY_THEM_ALL_HORDE_DEF
Definition: zone_wintergrasp.cpp:90
@ QUEST_FUELING_THE_DEMOLISHERS_HORDE_DEF
Definition: zone_wintergrasp.cpp:91
@ QUEST_A_RARE_HERB_ALLIANCE_DEF
Definition: zone_wintergrasp.cpp:108
@ QUEST_FUELING_THE_DEMOLISHERS_HORDE_ATT
Definition: zone_wintergrasp.cpp:84
@ QUEST_SLAY_THEM_ALL_HORDE_ATT
Definition: zone_wintergrasp.cpp:83
@ QUEST_STOP_THE_SIEGE_HORDE_DEF
Definition: zone_wintergrasp.cpp:94
@ QUEST_WARDING_THE_WALLS_HORDE_DEF
Definition: zone_wintergrasp.cpp:89
@ QUEST_BONES_AND_ARROWS_ALLIANCE_DEF
Definition: zone_wintergrasp.cpp:103
@ QUEST_A_RARE_HERB_ALLIANCE_ATT
Definition: zone_wintergrasp.cpp:100
@ QUEST_HEALING_WITH_ROSES_HORDE_ATT
Definition: zone_wintergrasp.cpp:85
@ QUEST_BONES_AND_ARROWS_ALLIANCE_ATT
Definition: zone_wintergrasp.cpp:96
@ QUEST_NO_MERCY_FOR_THE_MERCILESS_ALLIANCE_ATT
Definition: zone_wintergrasp.cpp:98
@ QUEST_FUELING_THE_DEMOLISHERS_ALLIANCE_ATT
Definition: zone_wintergrasp.cpp:101
@ QUEST_STOP_THE_SIEGE_ALLIANCE_DEF
Definition: zone_wintergrasp.cpp:107
@ QUEST_NO_MERCY_FOR_THE_MERCILESS_ALLIANCE_DEF
Definition: zone_wintergrasp.cpp:105
@ QUEST_WARDING_THE_WARRIORS_ALLIANCE_ATT
Definition: zone_wintergrasp.cpp:97
@ QUEST_TOPPLING_THE_TOWERS_HORDE_DEF
Definition: zone_wintergrasp.cpp:93
@ QUEST_BONES_AND_ARROWS_HORDE_DEF
Definition: zone_wintergrasp.cpp:88
@ QUEST_WARDING_THE_WARRIORS_ALLIANCE_DEF
Definition: zone_wintergrasp.cpp:104
@ QUEST_FUELING_THE_DEMOLISHERS_ALLIANCE_DEF
Definition: zone_wintergrasp.cpp:109
@ QUEST_BONES_AND_ARROWS_HORDE_ATT
Definition: zone_wintergrasp.cpp:81
@ QUEST_DEFEND_THE_SIEGE_ALLIANCE_ATT
Definition: zone_wintergrasp.cpp:99
@ QUEST_JINXING_THE_WALLS_HORDE_ATT
Definition: zone_wintergrasp.cpp:82
@ TEAM_ALLIANCE
Definition: SharedDefines.h:732
@ TEAM_HORDE
Definition: SharedDefines.h:733
#define sWorld
Definition: World.h:451
Definition: Battlefield.h:205
TeamId GetDefenderTeam()
Definition: Battlefield.h:276
TeamId GetAttackerTeam()
Definition: Battlefield.h:277
uint32 GetEntry() const
Definition: Object.h:109
int32 GetQuestLevel(Quest const *quest) const
Definition: Player.h:1391
bool GetQuestRewardStatus(uint32 quest_id) const
Definition: PlayerQuest.cpp:1399
bool CanTakeQuest(Quest const *quest, bool msg)
Definition: PlayerQuest.cpp:250
bool CanSeeStartQuest(Quest const *quest)
Definition: PlayerQuest.cpp:236
bool SatisfyQuestLevel(Quest const *qInfo, bool msg) const
Definition: PlayerQuest.cpp:964
QuestStatus GetQuestStatus(uint32 quest_id) const
Definition: PlayerQuest.cpp:1414
uint8 GetLevel() const
Definition: Unit.h:1420
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.

406 {
407 if (creature->IsQuestGiver())
408 {
409 player->PrepareQuestMenu(creature->GetGUID());
410 }
411
412 if (creature->IsVendor())
413 {
415 }
416
417 Battlefield* wintergrasp = sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG);
418 if (!wintergrasp)
419 {
420 return true;
421 }
422
423 if (creature->IsQuestGiver())
424 {
425 QuestRelationBounds objectQR = sObjectMgr->GetCreatureQuestRelationBounds(creature->GetEntry());
426 QuestRelationBounds objectQIR = sObjectMgr->GetCreatureQuestInvolvedRelationBounds(creature->GetEntry());
427
428 QuestMenu& qm = player->PlayerTalkClass->GetQuestMenu();
429 qm.ClearMenu();
430
431 for (QuestRelations::const_iterator i = objectQIR.first; i != objectQIR.second; ++i)
432 {
433 uint32 quest_id = i->second;
434 QuestStatus status = player->GetQuestStatus(quest_id);
435 if (status == QUEST_STATUS_COMPLETE)
436 qm.AddMenuItem(quest_id, 4);
437 else if (status == QUEST_STATUS_INCOMPLETE)
438 qm.AddMenuItem(quest_id, 4);
439 //else if (status == QUEST_STATUS_AVAILABLE)
440 // qm.AddMenuItem(quest_id, 2);
441 }
442
443 // xinef: add att/def doubles if this quest is spawned
444 std::vector<uint32> questRelationVector;
445 for (QuestRelations::const_iterator i = objectQR.first; i != objectQR.second; ++i)
446 {
447 uint32 questId = i->second;
448 Quest const* quest = sObjectMgr->GetQuestTemplate(questId);
449 if (!quest)
450 continue;
451
452 switch (questId)
453 {
455 if (!sPoolMgr->IsSpawnedObject<Quest>(QUEST_BONES_AND_ARROWS_ALLIANCE_DEF))
456 continue;
457 questRelationVector.push_back(QUEST_BONES_AND_ARROWS_ALLIANCE_ATT);
458 break;
461 continue;
462 questRelationVector.push_back(QUEST_WARDING_THE_WARRIORS_ALLIANCE_ATT);
463 break;
465 if (!sPoolMgr->IsSpawnedObject<Quest>(QUEST_A_RARE_HERB_ALLIANCE_DEF))
466 continue;
467 questRelationVector.push_back(QUEST_A_RARE_HERB_ALLIANCE_ATT);
468 break;
471 continue;
472 questRelationVector.push_back(QUEST_FUELING_THE_DEMOLISHERS_ALLIANCE_ATT);
473 break;
475 if (!sPoolMgr->IsSpawnedObject<Quest>(QUEST_BONES_AND_ARROWS_HORDE_DEF))
476 continue;
477 questRelationVector.push_back(QUEST_BONES_AND_ARROWS_HORDE_ATT);
478 break;
480 if (!sPoolMgr->IsSpawnedObject<Quest>(QUEST_WARDING_THE_WALLS_HORDE_DEF))
481 continue;
482 questRelationVector.push_back(QUEST_JINXING_THE_WALLS_HORDE_ATT);
483 break;
486 continue;
487 questRelationVector.push_back(QUEST_FUELING_THE_DEMOLISHERS_HORDE_ATT);
488 break;
490 if (!sPoolMgr->IsSpawnedObject<Quest>(QUEST_HEALING_WITH_ROSES_HORDE_DEF))
491 continue;
492 questRelationVector.push_back(QUEST_HEALING_WITH_ROSES_HORDE_ATT);
493 break;
494 default:
495 questRelationVector.push_back(questId);
496 break;
497 }
498 }
499
500 for (std::vector<uint32>::const_iterator i = questRelationVector.begin(); i != questRelationVector.end(); ++i)
501 {
502 uint32 questId = *i;
503 Quest const* quest = sObjectMgr->GetQuestTemplate(questId);
504 switch (questId)
505 {
506 // Horde attacker
513 if (wintergrasp->GetAttackerTeam() == TEAM_HORDE)
514 {
515 QuestStatus status = player->GetQuestStatus(questId);
516
517 if (quest->IsAutoComplete() && player->CanTakeQuest(quest, false))
518 qm.AddMenuItem(questId, 4);
519 else if (status == QUEST_STATUS_NONE && player->CanTakeQuest(quest, false))
520 qm.AddMenuItem(questId, 2);
521 }
522 break;
523 // Horde defender
531 if (wintergrasp->GetDefenderTeam() == TEAM_HORDE)
532 {
533 QuestStatus status = player->GetQuestStatus(questId);
534
535 if (quest->IsAutoComplete() && player->CanTakeQuest(quest, false))
536 qm.AddMenuItem(questId, 4);
537 else if (status == QUEST_STATUS_NONE && player->CanTakeQuest(quest, false))
538 qm.AddMenuItem(questId, 2);
539 }
540 break;
541 // Alliance attacker
548 if (wintergrasp->GetAttackerTeam() == TEAM_ALLIANCE)
549 {
550 QuestStatus status = player->GetQuestStatus(questId);
551
552 if (quest->IsAutoComplete() && player->CanTakeQuest(quest, false))
553 qm.AddMenuItem(questId, 4);
554 else if (status == QUEST_STATUS_NONE && player->CanTakeQuest(quest, false))
555 qm.AddMenuItem(questId, 2);
556 }
557 break;
558 // Alliance defender
566 if (wintergrasp->GetDefenderTeam() == TEAM_ALLIANCE)
567 {
568 QuestStatus status = player->GetQuestStatus(questId);
569
570 if (quest->IsAutoComplete() && player->CanTakeQuest(quest, false))
571 qm.AddMenuItem(questId, 4);
572 else if (status == QUEST_STATUS_NONE && player->CanTakeQuest(quest, false))
573 qm.AddMenuItem(questId, 2);
574 }
575 break;
576 default:
577 QuestStatus status = player->GetQuestStatus(questId);
578
579 if (quest->IsAutoComplete() && player->CanTakeQuest(quest, false))
580 qm.AddMenuItem(questId, 4);
581 else if (status == QUEST_STATUS_NONE && player->CanTakeQuest(quest, false))
582 qm.AddMenuItem(questId, 2);
583 break;
584 }
585 }
586 }
587 SendGossipMenuFor(player, player->GetGossipTextId(creature), creature->GetGUID());
588 return true;
589 }
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:311
void AddMenuItem(uint32 QuestId, uint8 Icon)
Definition: GossipDef.cpp:287
QuestMenu & GetQuestMenu()
Definition: GossipDef.h:264
static ObjectGuid GetGUID(Object const *o)
Definition: Object.h:106
void PrepareQuestMenu(ObjectGuid guid)
Definition: PlayerQuest.cpp:38
uint32 GetGossipTextId(uint32 menuId, WorldObject *source)
Definition: PlayerGossip.cpp:405
PlayerMenu * PlayerTalkClass
Definition: Player.h:2188
bool IsQuestGiver() const
Definition: Unit.h:1653
bool IsVendor() const
Definition: Unit.h:1651

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.

774 {
775 ClearGossipMenuFor(player);
776 switch (action)
777 {
779 player->GetSession()->SendListInventory(creature->GetGUID());
780 break;
781 }
782
783 return true;
784 }
void ClearGossipMenuFor(Player *player)
Definition: ScriptedGossip.cpp:22
WorldSession * GetSession() const
Definition: Player.h:1948
void SendListInventory(ObjectGuid guid, uint32 vendorEntry=0)
Definition: ItemHandler.cpp:1039

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