AzeorthCore 3.3.5a
OpenSource WoW Emulator
Loading...
Searching...
No Matches
SpellScript.h File Reference
#include "SharedDefines.h"
#include "Spell.h"
#include "SpellAuraDefines.h"
#include "Util.h"
#include <stack>

Go to the source code of this file.

Classes

class  _SpellScript
 
class  _SpellScript::EffectHook
 
class  _SpellScript::EffectNameCheck
 
class  _SpellScript::EffectAuraNameCheck
 
class  SpellScript
 
class  SpellScript::CastHandler
 
class  SpellScript::CheckCastHandler
 
class  SpellScript::EffectHandler
 
class  SpellScript::BeforeHitHandler
 
class  SpellScript::HitHandler
 
class  SpellScript::TargetHook
 
class  SpellScript::ObjectAreaTargetSelectHandler
 
class  SpellScript::ObjectTargetSelectHandler
 
class  SpellScript::DestinationTargetSelectHandler
 
class  AuraScript
 
class  AuraScript::CheckAreaTargetHandler
 
class  AuraScript::AuraDispelHandler
 
class  AuraScript::EffectBase
 
class  AuraScript::EffectPeriodicHandler
 
class  AuraScript::EffectUpdatePeriodicHandler
 
class  AuraScript::EffectCalcAmountHandler
 
class  AuraScript::EffectCalcPeriodicHandler
 
class  AuraScript::EffectCalcSpellModHandler
 
class  AuraScript::EffectApplyHandler
 
class  AuraScript::EffectAbsorbHandler
 
class  AuraScript::EffectManaShieldHandler
 
class  AuraScript::EffectSplitHandler
 
class  AuraScript::CheckProcHandler
 
class  AuraScript::AfterCheckProcHandler
 
class  AuraScript::AuraProcHandler
 
class  AuraScript::EffectProcHandler
 
class  AuraScript::ScriptStateStore
 

Macros

#define SPELL_EFFECT_ANY   (uint16)-1
 
#define SPELL_AURA_ANY   (uint16)-1
 
#define SPELL_SCRIPT_STATE_END   SPELL_SCRIPT_STATE_UNLOADING + 1
 
#define HOOK_SPELL_HIT_START   SPELL_SCRIPT_HOOK_EFFECT_HIT
 
#define HOOK_SPELL_HIT_END   SPELL_SCRIPT_HOOK_AFTER_HIT + 1
 
#define HOOK_SPELL_START   SPELL_SCRIPT_HOOK_EFFECT
 
#define HOOK_SPELL_END   SPELL_SCRIPT_HOOK_CHECK_CAST + 1
 
#define HOOK_SPELL_COUNT   HOOK_SPELL_END - HOOK_SPELL_START
 
#define SPELLSCRIPT_FUNCTION_TYPE_DEFINES(CLASSNAME)
 
#define SPELLSCRIPT_FUNCTION_CAST_DEFINES(CLASSNAME)
 
#define PrepareSpellScript(CLASSNAME)   SPELLSCRIPT_FUNCTION_TYPE_DEFINES(CLASSNAME) SPELLSCRIPT_FUNCTION_CAST_DEFINES(CLASSNAME)
 
#define SpellCastFn(F)   CastHandlerFunction(&F)
 
#define SpellCheckCastFn(F)   CheckCastHandlerFunction(&F)
 
#define SpellEffectFn(F, I, N)   EffectHandlerFunction(&F, I, N)
 
#define BeforeSpellHitFn(F)   BeforeHitHandlerFunction(&F)
 
#define SpellHitFn(F)   HitHandlerFunction(&F)
 
#define SpellObjectAreaTargetSelectFn(F, I, N)   ObjectAreaTargetSelectHandlerFunction(&F, I, N)
 
#define SpellObjectTargetSelectFn(F, I, N)   ObjectTargetSelectHandlerFunction(&F, I, N)
 
#define SpellDestinationTargetSelectFn(F, I, N)   DestinationTargetSelectHandlerFunction(&F, I, N)
 
#define AURASCRIPT_FUNCTION_TYPE_DEFINES(CLASSNAME)
 
#define AURASCRIPT_FUNCTION_CAST_DEFINES(CLASSNAME)
 
#define PrepareAuraScript(CLASSNAME)   AURASCRIPT_FUNCTION_TYPE_DEFINES(CLASSNAME) AURASCRIPT_FUNCTION_CAST_DEFINES(CLASSNAME)
 
#define AuraCheckAreaTargetFn(F)   CheckAreaTargetFunction(&F)
 
