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

Public Member Functions

 AreaTrigger_at_area_52_entrance ()
 
bool OnTrigger (Player *player, AreaTrigger const *trigger) 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

std::map< uint32, time_t > _triggerTimes
 

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

◆ AreaTrigger_at_area_52_entrance()

AreaTrigger_at_area_52_entrance::AreaTrigger_at_area_52_entrance ( )
inline
367 : AreaTriggerScript("at_area_52_entrance")
368 {
370 }
@ AT_AREA_52_EAST
Definition areatrigger_scripts.cpp:361
@ AT_AREA_52_WEST
Definition areatrigger_scripts.cpp:360
@ AT_AREA_52_NORTH
Definition areatrigger_scripts.cpp:359
@ AT_AREA_52_SOUTH
Definition areatrigger_scripts.cpp:358
Definition AreaTriggerScript.h:24
std::map< uint32, time_t > _triggerTimes
Definition areatrigger_scripts.cpp:414

References _triggerTimes, AT_AREA_52_EAST, AT_AREA_52_NORTH, AT_AREA_52_SOUTH, and AT_AREA_52_WEST.

Member Function Documentation

◆ OnTrigger()

bool AreaTrigger_at_area_52_entrance::OnTrigger ( Player player,
AreaTrigger const *  trigger 
)
inlineoverridevirtual

Reimplemented from AreaTriggerScript.

373 {
374 float x = 0.0f, y = 0.0f, z = 0.0f;
375
376 if (!player->IsAlive())
377 return false;
378
379 uint32 triggerId = trigger->entry;
380 if (GameTime::GetGameTime().count() - _triggerTimes[trigger->entry] < SUMMON_COOLDOWN)
381 return false;
382
383 switch (triggerId)
384 {
385 case AT_AREA_52_EAST:
386 x = 3044.176f;
387 y = 3610.692f;
388 z = 143.61f;
389 break;
390 case AT_AREA_52_NORTH:
391 x = 3114.87f;
392 y = 3687.619f;
393 z = 143.62f;
394 break;
395 case AT_AREA_52_WEST:
396 x = 3017.79f;
397 y = 3746.806f;
398 z = 144.27f;
399 break;
400 case AT_AREA_52_SOUTH:
401 x = 2950.63f;
402 y = 3719.905f;
403 z = 143.33f;
404 break;
405 }
406
407 player->SummonCreature(NPC_SPOTLIGHT, x, y, z, 0.0f, TEMPSUMMON_TIMED_DESPAWN, 5000);
408 player->AddAura(SPELL_A52_NEURALYZER, player);
409 _triggerTimes[trigger->entry] = GameTime::GetGameTime().count();
410 return false;
411 }
std::uint32_t uint32
Definition Define.h:107
@ TEMPSUMMON_TIMED_DESPAWN
Definition Object.h:49
@ SUMMON_COOLDOWN
Definition areatrigger_scripts.cpp:356
@ NPC_SPOTLIGHT
Definition areatrigger_scripts.cpp:355
@ SPELL_A52_NEURALYZER
Definition areatrigger_scripts.cpp:354
Aura * AddAura(uint32 spellId, Unit *target)
Definition Unit.cpp:18910
bool IsAlive() const
Definition Unit.h:1698
TempSummon * SummonCreature(uint32 id, const Position &pos, TempSummonType spwtype=TEMPSUMMON_MANUAL_DESPAWN, uint32 despwtime=0, uint32 vehId=0, SummonPropertiesEntry const *properties=nullptr, bool visibleBySummonerOnly=false) const
Definition Object.cpp:2368
Seconds GetGameTime()
Definition GameTime.cpp:38

References _triggerTimes, Unit::AddAura(), AT_AREA_52_EAST, AT_AREA_52_NORTH, AT_AREA_52_SOUTH, AT_AREA_52_WEST, AreaTrigger::entry, GameTime::GetGameTime(), Unit::IsAlive(), NPC_SPOTLIGHT, SPELL_A52_NEURALYZER, SUMMON_COOLDOWN, WorldObject::SummonCreature(), and TEMPSUMMON_TIMED_DESPAWN.

Member Data Documentation

◆ _triggerTimes

std::map<uint32, time_t> AreaTrigger_at_area_52_entrance::_triggerTimes
private

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