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

804 {
805 if (player && player->IsAlive())
806 {
807 if (Creature* creature = player->FindNearestCreature(NPC_SCARSHIELD_INFILTRATOR, 100.0f, true))
808 {
809 bool transformHasStarted = creature->AI()->GetData(0) == 1;
810 if ((player->GetLevel() < 57 || !player->HasItemCount(ITEM_UNADORNED_SEAL)) && !transformHasStarted)
811 {
812 // Send whisper if not already sent
813 std::list<ObjectGuid>::iterator itr = std::find(whisperedTargets.begin(), whisperedTargets.end(), player->GetGUID());
814 if (itr == whisperedTargets.end())
815 {
816 creature->AI()->Talk(SAY_SCARSHIELD_INF_WHISPER, player);
817 whisperedTargets.push_back(player->GetGUID());
818 return true;
819 }
820 }
821 }
822 }
823 return false;
824 }
@ 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:62
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:2434
bool HasItemCount(uint32 item, uint32 count=1, bool inBankAlso=false) const
Definition: PlayerStorage.cpp:683
bool IsAlive() const
Definition: Unit.h:1822
uint8 GetLevel() const
Definition: Unit.h:1432
GuidList whisperedTargets
Definition: instance_blackrock_spire.cpp:826

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