#define AuraDispelFn(F)   AuraDispelFunction(&F)
 
#define AuraEffectApplyFn(F, I, N, M)   EffectApplyHandlerFunction(&F, I, N, M)
 
#define AuraEffectRemoveFn(F, I, N, M)   EffectApplyHandlerFunction(&F, I, N, M)
 
#define AuraEffectPeriodicFn(F, I, N)   EffectPeriodicHandlerFunction(&F, I, N)
 
#define AuraEffectUpdatePeriodicFn(F, I, N)   EffectUpdatePeriodicHandlerFunction(&F, I, N)
 
#define AuraEffectCalcAmountFn(F, I, N)   EffectCalcAmountHandlerFunction(&F, I, N)
 
#define AuraEffectCalcPeriodicFn(F, I, N)   EffectCalcPeriodicHandlerFunction(&F, I, N)
 
#define AuraEffectCalcSpellModFn(F, I, N)   EffectCalcSpellModHandlerFunction(&F, I, N)
 
#define AuraEffectAbsorbFn(F, I)   EffectAbsorbFunction(&F, I)
 
#define AuraEffectManaShieldFn(F, I)   EffectManaShieldFunction(&F, I)
 
#define AuraEffectSplitFn(F, I)   EffectSplitFunction(&F, I)
 
#define AuraCheckProcFn(F)   CheckProcHandlerFunction(&F)
 
#define AuraAfterCheckProcFn(F)   AfterCheckProcHandlerFunction(&F)
 
#define AuraProcFn(F)   AuraProcHandlerFunction(&F)
 
#define AuraEffectProcFn(F, I, N)   EffectProcHandlerFunction(&F, I, N)
 

Enumerations

enum  SpellScriptState {
  SPELL_SCRIPT_STATE_NONE = 0 ,
  SPELL_SCRIPT_STATE_REGISTRATION ,
  SPELL_SCRIPT_STATE_LOADING ,
  SPELL_SCRIPT_STATE_UNLOADING
}
 
enum  SpellScriptHookType {
  SPELL_SCRIPT_HOOK_EFFECT_LAUNCH = SPELL_SCRIPT_STATE_END ,
  SPELL_SCRIPT_HOOK_EFFECT_LAUNCH_TARGET ,
  SPELL_SCRIPT_HOOK_EFFECT_HIT ,
  SPELL_SCRIPT_HOOK_EFFECT_HIT_TARGET ,
  SPELL_SCRIPT_HOOK_BEFORE_HIT ,
  SPELL_SCRIPT_HOOK_HIT ,
  SPELL_SCRIPT_HOOK_AFTER_HIT ,
  SPELL_SCRIPT_HOOK_OBJECT_AREA_TARGET_SELECT ,
  SPELL_SCRIPT_HOOK_OBJECT_TARGET_SELECT ,
  SPELL_SCRIPT_HOOK_DESTINATION_TARGET_SELECT ,
  SPELL_SCRIPT_HOOK_CHECK_CAST ,
  SPELL_SCRIPT_HOOK_BEFORE_CAST ,
  SPELL_SCRIPT_HOOK_ON_CAST ,
  SPELL_SCRIPT_HOOK_AFTER_CAST
}
 
enum  AuraScriptHookType {
  AURA_SCRIPT_HOOK_EFFECT_APPLY = SPELL_SCRIPT_STATE_END ,
  AURA_SCRIPT_HOOK_EFFECT_AFTER_APPLY ,
  AURA_SCRIPT_HOOK_EFFECT_REMOVE ,
  AURA_SCRIPT_HOOK_EFFECT_AFTER_REMOVE ,
  AURA_SCRIPT_HOOK_EFFECT_PERIODIC ,
  AURA_SCRIPT_HOOK_EFFECT_UPDATE_PERIODIC ,
  AURA_SCRIPT_HOOK_EFFECT_CALC_AMOUNT ,
  AURA_SCRIPT_HOOK_EFFECT_CALC_PERIODIC ,
  AURA_SCRIPT_HOOK_EFFECT_CALC_SPELLMOD ,
  AURA_SCRIPT_HOOK_EFFECT_ABSORB ,
  AURA_SCRIPT_HOOK_EFFECT_AFTER_ABSORB ,
  AURA_SCRIPT_HOOK_EFFECT_MANASHIELD ,
  AURA_SCRIPT_HOOK_EFFECT_AFTER_MANASHIELD ,
  AURA_SCRIPT_HOOK_EFFECT_SPLIT ,
  AURA_SCRIPT_HOOK_CHECK_AREA_TARGET ,
  AURA_SCRIPT_HOOK_DISPEL ,
  AURA_SCRIPT_HOOK_AFTER_DISPEL ,
  AURA_SCRIPT_HOOK_CHECK_PROC ,
  AURA_SCRIPT_HOOK_AFTER_CHECK_PROC ,
  AURA_SCRIPT_HOOK_PREPARE_PROC ,
  AURA_SCRIPT_HOOK_PROC ,
  AURA_SCRIPT_HOOK_EFFECT_PROC ,
  AURA_SCRIPT_HOOK_EFFECT_AFTER_PROC ,
  AURA_SCRIPT_HOOK_AFTER_PROC
}
 

