TrinityCore
Loading...
Searching...
No Matches
SpellScript.h File Reference
#include "ObjectGuid.h"
#include "SharedDefines.h"
#include "SpellAuraDefines.h"
#include "Util.h"
#include <memory>
#include <stack>
+ Include dependency graph for SpellScript.h:

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::HitHandler
 
class  SpellScript::BeforeHitHandler
 
class  SpellScript::TargetHook
 
class  SpellScript::ObjectAreaTargetSelectHandler
 
class  SpellScript::ObjectTargetSelectHandler
 
class  SpellScript::DestinationTargetSelectHandler
 
class  SpellScript::OnCalculateResistAbsorbHandler
 
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::CheckEffectProcHandler
 
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 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 SpellOnResistAbsorbCalculateFn(F)   OnCalculateResistAbsorbHandlerFunction(&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 AuraCheckEffectProcFn(F, I, N)   CheckEffectProcHandlerFunction(&F, I, N)
 
#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_EFFECT_SUCCESSFUL_DISPEL , 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_ON_RESIST_ABSORB_CALCULATION , 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_CHECK_EFFECT_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

◆ AuraCheckAreaTargetFn

#define AuraCheckAreaTargetFn (   F)    CheckAreaTargetFunction(&F)

Definition at line 780 of file SpellScript.h.

◆ AuraCheckEffectProcFn

#define AuraCheckEffectProcFn (   F,
  I,
 
)    CheckEffectProcHandlerFunction(&F, I, N)

Definition at line 882 of file SpellScript.h.

◆ AuraCheckProcFn

#define AuraCheckProcFn (   F)    CheckProcHandlerFunction(&F)

Definition at line 876 of file SpellScript.h.

◆ AuraDispelFn

#define AuraDispelFn (   F)    AuraDispelFunction(&F)

Definition at line 790 of file SpellScript.h.

◆ AuraEffectAbsorbFn

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

Definition at line 848 of file SpellScript.h.

◆ AuraEffectApplyFn

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

Definition at line 801 of file SpellScript.h.

◆ AuraEffectCalcAmountFn

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

Definition at line 830 of file SpellScript.h.

◆ AuraEffectCalcPeriodicFn

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

Definition at line 836 of file SpellScript.h.

◆ AuraEffectCalcSpellModFn

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

Definition at line 842 of file SpellScript.h.

◆ AuraEffectManaShieldFn

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

Definition at line 859 of file SpellScript.h.

◆ AuraEffectPeriodicFn

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

Definition at line 818 of file SpellScript.h.

◆ AuraEffectProcFn

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

Definition at line 906 of file SpellScript.h.

◆ AuraEffectRemoveFn

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

Definition at line 812 of file SpellScript.h.

◆ AuraEffectSplitFn

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

Definition at line 870 of file SpellScript.h.

◆ AuraEffectUpdatePeriodicFn

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

Definition at line 824 of file SpellScript.h.

◆ AuraProcFn

#define AuraProcFn (   F)    AuraProcHandlerFunction(&F)

Definition at line 896 of file SpellScript.h.

◆ AURASCRIPT_FUNCTION_CAST_DEFINES

