AzerothCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
near_scarshield_infiltrator Class Reference
Inheritance diagram for near_scarshield_infiltrator:
AreaTriggerScript ScriptObject

Public Member Functions

 near_scarshield_infiltrator ()
 
bool OnTrigger (Player *player, const AreaTrigger *) override
 
- Public Member Functions inherited from AreaTriggerScript
bool IsDatabaseBound () const override
 
- Public Member Functions inherited from ScriptObject
virtual bool isAfterLoadScript () const
 
virtual void checkValidity ()
 
const std::string & GetName () const
 
uint16 GetTotalAvailableHooks ()
 

Private Attributes

GuidList whisperedTargets
 

Additional Inherited Members

- Protected Member Functions inherited from AreaTriggerScript
 AreaTriggerScript (const char *name)
 
- Protected Member Functions inherited from ScriptObject
 ScriptObject (const char *name, uint16 totalAvailableHooks=0)
 
virtual ~ScriptObject ()=default
 

Detailed Description

Constructor & Destructor Documentation

◆ near_scarshield_infiltrator()

near_scarshield_infiltrator::near_scarshield_infiltrator ( )
inline
797: AreaTriggerScript("near_scarshield_infiltrator") { }
Definition AreaTriggerScript.h:24

Member Function Documentation

◆ OnTrigger()

bool near_scarshield_infiltrator::OnTrigger ( Player player,
const AreaTrigger  
)
inlineoverridevirtual

Reimplemented from AreaTriggerScript.

800 {
801 if (player && player->IsAlive())
802 {
803 if (Creature* creature = player->FindNearestCreature(NPC_SCARSHIELD_INFILTRATOR, 100.0f, true))
804 {
805 bool transformHasStarted = creature->AI()->GetData(0) == 1;
806 if ((player->GetLevel() < 57 || !player->HasItemCount(ITEM_UNADORNED_SEAL)) && !transformHasStarted)
807 {
808 // Send whisper if not already sent
809 std::list<ObjectGuid>::iterator itr = std::find(whisperedTargets.begin(), whisperedTargets.end(), player->GetGUID());
810 if (itr == whisperedTargets.end())
811 {
812 creature->AI()->Talk(SAY_SCARSHIELD_INF_WHISPER, player);
813 whisperedTargets.push_back(player->GetGUID());
814 return true;
815 }
816 }
817 }
818 }
819 return false;
820 }
@ NPC_SCARSHIELD_INFILTRATOR
Definition blackrock_spire.h:84
@ ITEM_UNADORNED_SEAL
Definition blackrock_spire.h:106
Definition Creature.h:47
static ObjectGuid GetGUID(Object const *o)
Definition Object.h:113
bool HasItemCount(uint32 item, uint32 count=1, bool inBankAlso=false) const
Definition PlayerStorage.cpp:656
bool IsAlive() const
Definition Unit.h:1748
uint8 GetLevel() const
Definition Unit.h:1065
Creature * FindNearestCreature(uint32 entry, float range, bool alive=true) const
Definition Object.cpp:2450
GuidList whisperedTargets
Definition instance_blackrock_spire.cpp:822
@ SAY_SCARSHIELD_INF_WHISPER
Definition instance_blackrock_spire.cpp:57

References WorldObject::FindNearestCreature(), Object::GetGUID(), Unit::GetLevel(), Player::HasItemCount(), Unit::IsAlive(), ITEM_UNADORNED_SEAL, NPC_SCARSHIELD_INFILTRATOR, SAY_SCARSHIELD_INF_WHISPER, and whisperedTargets.

Member Data Documentation

◆ whisperedTargets

GuidList near_scarshield_infiltrator::whisperedTargets
private

Referenced by OnTrigger().


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