Macro Definition Documentation

◆ AuraAfterCheckProcFn

#define AuraAfterCheckProcFn (   F)    AfterCheckProcHandlerFunction(&F)

◆ AuraCheckAreaTargetFn

#define AuraCheckAreaTargetFn (   F)    CheckAreaTargetFunction(&F)

◆ AuraCheckProcFn

#define AuraCheckProcFn (   F)    CheckProcHandlerFunction(&F)

◆ AuraDispelFn

#define AuraDispelFn (   F)    AuraDispelFunction(&F)

◆ AuraEffectAbsorbFn

#define AuraEffectAbsorbFn (   F,
 
)    EffectAbsorbFunction(&F, I)

◆ AuraEffectApplyFn

#define AuraEffectApplyFn (   F,
  I,
  N,
 
)    EffectApplyHandlerFunction(&F, I, N, M)

◆ AuraEffectCalcAmountFn

#define AuraEffectCalcAmountFn (   F,
  I,
 
)    EffectCalcAmountHandlerFunction(&F, I, N)

◆ AuraEffectCalcPeriodicFn

#define AuraEffectCalcPeriodicFn (   F,
  I,
 
)    EffectCalcPeriodicHandlerFunction(&F, I, N)

◆ AuraEffectCalcSpellModFn

#define AuraEffectCalcSpellModFn (   F,
  I,
 
)    EffectCalcSpellModHandlerFunction(&F, I, N)

◆ AuraEffectManaShieldFn

#define AuraEffectManaShieldFn (   F,
 
)    EffectManaShieldFunction(&F, I)

◆ AuraEffectPeriodicFn

#define AuraEffectPeriodicFn (   F,
  I,
 
)    EffectPeriodicHandlerFunction(&F, I, N)

◆ AuraEffectProcFn

#define AuraEffectProcFn (   F,
  I,
 
)    EffectProcHandlerFunction(&F, I, N)

◆ AuraEffectRemoveFn

#define AuraEffectRemoveFn (   F,
  I,
  N,
 
)    EffectApplyHandlerFunction(&F, I, N, M)

◆ AuraEffectSplitFn

#define AuraEffectSplitFn (   F,
 
)    EffectSplitFunction(&F, I)

◆ AuraEffectUpdatePeriodicFn

#define AuraEffectUpdatePeriodicFn (   F,
  I,
 
)    EffectUpdatePeriodicHandlerFunction(&F, I, N)

◆ AuraProcFn

#define AuraProcFn (   F)    AuraProcHandlerFunction(&F)

◆ AURASCRIPT_FUNCTION_CAST_DEFINES