#define AURASCRIPT_FUNCTION_CAST_DEFINES (   CLASSNAME)
Value:
class CheckAreaTargetFunction : public AuraScript::CheckAreaTargetHandler { public: explicit CheckAreaTargetFunction(AuraCheckAreaTargetFnType _pHandlerScript) : AuraScript::CheckAreaTargetHandler((AuraScript::AuraCheckAreaTargetFnType)_pHandlerScript) { } }; \
class AuraDispelFunction : public AuraScript::AuraDispelHandler { public: explicit AuraDispelFunction(AuraDispelFnType _pHandlerScript) : AuraScript::AuraDispelHandler((AuraScript::AuraDispelFnType)_pHandlerScript) { } }; \
class EffectPeriodicHandlerFunction : public AuraScript::EffectPeriodicHandler { public: explicit EffectPeriodicHandlerFunction(AuraEffectPeriodicFnType _pEffectHandlerScript, uint8 _effIndex, uint16 _effName) : AuraScript::EffectPeriodicHandler((AuraScript::AuraEffectPeriodicFnType)_pEffectHandlerScript, _effIndex, _effName) { } }; \
class EffectUpdatePeriodicHandlerFunction : public AuraScript::EffectUpdatePeriodicHandler { public: explicit EffectUpdatePeriodicHandlerFunction(AuraEffectUpdatePeriodicFnType _pEffectHandlerScript, uint8 _effIndex, uint16 _effName) : AuraScript::EffectUpdatePeriodicHandler((AuraScript::AuraEffectUpdatePeriodicFnType)_pEffectHandlerScript, _effIndex, _effName) { } }; \
class EffectCalcAmountHandlerFunction : public AuraScript::EffectCalcAmountHandler { public: explicit EffectCalcAmountHandlerFunction(AuraEffectCalcAmountFnType _pEffectHandlerScript, uint8 _effIndex, uint16 _effName) : AuraScript::EffectCalcAmountHandler((AuraScript::AuraEffectCalcAmountFnType)_pEffectHandlerScript, _effIndex, _effName) { } }; \
class EffectCalcPeriodicHandlerFunction : public AuraScript::EffectCalcPeriodicHandler { public: explicit EffectCalcPeriodicHandlerFunction(AuraEffectCalcPeriodicFnType _pEffectHandlerScript, uint8 _effIndex, uint16 _effName) : AuraScript::EffectCalcPeriodicHandler((AuraScript::AuraEffectCalcPeriodicFnType)_pEffectHandlerScript, _effIndex, _effName) { } }; \
class EffectCalcSpellModHandlerFunction : public AuraScript::EffectCalcSpellModHandler { public: explicit EffectCalcSpellModHandlerFunction(AuraEffectCalcSpellModFnType _pEffectHandlerScript, uint8 _effIndex, uint16 _effName) : AuraScript::EffectCalcSpellModHandler((AuraScript::AuraEffectCalcSpellModFnType)_pEffectHandlerScript, _effIndex, _effName) { } }; \
class EffectApplyHandlerFunction : public AuraScript::EffectApplyHandler { public: explicit EffectApplyHandlerFunction(AuraEffectApplicationModeFnType _pEffectHandlerScript, uint8 _effIndex, uint16 _effName, AuraEffectHandleModes _mode) : AuraScript::EffectApplyHandler((AuraScript::AuraEffectApplicationModeFnType)_pEffectHandlerScript, _effIndex, _effName, _mode) { } }; \
class EffectAbsorbFunction : public AuraScript::EffectAbsorbHandler { public: explicit EffectAbsorbFunction(AuraEffectAbsorbFnType _pEffectHandlerScript, uint8 _effIndex) : AuraScript::EffectAbsorbHandler((AuraScript::AuraEffectAbsorbFnType)_pEffectHandlerScript, _effIndex) { } }; \
class EffectManaShieldFunction : public AuraScript::EffectManaShieldHandler { public: explicit EffectManaShieldFunction(AuraEffectAbsorbFnType _pEffectHandlerScript, uint8 _effIndex) : AuraScript::EffectManaShieldHandler((AuraScript::AuraEffectAbsorbFnType)_pEffectHandlerScript, _effIndex) { } }; \
class EffectSplitFunction : public AuraScript::EffectSplitHandler { public: explicit EffectSplitFunction(AuraEffectSplitFnType _pEffectHandlerScript, uint8 _effIndex) : AuraScript::EffectSplitHandler((AuraScript::AuraEffectSplitFnType)_pEffectHandlerScript, _effIndex) { } }; \
class CheckProcHandlerFunction : public AuraScript::CheckProcHandler { public: explicit CheckProcHandlerFunction(AuraCheckProcFnType handlerScript) : AuraScript::CheckProcHandler((AuraScript::AuraCheckProcFnType)handlerScript) { } }; \
class CheckEffectProcHandlerFunction : public AuraScript::CheckEffectProcHandler { public: explicit CheckEffectProcHandlerFunction(AuraCheckEffectProcFnType handlerScript, uint8 effIndex, uint16 effName) : AuraScript::CheckEffectProcHandler((AuraScript::AuraCheckEffectProcFnType)handlerScript, effIndex, effName) { } }; \
class AuraProcHandlerFunction : public AuraScript::AuraProcHandler { public: explicit AuraProcHandlerFunction(AuraProcFnType handlerScript) : AuraScript::AuraProcHandler((AuraScript::AuraProcFnType)handlerScript) { } }; \
class EffectProcHandlerFunction : public AuraScript::EffectProcHandler { public: explicit EffectProcHandlerFunction(AuraEffectProcFnType effectHandlerScript, uint8 effIndex, uint16 effName) : AuraScript::EffectProcHandler((AuraScript::AuraEffectProcFnType)effectHandlerScript, effIndex, effName) { } }
uint8_t uint8
Definition Define.h:135
uint16_t uint16
Definition Define.h:134
AuraEffectHandleModes

