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

Public Member Functions

 item_only_for_flight ()
 
bool OnUse (Player *player, Item *item, SpellCastTargets const &) override
 
- Public Member Functions inherited from ItemScript
bool IsDatabaseBound () const override
 
virtual bool OnQuestAccept (Player *, Item *, Quest const *)
 
virtual bool OnRemove (Player *, Item *)
 
virtual bool OnCastItemCombatSpell (Player *, Unit *, SpellInfo const *, Item *)
 
virtual bool OnExpire (Player *, ItemTemplate const *)
 
virtual void OnGossipSelect (Player *, Item *, uint32, uint32)
 
virtual void OnGossipSelectCode (Player *, Item *, uint32, uint32, const char *)
 
- Public Member Functions inherited from ScriptObject
virtual bool isAfterLoadScript () const
 
virtual void checkValidity ()
 
const std::string & GetName () const
 
uint16 GetTotalAvailableHooks ()
 

Additional Inherited Members

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

Detailed Description

Constructor & Destructor Documentation

◆ item_only_for_flight()

item_only_for_flight::item_only_for_flight ( )
inline
38: ItemScript("item_only_for_flight") { }
Definition ItemScript.h:24

Member Function Documentation

◆ OnUse()

bool item_only_for_flight::OnUse ( Player player,
Item item,
SpellCastTargets const &   
)
inlineoverridevirtual

Reimplemented from ItemScript.

41 {
42 uint32 itemId = item->GetEntry();
43 bool disabled = false;
44
45 //for special scripts
46 switch (itemId)
47 {
48 case 24538:
49 if (player->GetAreaId() != AREA_HALAA)
50 disabled = true;
51 break;
52 case 34489:
53 if (player->GetZoneId() != AREA_ISLE_OF_QUEL_DANAS)
54 disabled = true;
55 break;
56 case 34475:
57 if (SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(SPELL_ARCANE_CHARGES))
59 break;
60 }
61
62 // allow use in flight only
63 if (player->IsInFlight() && !disabled)
64 return false;
65
66 // error
67 player->SendEquipError(EQUIP_ERR_CANT_DO_RIGHT_NOW, item, nullptr);
68 return true;
69 }
@ AREA_ISLE_OF_QUEL_DANAS
Definition AreaDefines.h:138
@ AREA_HALAA
Definition AreaDefines.h:112
std::uint32_t uint32
Definition Define.h:107
@ EQUIP_ERR_CANT_DO_RIGHT_NOW
Definition Item.h:86
@ SPELL_FAILED_NOT_ON_GROUND
Definition SharedDefines.h:1120
#define sSpellMgr
Definition SpellMgr.h:825
uint32 GetEntry() const
Definition Object.h:116
void SendEquipError(InventoryResult msg, Item *pItem, Item *pItem2=nullptr, uint32 itemid=0)
Definition PlayerStorage.cpp:4021
Definition SpellInfo.h:316
static void SendCastResult(Player *caster, SpellInfo const *spellInfo, uint8 castCount, SpellCastResult result, SpellCustomErrors customError=SPELL_CUSTOM_ERROR_NONE)
Definition Spell.cpp:4696
bool IsInFlight() const
Definition Unit.h:1616
uint32 GetAreaId() const
Definition Object.cpp:3156
uint32 GetZoneId() const
Definition Object.cpp:3148
@ SPELL_ARCANE_CHARGES
Definition item_scripts.cpp:32

References AREA_HALAA, AREA_ISLE_OF_QUEL_DANAS, EQUIP_ERR_CANT_DO_RIGHT_NOW, WorldObject::GetAreaId(), Object::GetEntry(), WorldObject::GetZoneId(), Unit::IsInFlight(), Spell::SendCastResult(), Player::SendEquipError(), SPELL_ARCANE_CHARGES, SPELL_FAILED_NOT_ON_GROUND, and sSpellMgr.


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