#define AURASCRIPT_FUNCTION_CAST_DEFINES (   CLASSNAME)
Value:
class CheckAreaTargetFunction : public AuraScript::CheckAreaTargetHandler { public: CheckAreaTargetFunction(AuraCheckAreaTargetFnType _pHandlerScript) : AuraScript::CheckAreaTargetHandler((AuraScript::AuraCheckAreaTargetFnType)_pHandlerScript) {} }; \
class AuraDispelFunction : public AuraScript::AuraDispelHandler { public: AuraDispelFunction(AuraDispelFnType _pHandlerScript) : AuraScript::AuraDispelHandler((AuraScript::AuraDispelFnType)_pHandlerScript) {} }; \
class EffectPeriodicHandlerFunction : public AuraScript::EffectPeriodicHandler { public: EffectPeriodicHandlerFunction(AuraEffectPeriodicFnType _pEffectHandlerScript, uint8 _effIndex, uint16 _effName) : AuraScript::EffectPeriodicHandler((AuraScript::AuraEffectPeriodicFnType)_pEffectHandlerScript, _effIndex, _effName) {} }; \
class EffectUpdatePeriodicHandlerFunction : public AuraScript::EffectUpdatePeriodicHandler { public: EffectUpdatePeriodicHandlerFunction(AuraEffectUpdatePeriodicFnType _pEffectHandlerScript, uint8 _effIndex, uint16 _effName) : AuraScript::EffectUpdatePeriodicHandler((AuraScript::AuraEffectUpdatePeriodicFnType)_pEffectHandlerScript, _effIndex, _effName) {} }; \
class EffectCalcAmountHandlerFunction : public AuraScript::EffectCalcAmountHandler { public: EffectCalcAmountHandlerFunction(AuraEffectCalcAmountFnType _pEffectHandlerScript, uint8 _effIndex, uint16 _effName) : AuraScript::EffectCalcAmountHandler((AuraScript::AuraEffectCalcAmountFnType)_pEffectHandlerScript, _effIndex, _effName) {} }; \
class EffectCalcPeriodicHandlerFunction : public AuraScript::EffectCalcPeriodicHandler { public: EffectCalcPeriodicHandlerFunction(AuraEffectCalcPeriodicFnType _pEffectHandlerScript, uint8 _effIndex, uint16 _effName) : AuraScript::EffectCalcPeriodicHandler((AuraScript::AuraEffectCalcPeriodicFnType)_pEffectHandlerScript, _effIndex, _effName) {} }; \
class EffectCalcSpellModHandlerFunction : public AuraScript::EffectCalcSpellModHandler { public: EffectCalcSpellModHandlerFunction(AuraEffectCalcSpellModFnType _pEffectHandlerScript, uint8 _effIndex, uint16 _effName) : AuraScript::EffectCalcSpellModHandler((AuraScript::AuraEffectCalcSpellModFnType)_pEffectHandlerScript, _effIndex, _effName) {} }; \
class EffectApplyHandlerFunction : public AuraScript::EffectApplyHandler { public: EffectApplyHandlerFunction(AuraEffectApplicationModeFnType _pEffectHandlerScript, uint8 _effIndex, uint16 _effName, AuraEffectHandleModes _mode) : AuraScript::EffectApplyHandler((AuraScript::AuraEffectApplicationModeFnType)_pEffectHandlerScript, _effIndex, _effName, _mode) {} }; \
class EffectAbsorbFunction : public AuraScript::EffectAbsorbHandler { public: EffectAbsorbFunction(AuraEffectAbsorbFnType _pEffectHandlerScript, uint8 _effIndex) : AuraScript::EffectAbsorbHandler((AuraScript::AuraEffectAbsorbFnType)_pEffectHandlerScript, _effIndex) {} }; \
class EffectManaShieldFunction : public AuraScript::EffectManaShieldHandler { public: EffectManaShieldFunction(AuraEffectAbsorbFnType _pEffectHandlerScript, uint8 _effIndex) : AuraScript::EffectManaShieldHandler((AuraScript::AuraEffectAbsorbFnType)_pEffectHandlerScript, _effIndex) {} }; \
class EffectSplitFunction : public AuraScript::EffectSplitHandler { public: EffectSplitFunction(AuraEffectSplitFnType _pEffectHandlerScript, uint8 _effIndex) : AuraScript::EffectSplitHandler((AuraScript::AuraEffectSplitFnType)_pEffectHandlerScript, _effIndex) {} }; \
class CheckProcHandlerFunction : public AuraScript::CheckProcHandler { public: CheckProcHandlerFunction(AuraCheckProcFnType handlerScript) : AuraScript::CheckProcHandler((AuraScript::AuraCheckProcFnType)handlerScript) {} }; \
class AfterCheckProcHandlerFunction : public AuraScript::AfterCheckProcHandler { public: AfterCheckProcHandlerFunction(AuraAfterCheckProcFnType handlerScript) : AuraScript::AfterCheckProcHandler((AuraScript::AuraAfterCheckProcFnType)handlerScript) {} }; \
class AuraProcHandlerFunction : public AuraScript::AuraProcHandler { public: AuraProcHandlerFunction(AuraProcFnType handlerScript) : AuraScript::AuraProcHandler((AuraScript::AuraProcFnType)handlerScript) {} }; \
class EffectProcHandlerFunction : public AuraScript::EffectProcHandler { public: EffectProcHandlerFunction(AuraEffectProcFnType effectHandlerScript, uint8 effIndex, uint16 effName) : AuraScript::EffectProcHandler((AuraScript::AuraEffectProcFnType)effectHandlerScript, effIndex, effName) {} }; \
std::uint8_t uint8
Definition: Define.h:110
std::uint16_t uint16
Definition: Define.h:109
AuraEffectHandleModes
Definition: SpellAuraDefines.h:40
Definition: SpellScript.h:517
Definition: SpellScript.h:540
Definition: SpellScript.h:548
Definition: SpellScript.h:563
Definition: SpellScript.h:571
Definition: SpellScript.h:579
Definition: SpellScript.h:587
Definition: SpellScript.h:595
Definition: SpellScript.h:603
Definition: SpellScript.h:612
Definition: SpellScript.h:620
Definition: SpellScript.h:628
Definition: SpellScript.h:636
Definition: SpellScript.h:644
Definition: SpellScript.h:652
Definition: SpellScript.h:660