Definition at line 726 of file SpellScript.h.

◆ 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::*AuraCheckEffectProcFnType)(AuraEffect const*, ProcEventInfo&); \
typedef void(CLASSNAME::*AuraProcFnType)(ProcEventInfo&); \
typedef void(CLASSNAME::*AuraEffectProcFnType)(AuraEffect const*, ProcEventInfo&); \
int32_t int32
Definition Define.h:129
uint32_t uint32
Definition Define.h:133
Definition Unit.h:769

Definition at line 579 of file SpellScript.h.

◆ BeforeSpellHitFn

#define BeforeSpellHitFn (   F)    BeforeHitHandlerFunction(&F)

Definition at line 387 of file SpellScript.h.

◆ HOOK_SPELL_HIT_END

#define HOOK_SPELL_HIT_END   SPELL_SCRIPT_HOOK_AFTER_HIT + 1

Definition at line 196 of file SpellScript.h.

◆ HOOK_SPELL_HIT_START

#define HOOK_SPELL_HIT_START   SPELL_SCRIPT_HOOK_EFFECT_HIT

Definition at line 195 of file SpellScript.h.

◆ PrepareAuraScript

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

Definition at line 743 of file SpellScript.h.

◆ PrepareSpellScript

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

Definition at line 331 of file SpellScript.h.

◆ SPELL_AURA_ANY

#define SPELL_AURA_ANY   (uint16)-1

Definition at line 53 of file SpellScript.h.

◆ SPELL_EFFECT_ANY

#define SPELL_EFFECT_ANY   (uint16)-1

Definition at line 52 of file SpellScript.h.

◆ SPELL_SCRIPT_STATE_END

#define SPELL_SCRIPT_STATE_END   SPELL_SCRIPT_STATE_UNLOADING + 1

Definition at line 62 of file SpellScript.h.

◆ SpellCastFn

#define SpellCastFn (   F)    CastHandlerFunction(&F)

Definition at line 363 of file SpellScript.h.

◆ SpellCheckCastFn

#define SpellCheckCastFn (   F)    CheckCastHandlerFunction(&F)

Definition at line 368 of file SpellScript.h.

◆ SpellDestinationTargetSelectFn

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

Definition at line 409 of file SpellScript.h.

◆ SpellEffectFn

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

Definition at line 382 of file SpellScript.h.

◆ SpellHitFn

#define SpellHitFn (   F)    HitHandlerFunction(&F)

Definition at line 394 of file SpellScript.h.

◆ SpellObjectAreaTargetSelectFn

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

Definition at line 399 of file SpellScript.h.

◆ SpellObjectTargetSelectFn

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

Definition at line 404 of file SpellScript.h.

◆ SpellOnResistAbsorbCalculateFn

#define SpellOnResistAbsorbCalculateFn (   F)    OnCalculateResistAbsorbHandlerFunction(&F)

Definition at line 373 of file SpellScript.h.

◆ SPELLSCRIPT_FUNCTION_CAST_DEFINES

