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
 
virtual bool OnTrigger (Player *, AreaTrigger const *)
 
- Public Member Functions inherited from ScriptObject
virtual bool IsDatabaseBound () const
 
virtual bool isAfterLoadScript () const
 
virtual void checkValidity ()
 
const std::string & GetName () const
 

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)
 
virtual ~ScriptObject ()=default
 

Detailed Description

Constructor & Destructor Documentation

◆ near_scarshield_infiltrator()

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

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
@ SAY_SCARSHIELD_INF_WHISPER
Definition: instance_blackrock_spire.cpp:58
Definition: Creature.h:46
static ObjectGuid GetGUID(Object const *o)
Definition: Object.h:106
Creature * FindNearestCreature(uint32 entry, float range, bool alive=true) const
Definition: Object.cpp:2409
bool HasItemCount(uint32 item, uint32 count=1, bool inBankAlso=false) const
Definition: PlayerStorage.cpp:686
bool IsAlive() const
Definition: Unit.h:1808
uint8 GetLevel() const
Definition: Unit.h:1420
GuidList whisperedTargets
Definition: instance_blackrock_spire.cpp:822

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().