◆ AURASCRIPT_FUNCTION_TYPE_DEFINES

#define AURASCRIPT_FUNCTION_TYPE_DEFINES (   CLASSNAME)
Value:
typedef bool(CLASSNAME::*AuraCheckAreaTargetFnType)(Unit* target); \
typedef void(CLASSNAME::*AuraDispelFnType)(DispelInfo* dispelInfo); \
typedef void(CLASSNAME::*AuraEffectApplicationModeFnType)(AuraEffect const*, AuraEffectHandleModes); \
typedef void(CLASSNAME::*AuraEffectPeriodicFnType)(AuraEffect const*); \
typedef void(CLASSNAME::*AuraEffectUpdatePeriodicFnType)(AuraEffect*); \
typedef void(CLASSNAME::*AuraEffectCalcAmountFnType)(AuraEffect const*, int32 &, bool &); \
typedef void(CLASSNAME::*AuraEffectCalcPeriodicFnType)(AuraEffect const*, bool &, int32 &); \
typedef void(CLASSNAME::*AuraEffectCalcSpellModFnType)(AuraEffect const*, SpellModifier* &); \
typedef void(CLASSNAME::*AuraEffectAbsorbFnType)(AuraEffect*, DamageInfo &, uint32 &); \
typedef void(CLASSNAME::*AuraEffectSplitFnType)(AuraEffect*, DamageInfo &, uint32 &); \
typedef bool(CLASSNAME::*AuraCheckProcFnType)(ProcEventInfo&); \
typedef bool(CLASSNAME::*AuraAfterCheckProcFnType)(ProcEventInfo&, bool); \
typedef void(CLASSNAME::*AuraProcFnType)(ProcEventInfo&); \
typedef void(CLASSNAME::*AuraEffectProcFnType)(AuraEffect const*, ProcEventInfo&); \
std::int32_t int32
Definition: Define.h:104
std::uint32_t uint32
Definition: Define.h:108
Definition: Player.h:182
Definition: Unit.h:727
Definition: Unit.h:761
Definition: Unit.h:839
Definition: Unit.h:1290
Definition: SpellAuraEffects.h:39

◆ BeforeSpellHitFn

#define BeforeSpellHitFn (   F)    BeforeHitHandlerFunction(&F)

◆ HOOK_SPELL_COUNT

#define HOOK_SPELL_COUNT   HOOK_SPELL_END - HOOK_SPELL_START

◆ HOOK_SPELL_END

#define HOOK_SPELL_END   SPELL_SCRIPT_HOOK_CHECK_CAST + 1

◆ HOOK_SPELL_HIT_END

#define HOOK_SPELL_HIT_END   SPELL_SCRIPT_HOOK_AFTER_HIT + 1

◆ HOOK_SPELL_HIT_START

#define HOOK_SPELL_HIT_START   SPELL_SCRIPT_HOOK_EFFECT_HIT

◆ HOOK_SPELL_START

#define HOOK_SPELL_START   SPELL_SCRIPT_HOOK_EFFECT

◆ PrepareAuraScript

#define PrepareAuraScript (   CLASSNAME)    AURASCRIPT_FUNCTION_TYPE_DEFINES(CLASSNAME) AURASCRIPT_FUNCTION_CAST_DEFINES(CLASSNAME)

◆ PrepareSpellScript

#define PrepareSpellScript (   CLASSNAME)    SPELLSCRIPT_FUNCTION_TYPE_DEFINES(CLASSNAME) SPELLSCRIPT_FUNCTION_CAST_DEFINES(CLASSNAME)

◆ SPELL_AURA_ANY

#define SPELL_AURA_ANY   (uint16)-1

◆ SPELL_EFFECT_ANY

#define SPELL_EFFECT_ANY   (uint16)-1

◆ SPELL_SCRIPT_STATE_END

#define SPELL_SCRIPT_STATE_END   SPELL_SCRIPT_STATE_UNLOADING + 1

◆ SpellCastFn

#define SpellCastFn (   F)    CastHandlerFunction(&F)

◆ SpellCheckCastFn

#define SpellCheckCastFn (   F)    CheckCastHandlerFunction(&F)