#define SPELLSCRIPT_FUNCTION_CAST_DEFINES (   CLASSNAME)
Value:
class CastHandlerFunction : public SpellScript::CastHandler { public: explicit CastHandlerFunction(SpellCastFnType _pCastHandlerScript) : SpellScript::CastHandler((SpellScript::SpellCastFnType)_pCastHandlerScript) { } }; \
class CheckCastHandlerFunction : public SpellScript::CheckCastHandler { public: explicit CheckCastHandlerFunction(SpellCheckCastFnType _checkCastHandlerScript) : SpellScript::CheckCastHandler((SpellScript::SpellCheckCastFnType)_checkCastHandlerScript) { } }; \
class EffectHandlerFunction : public SpellScript::EffectHandler { public: explicit EffectHandlerFunction(SpellEffectFnType _pEffectHandlerScript, uint8 _effIndex, uint16 _effName) : SpellScript::EffectHandler((SpellScript::SpellEffectFnType)_pEffectHandlerScript, _effIndex, _effName) { } }; \
class HitHandlerFunction : public SpellScript::HitHandler { public: explicit HitHandlerFunction(SpellHitFnType _pHitHandlerScript) : SpellScript::HitHandler((SpellScript::SpellHitFnType)_pHitHandlerScript) { } }; \
class BeforeHitHandlerFunction : public SpellScript::BeforeHitHandler { public: explicit BeforeHitHandlerFunction(SpellBeforeHitFnType pBeforeHitHandlerScript) : SpellScript::BeforeHitHandler((SpellScript::SpellBeforeHitFnType)pBeforeHitHandlerScript) { } }; \
class OnCalculateResistAbsorbHandlerFunction : public SpellScript::OnCalculateResistAbsorbHandler { public: explicit OnCalculateResistAbsorbHandlerFunction(SpellOnResistAbsorbCalculateFnType _onCalculateResistAbsorbScript) : SpellScript::OnCalculateResistAbsorbHandler((SpellScript::SpellOnResistAbsorbCalculateFnType)_onCalculateResistAbsorbScript) { } }; \
class ObjectAreaTargetSelectHandlerFunction : public SpellScript::ObjectAreaTargetSelectHandler { public: explicit ObjectAreaTargetSelectHandlerFunction(SpellObjectAreaTargetSelectFnType _pObjectAreaTargetSelectHandlerScript, uint8 _effIndex, uint16 _targetType) : SpellScript::ObjectAreaTargetSelectHandler((SpellScript::SpellObjectAreaTargetSelectFnType)_pObjectAreaTargetSelectHandlerScript, _effIndex, _targetType) { } }; \
class ObjectTargetSelectHandlerFunction : public SpellScript::ObjectTargetSelectHandler { public: explicit ObjectTargetSelectHandlerFunction(SpellObjectTargetSelectFnType _pObjectTargetSelectHandlerScript, uint8 _effIndex, uint16 _targetType) : SpellScript::ObjectTargetSelectHandler((SpellScript::SpellObjectTargetSelectFnType)_pObjectTargetSelectHandlerScript, _effIndex, _targetType) { } }; \
class DestinationTargetSelectHandlerFunction : public SpellScript::DestinationTargetSelectHandler { public: explicit DestinationTargetSelectHandlerFunction(SpellDestinationTargetSelectFnType _DestinationTargetSelectHandlerScript, uint8 _effIndex, uint16 _targetType) : SpellScript::DestinationTargetSelectHandler((SpellScript::SpellDestinationTargetSelectFnType)_DestinationTargetSelectHandlerScript, _effIndex, _targetType) { } }

Definition at line 320 of file SpellScript.h.

◆ 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::*SpellOnResistAbsorbCalculateFnType)(DamageInfo const& damageInfo, uint32& resistAmount, int32& absorbAmount); \
typedef void(CLASSNAME::*SpellObjectAreaTargetSelectFnType)(std::list<WorldObject*>&); \
typedef void(CLASSNAME::*SpellObjectTargetSelectFnType)(WorldObject*&); \
typedef void(CLASSNAME::*SpellDestinationTargetSelectFnType)(SpellDestination&);
SpellEffIndex
SpellMissInfo
SpellCastResult
STL namespace.

Definition at line 203 of file SpellScript.h.

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_CHECK_EFFECT_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 

Definition at line 538 of file SpellScript.h.

◆ 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_EFFECT_SUCCESSFUL_DISPEL 
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_ON_RESIST_ABSORB_CALCULATION 
SPELL_SCRIPT_HOOK_AFTER_CAST 

Definition at line 175 of file SpellScript.h.

◆ SpellScriptState

Enumerator
SPELL_SCRIPT_STATE_NONE 
SPELL_SCRIPT_STATE_REGISTRATION 
SPELL_SCRIPT_STATE_LOADING 
SPELL_SCRIPT_STATE_UNLOADING 

Definition at line 55 of file SpellScript.h.