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

Classes

struct  npc_barnesAI
 

Public Member Functions

 npc_barnes ()
 
bool OnGossipSelect (Player *player, Creature *creature, uint32, uint32 action) override
 
bool OnGossipHello (Player *player, Creature *creature) override
 
CreatureAIGetAI (Creature *creature) const 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_barnes()

npc_barnes::npc_barnes ( )
inline
124: CreatureScript("npc_barnes") { }
Definition: ScriptMgr.h:719

Member Function Documentation

◆ GetAI()

CreatureAI * npc_barnes::GetAI ( Creature creature) const
inlineoverridevirtual

Reimplemented from CreatureScript.

400 {
401 return GetKarazhanAI<npc_barnesAI>(creature);
402 }

◆ OnGossipHello()

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

Reimplemented from CreatureScript.

368 {
369 if (InstanceScript* instance = creature->GetInstanceScript())
370 {
371 // Check for death of Moroes and if opera event is not done already
372 if (instance->GetBossState(DATA_MOROES) == DONE && instance->GetBossState(DATA_OPERA_PERFORMANCE) != DONE)
373 {
375
376 if (player->IsGameMaster())
377 {
381 }
382
383 if (npc_barnesAI* pBarnesAI = CAST_AI(npc_barnes::npc_barnesAI, creature->AI()))
384 {
385 if (!pBarnesAI->RaidWiped)
386 SendGossipMenuFor(player, 8970, creature->GetGUID());
387 else
388 SendGossipMenuFor(player, 8975, creature->GetGUID());
389
390 return true;
391 }
392 }
393 }
394
395 SendGossipMenuFor(player, 8978, creature->GetGUID());
396 return true;
397 }
#define CAST_AI(a, b)
Definition: ScriptedCreature.h:28
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
@ GOSSIP_SENDER_MAIN
Definition: ScriptedGossip.h:70
@ GOSSIP_ACTION_INFO_DEF
Definition: ScriptedGossip.h:68
@ GOSSIP_ICON_DOT
Definition: GossipDef.h:70
@ DONE
Definition: InstanceScript.h:59
#define OZ_GM_GOSSIP2
Definition: karazhan.cpp:73
@ OZ_GOSSIP1_OID
Definition: karazhan.cpp:67
@ OZ_GOSSIP1_MID
Definition: karazhan.cpp:66
#define OZ_GM_GOSSIP3
Definition: karazhan.cpp:74
#define OZ_GM_GOSSIP1
Definition: karazhan.cpp:72
@ DATA_MOROES
Definition: karazhan.h:31
@ DATA_OPERA_PERFORMANCE
Definition: karazhan.h:34
CreatureAI * AI() const
Definition: Creature.h:135
static ObjectGuid GetGUID(Object const *o)
Definition: Object.h:106
InstanceScript * GetInstanceScript() const
Definition: Object.cpp:1192
bool IsGameMaster() const
Definition: Player.h:1136
Definition: InstanceScript.h:140
Definition: karazhan.cpp:127

References AddGossipItemFor(), Creature::AI(), CAST_AI, DATA_MOROES, DATA_OPERA_PERFORMANCE, DONE, Object::GetGUID(), WorldObject::GetInstanceScript(), GOSSIP_ACTION_INFO_DEF, GOSSIP_ICON_DOT, GOSSIP_SENDER_MAIN, Player::IsGameMaster(), OZ_GM_GOSSIP1, OZ_GM_GOSSIP2, OZ_GM_GOSSIP3, OZ_GOSSIP1_MID, OZ_GOSSIP1_OID, and SendGossipMenuFor().

◆ OnGossipSelect()

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

Reimplemented from CreatureScript.

336 {
337 ClearGossipMenuFor(player);
338 npc_barnesAI* pBarnesAI = CAST_AI(npc_barnes::npc_barnesAI, creature->AI());
339
340 switch (action)
341 {
344 SendGossipMenuFor(player, 8971, creature->GetGUID());
345 break;
347 CloseGossipMenuFor(player);
348 pBarnesAI->StartEvent();
349 break;
351 CloseGossipMenuFor(player);
352 pBarnesAI->m_uiEventId = EVENT_OZ;
353 break;
355 CloseGossipMenuFor(player);
356 pBarnesAI->m_uiEventId = EVENT_HOOD;
357 break;
359 CloseGossipMenuFor(player);
360 pBarnesAI->m_uiEventId = EVENT_RAJ;
361 break;
362 }
363
364 return true;
365 }
void ClearGossipMenuFor(Player *player)
Definition: ScriptedGossip.cpp:22
void CloseGossipMenuFor(Player *player)
Definition: ScriptedGossip.cpp:56
@ OZ_GOSSIP2_MID
Definition: karazhan.cpp:68
@ OZ_GOSSIP2_OID
Definition: karazhan.cpp:69
@ EVENT_HOOD
Definition: karazhan.h:76
@ EVENT_OZ
Definition: karazhan.h:75
@ EVENT_RAJ
Definition: karazhan.h:77

References AddGossipItemFor(), Creature::AI(), CAST_AI, ClearGossipMenuFor(), CloseGossipMenuFor(), EVENT_HOOD, EVENT_OZ, EVENT_RAJ, Object::GetGUID(), GOSSIP_ACTION_INFO_DEF, GOSSIP_SENDER_MAIN, npc_barnes::npc_barnesAI::m_uiEventId, OZ_GOSSIP2_MID, OZ_GOSSIP2_OID, SendGossipMenuFor(), and npc_barnes::npc_barnesAI::StartEvent().