◆ SpellDestinationTargetSelectFn

#define SpellDestinationTargetSelectFn (   F,
  I,
 
)    DestinationTargetSelectHandlerFunction(&F, I, N)

◆ SpellEffectFn

#define SpellEffectFn (   F,
  I,
 
)    EffectHandlerFunction(&F, I, N)

◆ SpellHitFn

#define SpellHitFn (   F)    HitHandlerFunction(&F)

◆ SpellObjectAreaTargetSelectFn

#define SpellObjectAreaTargetSelectFn (   F,
  I,
 
)    ObjectAreaTargetSelectHandlerFunction(&F, I, N)

◆ SpellObjectTargetSelectFn

#define SpellObjectTargetSelectFn (   F,
  I,
 
)    ObjectTargetSelectHandlerFunction(&F, I, N)

◆ SPELLSCRIPT_FUNCTION_CAST_DEFINES

#define SPELLSCRIPT_FUNCTION_CAST_DEFINES (   CLASSNAME)
Value:
class CastHandlerFunction : public SpellScript::CastHandler { public: CastHandlerFunction(SpellCastFnType _pCastHandlerScript) : SpellScript::CastHandler((SpellScript::SpellCastFnType)_pCastHandlerScript) {} }; \
class CheckCastHandlerFunction : public SpellScript::CheckCastHandler { public: CheckCastHandlerFunction(SpellCheckCastFnType _checkCastHandlerScript) : SpellScript::CheckCastHandler((SpellScript::SpellCheckCastFnType)_checkCastHandlerScript) {} }; \
class EffectHandlerFunction : public SpellScript::EffectHandler { public: EffectHandlerFunction(SpellEffectFnType _pEffectHandlerScript, uint8 _effIndex, uint16 _effName) : SpellScript::EffectHandler((SpellScript::SpellEffectFnType)_pEffectHandlerScript, _effIndex, _effName) {} }; \
class BeforeHitHandlerFunction : public SpellScript::BeforeHitHandler { public: explicit BeforeHitHandlerFunction(SpellBeforeHitFnType pBeforeHitHandlerScript) : SpellScript::BeforeHitHandler((SpellScript::SpellBeforeHitFnType)pBeforeHitHandlerScript) {} }; \
class HitHandlerFunction : public SpellScript::HitHandler { public: HitHandlerFunction(SpellHitFnType _pHitHandlerScript) : SpellScript::HitHandler((SpellScript::SpellHitFnType)_pHitHandlerScript) {} }; \
class ObjectAreaTargetSelectHandlerFunction : public SpellScript::ObjectAreaTargetSelectHandler { public: ObjectAreaTargetSelectHandlerFunction(SpellObjectAreaTargetSelectFnType _pObjectAreaTargetSelectHandlerScript, uint8 _effIndex, uint16 _targetType) : SpellScript::ObjectAreaTargetSelectHandler((SpellScript::SpellObjectAreaTargetSelectFnType)_pObjectAreaTargetSelectHandlerScript, _effIndex, _targetType) {} }; \
class ObjectTargetSelectHandlerFunction : public SpellScript::ObjectTargetSelectHandler { public: ObjectTargetSelectHandlerFunction(SpellObjectTargetSelectFnType _pObjectTargetSelectHandlerScript, uint8 _effIndex, uint16 _targetType) : SpellScript::ObjectTargetSelectHandler((SpellScript::SpellObjectTargetSelectFnType)_pObjectTargetSelectHandlerScript, _effIndex, _targetType) { } }; \
class DestinationTargetSelectHandlerFunction : public SpellScript::DestinationTargetSelectHandler { public: DestinationTargetSelectHandlerFunction(SpellDestinationTargetSelectFnType _DestinationTargetSelectHandlerScript, uint8 _effIndex, uint16 _targetType) : SpellScript::DestinationTargetSelectHandler((SpellScript::SpellDestinationTargetSelectFnType)_DestinationTargetSelectHandlerScript, _effIndex, _targetType) { } };
Definition: SpellScript.h:182
Definition: SpellScript.h:199
Definition: SpellScript.h:208
Definition: SpellScript.h:217
Definition: SpellScript.h:228
Definition: SpellScript.h:238
Definition: SpellScript.h:260
Definition: SpellScript.h:269
Definition: SpellScript.h:278

◆ SPELLSCRIPT_FUNCTION_TYPE_DEFINES

#define SPELLSCRIPT_FUNCTION_TYPE_DEFINES (   CLASSNAME)
Value:
typedef SpellCastResult(CLASSNAME::*SpellCheckCastFnType)(); \
typedef void(CLASSNAME::*SpellEffectFnType)(SpellEffIndex); \
typedef void(CLASSNAME::*SpellBeforeHitFnType)(SpellMissInfo missInfo); \
typedef void(CLASSNAME::*SpellHitFnType)(); \
typedef void(CLASSNAME::*SpellCastFnType)(); \
typedef void(CLASSNAME::*SpellObjectAreaTargetSelectFnType)(std::list<WorldObject*>&); \
typedef void(CLASSNAME::*SpellObjectTargetSelectFnType)(WorldObject*&); \
typedef void(CLASSNAME::*SpellDestinationTargetSelectFnType)(SpellDestination&);
SpellEffIndex
Definition: SharedDefines.h:29
SpellMissInfo
Definition: SharedDefines.h:1490
SpellCastResult
Definition: SharedDefines.h:920
Definition: Object.h:393
Definition: Spell.h:94

Enumeration Type Documentation

◆ AuraScriptHookType

Enumerator
AURA_SCRIPT_HOOK_EFFECT_APPLY 
AURA_SCRIPT_HOOK_EFFECT_AFTER_APPLY 
AURA_SCRIPT_HOOK_EFFECT_REMOVE 
AURA_SCRIPT_HOOK_EFFECT_AFTER_REMOVE 
AURA_SCRIPT_HOOK_EFFECT_PERIODIC 
AURA_SCRIPT_HOOK_EFFECT_UPDATE_PERIODIC 
AURA_SCRIPT_HOOK_EFFECT_CALC_AMOUNT 
AURA_SCRIPT_HOOK_EFFECT_CALC_PERIODIC 
AURA_SCRIPT_HOOK_EFFECT_CALC_SPELLMOD 
AURA_SCRIPT_HOOK_EFFECT_ABSORB 
AURA_SCRIPT_HOOK_EFFECT_AFTER_ABSORB 
AURA_SCRIPT_HOOK_EFFECT_MANASHIELD 
AURA_SCRIPT_HOOK_EFFECT_AFTER_MANASHIELD 
AURA_SCRIPT_HOOK_EFFECT_SPLIT 
AURA_SCRIPT_HOOK_CHECK_AREA_TARGET 
AURA_SCRIPT_HOOK_DISPEL 
AURA_SCRIPT_HOOK_AFTER_DISPEL 
AURA_SCRIPT_HOOK_CHECK_PROC 
AURA_SCRIPT_HOOK_AFTER_CHECK_PROC 
AURA_SCRIPT_HOOK_PREPARE_PROC 
AURA_SCRIPT_HOOK_PROC 
AURA_SCRIPT_HOOK_EFFECT_PROC 
AURA_SCRIPT_HOOK_EFFECT_AFTER_PROC 
AURA_SCRIPT_HOOK_AFTER_PROC 
482{
500 // Spell Proc Hooks
508 /*AURA_SCRIPT_HOOK_APPLY,
509 AURA_SCRIPT_HOOK_REMOVE, */
510};
@ AURA_SCRIPT_HOOK_EFFECT_CALC_PERIODIC
Definition: SpellScript.h:490
@ AURA_SCRIPT_HOOK_EFFECT_CALC_AMOUNT
Definition: SpellScript.h:489
@ AURA_SCRIPT_HOOK_EFFECT_REMOVE
Definition: SpellScript.h:485
@ AURA_SCRIPT_HOOK_EFFECT_AFTER_MANASHIELD
Definition: SpellScript.h:495
@ AURA_SCRIPT_HOOK_PREPARE_PROC
Definition: SpellScript.h:503
@ AURA_SCRIPT_HOOK_EFFECT_AFTER_APPLY
Definition: SpellScript.h:484
@ AURA_SCRIPT_HOOK_EFFECT_AFTER_REMOVE
Definition: SpellScript.h:486
@ AURA_SCRIPT_HOOK_AFTER_PROC
Definition: SpellScript.h:507
@ AURA_SCRIPT_HOOK_CHECK_AREA_TARGET
Definition: SpellScript.h:497
@ AURA_SCRIPT_HOOK_EFFECT_MANASHIELD
Definition: SpellScript.h:494
@ AURA_SCRIPT_HOOK_PROC
Definition: SpellScript.h:504
@ AURA_SCRIPT_HOOK_EFFECT_AFTER_ABSORB
Definition: SpellScript.h:493
@ AURA_SCRIPT_HOOK_DISPEL
Definition: SpellScript.h:498
@ AURA_SCRIPT_HOOK_EFFECT_APPLY
Definition: SpellScript.h:483
@ AURA_SCRIPT_HOOK_EFFECT_PERIODIC
Definition: SpellScript.h:487
@ AURA_SCRIPT_HOOK_EFFECT_AFTER_PROC
Definition: SpellScript.h:506
@ AURA_SCRIPT_HOOK_EFFECT_ABSORB
Definition: SpellScript.h:492
@ AURA_SCRIPT_HOOK_EFFECT_PROC
Definition: SpellScript.h:505
@ AURA_SCRIPT_HOOK_EFFECT_SPLIT
Definition: SpellScript.h:496
@ AURA_SCRIPT_HOOK_AFTER_CHECK_PROC
Definition: SpellScript.h:502
@ AURA_SCRIPT_HOOK_EFFECT_CALC_SPELLMOD
Definition: SpellScript.h:491
@ AURA_SCRIPT_HOOK_AFTER_DISPEL
Definition: SpellScript.h:499
@ AURA_SCRIPT_HOOK_CHECK_PROC
Definition: SpellScript.h:501
@ AURA_SCRIPT_HOOK_EFFECT_UPDATE_PERIODIC
Definition: SpellScript.h:488
#define SPELL_SCRIPT_STATE_END
Definition: SpellScript.h:52

◆ SpellScriptHookType

Enumerator
SPELL_SCRIPT_HOOK_EFFECT_LAUNCH 
SPELL_SCRIPT_HOOK_EFFECT_LAUNCH_TARGET 
SPELL_SCRIPT_HOOK_EFFECT_HIT 
SPELL_SCRIPT_HOOK_EFFECT_HIT_TARGET 
SPELL_SCRIPT_HOOK_BEFORE_HIT 
SPELL_SCRIPT_HOOK_HIT 
SPELL_SCRIPT_HOOK_AFTER_HIT 
SPELL_SCRIPT_HOOK_OBJECT_AREA_TARGET_SELECT 
SPELL_SCRIPT_HOOK_OBJECT_TARGET_SELECT 
SPELL_SCRIPT_HOOK_DESTINATION_TARGET_SELECT 
SPELL_SCRIPT_HOOK_CHECK_CAST 
SPELL_SCRIPT_HOOK_BEFORE_CAST 
SPELL_SCRIPT_HOOK_ON_CAST 
SPELL_SCRIPT_HOOK_AFTER_CAST 
158{
173};
@ SPELL_SCRIPT_HOOK_AFTER_CAST
Definition: SpellScript.h:172
@ SPELL_SCRIPT_HOOK_EFFECT_HIT
Definition: SpellScript.h:161
@ SPELL_SCRIPT_HOOK_AFTER_HIT
Definition: SpellScript.h:165
@ SPELL_SCRIPT_HOOK_EFFECT_LAUNCH
Definition: SpellScript.h:159
@ SPELL_SCRIPT_HOOK_OBJECT_AREA_TARGET_SELECT
Definition: SpellScript.h:166
@ SPELL_SCRIPT_HOOK_BEFORE_HIT
Definition: SpellScript.h:163
@ SPELL_SCRIPT_HOOK_CHECK_CAST
Definition: SpellScript.h:169
@ SPELL_SCRIPT_HOOK_EFFECT_LAUNCH_TARGET
Definition: SpellScript.h:160
@ SPELL_SCRIPT_HOOK_HIT
Definition: SpellScript.h:164
@ SPELL_SCRIPT_HOOK_BEFORE_CAST
Definition: SpellScript.h:170
@ SPELL_SCRIPT_HOOK_DESTINATION_TARGET_SELECT
Definition: SpellScript.h:168
@ SPELL_SCRIPT_HOOK_OBJECT_TARGET_SELECT
Definition: SpellScript.h:167
@ SPELL_SCRIPT_HOOK_EFFECT_HIT_TARGET
Definition: SpellScript.h:162
@ SPELL_SCRIPT_HOOK_ON_CAST
Definition: SpellScript.h:171

◆ SpellScriptState

Enumerator
SPELL_SCRIPT_STATE_NONE 
SPELL_SCRIPT_STATE_REGISTRATION 
SPELL_SCRIPT_STATE_LOADING 
SPELL_SCRIPT_STATE_UNLOADING 
46{
51};
@ SPELL_SCRIPT_STATE_NONE
Definition: SpellScript.h:47
@ SPELL_SCRIPT_STATE_LOADING
Definition: SpellScript.h:49
@ SPELL_SCRIPT_STATE_UNLOADING
Definition: SpellScript.h:50
@ SPELL_SCRIPT_STATE_REGISTRATION
Definition: SpellScript.h:48