51 if (!creatureTarget->IsPet() && creatureTarget->GetEntry() ==
_originalEntry)
55 creatureTarget->EngageWithTarget(
GetCaster());
155 creatureTarget->UpdateEntry(newEntry);
324 switch (target->GetEntry())
334 caster->
CastSpell(caster, spellId, castItem);
336 target->DespawnOrUnsummon();
367 switch (creatureTarget->GetEntry())
374 creatureTarget->UpdateEntry(uiNewEntry);
494 target->DespawnOrUnsummon();
525 target->DespawnOrUnsummon(2s);
567 target->
CastSpell(target, triggeredSpellID,
true);
646 if (
Vehicle* vehicle = caster->GetVehicleKit())
647 if (
Unit* passenger = vehicle->GetPassenger(0))
725 std::vector<Player*> playerList;
727 for (
Player* player : playerList)
778 basilisk->DespawnOrUnsummon();
794 Position const offset = { 0.0f, 0.0f, 20.0f, 0.0f };
867 Position const offset = { 0.0f, 0.0f, 20.0f, 0.0f };
883 Position const offset = { 0.0f, 0.0f, 2.5f, 0.0f };
1048 creature->DespawnOrUnsummon();
1064 uint32 area = creature->GetAreaId();
1066 creature->DespawnOrUnsummon();
1137 if ((count % 20) == 0)
1187 float angle =
frand(0.75f, 1.25f) * float(
M_PI);
1269 player->StopCastingCharm();
1270 player->StopCastingBindSight();
1355 passenger->ExitVehicle();
1472 injuredStormwindInfantry->SetCreatorGUID(caster->
GetGUID());
1473 injuredStormwindInfantry->CastSpell(injuredStormwindInfantry,
SPELL_RENEWED_LIFE,
true);
1592 else if (chance < 60)
1594 else if (chance < 90)
1599 caster->CastSpell(caster, spellId,
true);
1616 trigger->AI()->Talk(
TALK_0, caster);
1632 trigger->AI()->Talk(
TALK_1, caster);
1790 target->
CastSpell(target, spellId,
true);
T GetEntry(std::unordered_map< uint32, T > const &map, CriteriaTreeEntry const *tree)
std::chrono::milliseconds Milliseconds
Milliseconds shorthand typedef.
@ TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT
@ QUEST_STATUS_INCOMPLETE
float frand(float min, float max)
uint32 urand(uint32 min, uint32 max)
bool roll_chance(T chance)
#define RegisterSpellScript(spell_script)
@ TARGET_DEST_CASTER_BACK
@ TARGET_DEST_CASTER_SUMMON
@ SPELL_EFFECT_SCRIPT_EFFECT
@ SPELL_EFFECT_SEND_EVENT
@ SPELL_EFFECT_KNOCK_BACK
@ SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW
@ AURA_EFFECT_HANDLE_REAL_OR_REAPPLY_MASK
@ AURA_EFFECT_HANDLE_REAL
@ SPELL_AURA_PERIODIC_HEAL
@ SPELL_AURA_PERIODIC_DUMMY
@ SPELL_AURA_MOD_INCREASE_MOUNTED_FLIGHT_SPEED
@ SPELL_AURA_PERIODIC_TRIGGER_SPELL
@ TRIGGERED_FULL_MASK
Used when doing CastSpell with triggered == true.
@ TRIGGERED_IGNORE_CASTER_MOUNTED_OR_ON_VEHICLE
Will ignore mounted/on vehicle restrictions.
#define SpellCheckCastFn(F)
#define SpellEffectFn(F, I, N)
#define AuraEffectPeriodicFn(F, I, N)
#define SpellDestinationTargetSelectFn(F, I, N)
#define AuraEffectApplyFn(F, I, N, M)
#define AuraEffectRemoveFn(F, I, N, M)
SpellEffectInfo const & GetSpellEffectInfo() const
void PreventDefaultAction()
AuraApplication const * GetTargetApplication() const
HookList< EffectApplyHandler > AfterEffectRemove
HookList< EffectPeriodicHandler > OnEffectPeriodic
HookList< EffectApplyHandler > AfterEffectApply
HookList< EffectApplyHandler > OnEffectRemove
HookList< EffectApplyHandler > OnEffectApply
ObjectGuid const & GetGUID() const
void DespawnOrUnsummon(Milliseconds timeToDespawn=0s, Seconds forceRespawnTime=0s)
void KilledMonsterCredit(uint32 entry, ObjectGuid guid=ObjectGuid::Empty)
bool IsActiveQuest(uint32 quest_id) const
int32 CalcValueAsInt(WorldObject const *caster=nullptr, SpellEffectValue const *basePoints=nullptr, Unit const *target=nullptr, float *variance=nullptr, uint32 castItemId=0, int32 itemLevel=-1) const
SpellRange CalcRadius(WorldObject const *caster=nullptr, SpellTargetIndex targetIndex=SpellTargetIndex::TargetA, Spell *spell=nullptr) const
SpellEffectInfo const & GetEffect(SpellEffIndex index) const
static bool ValidateSpellInfo(std::initializer_list< uint32 > spellIds)
static bool ValidateSpellEffect(std::initializer_list< std::pair< uint32, SpellEffIndex > > effects)
HookList< CheckCastHandler > OnCheckCast
Creature * GetHitCreature() const
Player * GetHitPlayer() const
Aura * GetHitAura(bool dynObjAura=false, bool withRemoved=false) const
HookList< DestinationTargetSelectHandler > OnDestinationTargetSelect
int32 GetEffectValueAsInt() const
HookList< EffectHandler > OnEffectHit
Unit * GetHitUnit() const
SpellEffectInfo const & GetEffectInfo() const
HookList< EffectHandler > OnEffectHitTarget
Item * GetCastItem() const
HookList< CastHandler > OnCast
WorldLocation const * GetExplTargetDest() const
SpellInfo const * GetSpellInfo() const
Unit * GetOriginalCaster() const
void SetImmuneToPC(bool apply, bool keepCombat)
void SetHealth(uint64 val)
uint64 CountPctFromMaxHealth(float pct) const
void SetUnitFlag3(UnitFlags3 flags)
void SetUnitFlag2(UnitFlags2 flags)
void AddUnitState(uint32 f)
bool HasAuraType(AuraType auraType) const
bool HasAura(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, ObjectGuid itemCasterGUID=ObjectGuid::Empty, uint32 reqEffMask=0) const
void HandleEmoteCommand(Emote emoteId, Player *target=nullptr, Trinity::IteratorPair< int32 const * > spellVisualKitIds={}, int32 sequenceVariation=0)
Vehicle * GetVehicleKit() const
void RemoveAurasDueToSpell(uint32 spellId, ObjectGuid casterGUID=ObjectGuid::Empty, uint32 reqEffMask=0, AuraRemoveMode removeMode=AURA_REMOVE_BY_DEFAULT)
virtual void ExitVehicle(Position const *exitPosition=nullptr)
Unit * GetPassenger(int8 seatId) const
Gets a passenger on specified seat.
void GetPlayerListInGrid(Container &playerContainer, float maxSearchRange, bool alive=true) const
Unit * GetCharmerOrOwnerOrSelf() const
SpellCastResult CastSpell(CastSpellTargetArg const &targets, uint32 spellId, CastSpellExtraArgs const &args={ })
TempSummon * SummonCreature(uint32 entry, Position const &pos, TempSummonType despawnType=TEMPSUMMON_MANUAL_DESPAWN, Milliseconds despawnTime=0s, uint32 vehId=0, uint32 spellId=0, ObjectGuid privateObjectOwner=ObjectGuid::Empty)
Position GetNearPosition(float dist, float angle)
Creature * FindNearestCreature(uint32 entry, float range, bool alive=true) const
Player * GetCharmerOrOwnerPlayerOrPlayerItself() const
Milliseconds _despawnTime
void HandleDummy(SpellEffIndex)
spell_generic_quest_update_entry_SpellScript(uint16 spellEffect, uint8 effIndex, uint32 originalEntry, uint32 newEntry, bool shouldAttack, Milliseconds despawnTime=0s)
spell_q10255_administer_antidote()
SpellScript * GetSpellScript() const override
bool Validate(SpellInfo const *) override
void HandleEffectRemove(AuraEffect const *, AuraEffectHandleModes)
void HandleEffectPeriodic(AuraEffect const *)
void HandleTriggerSpell(AuraEffect const *)
void HandleDummy(SpellEffIndex)
void HandleDummy(SpellEffIndex)
SpellCastResult CheckRequirement()
void HandleEffect(SpellEffIndex)
void HandleEffect(SpellEffIndex)
void HandleEffect(SpellEffIndex)
void HandleDummy(SpellEffIndex)
void HandleEffectApply(AuraEffect const *, AuraEffectHandleModes)
void HandleEffectRemove(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
SpellScript * GetSpellScript() const override
spell_q11515_fel_siphon_dummy()
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
void HandleDummy(SpellEffIndex)
void ModDest(SpellDestination &dest)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
void HandleDummy(SpellEffIndex)
void HandleScript(SpellEffIndex)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleScriptEffect(SpellEffIndex)
void HandleScript(SpellEffIndex)
void HandleEffectPeriodic(AuraEffect const *aurEff)
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
void HandleDummy(SpellEffIndex)
void HandleDummy(SpellEffIndex)
void SetDest(SpellDestination &dest)
void HandleKnockBack(SpellEffIndex)
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleEffectPeriodic(AuraEffect const *)
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
void SetDest(SpellDestination &dest)
void HandleEffectApply(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
void HandleScript(SpellEffIndex)
bool Validate(SpellInfo const *spellInfo) override
void HandleEffectDummy(SpellEffIndex)
void HandleScript(SpellEffIndex)
void HandleScript(SpellEffIndex)
void HandleRemove(AuraEffect const *, AuraEffectHandleModes)
void HandleApply(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
void HandleApply(AuraEffect const *, AuraEffectHandleModes)
void HandleRemove(AuraEffect const *, AuraEffectHandleModes)
void HandleDummy(SpellEffIndex)
void SetDest(SpellDestination &dest)
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
void HandleScriptEffect(SpellEffIndex)
bool Validate(SpellInfo const *) override
void HandleEffect(SpellEffIndex)
void HandleEffectPeriodic(AuraEffect const *)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
SpellScript * GetSpellScript() const override
spell_q28813_get_our_boys_back_dummy()
SpellScript * GetSpellScript() const override
spell_q28813_set_health_random()
spell_q55_sacred_cleansing()
SpellScript * GetSpellScript() const override
void HandleDummy(SpellEffIndex)
bool Validate(SpellInfo const *spellInfo) override
void HandleScriptEffect(SpellEffIndex)
void OnRemove(AuraEffect const *, AuraEffectHandleModes)
bool Validate(SpellInfo const *) override
bool Validate(SpellInfo const *) override
void HandleScript(SpellEffIndex)
@ SPELL_TAME_SURF_CRAWLER
@ SPELL_TAME_SNOW_LEOPARD_1
@ SPELL_TAME_GREATER_TIMBERSTRIDER_1
@ SPELL_TAME_ELDER_SPRINGPAW_1
@ SPELL_TAME_PRAIRIE_STALKER
@ SPELL_TAME_WEBWOOD_LURKER_1
@ SPELL_TAME_LARGE_CRAG_BOAR
@ SPELL_TAME_STRIGID_SCREECHER_1
@ SPELL_TAME_NIGHTSTALKER_1
@ SPELL_TAME_NIGHTSABER_STALKER
@ SPELL_TAME_ELDER_SPRINGPAW
@ SPELL_TAME_ARMORED_SCORPID
@ SPELL_TAME_ICE_CLAW_BEAR
@ SPELL_TAME_CRAZED_DRAGONHAWK_1
@ SPELL_TAME_CRAZED_DRAGONHAWK
@ SPELL_TAME_ICE_CLAW_BEAR_1
@ SPELL_TAME_ARMORED_SCORPID_1
@ SPELL_TAME_WEBWOOD_LURKER
@ SPELL_TAME_DIRE_MOTTLED_BOAR_1
@ SPELL_TAME_STRIGID_SCREECHER
@ SPELL_TAME_BARBED_CRAWLER
@ SPELL_TAME_SURF_CRAWLER_1
@ SPELL_TAME_LARGE_CRAG_BOAR_1
@ SPELL_TAME_NIGHTSTALKER
@ SPELL_TAME_BARBED_CRAWLER_1
@ SPELL_TAME_ADULT_PLAINSTRIDER
@ SPELL_TAME_GREATER_TIMBERSTRIDER
@ SPELL_TAME_DIRE_MOTTLED_BOAR
@ SPELL_TAME_PRAIRIE_STALKER_1
@ SPELL_TAME_NIGHTSABER_STALKER_1
@ SPELL_TAME_SNOW_LEOPARD
@ SPELL_TAME_ADULT_PLAINSTRIDER_1
@ SPELL_BUNNY_CREDIT_BEAM
Quest13291_13292_13239_13261Data
@ CREATURE_GENERIC_TRIGGER_LAB
@ NPC_REANIMATED_FROSTWYRM
@ NPC_WEAK_REANIMATED_FROSTWYRM
Quest_The_Hunter_And_The_Prince
@ SPELL_ILLIDAN_KILL_CREDIT
@ SPELL_UTHERS_DRAENEI_TRIBUTE
@ SPELL_GROMS_TAUREN_TRIBUTE
@ SPELL_UTHERS_HUMAN_TRIBUTE
@ SPELL_UTHERS_GNOME_TRIBUTE
@ SPELL_UTHERS_NIGHTELF_TRIBUTE
@ SPELL_GROMS_ORC_TRIBUTE
@ SPELL_GROMS_TROLL_TRIBUTE
@ SPELL_GROMS_BLOODELF_TRIBUTE
@ SPELL_UTHERS_DWARF_TRIBUTE
@ SPELL_GROMS_UNDEAD_TRIBUTE
@ SPELL_SUMMON_WYRMREST_DEFENDER
@ NPC_WYRMREST_TEMPLE_CREDIT
@ SPELL_SUMMON_SENTRYBOT_57K
@ SPELL_SUMMON_SCAVENGEBOT_004A8
@ SPELL_SUMMON_55D_COLLECTATRON
@ SPELL_SUMMON_SCAVENGEBOT_005B6
@ SPELL_SUMMON_DEFENDOTANK_66D
@ SPELL_ROBOT_KILL_CREDIT
Quest_The_Storm_King_Throw
@ SPELL_PLANT_HORDE_BATTLE_STANDARD
@ SPELL_ALLIANCE_BATTLE_STANDARD_STATE
@ SPELL_HORDE_BATTLE_STANDARD_STATE
@ SPELL_JUMP_ROCKET_BLAST
@ NPC_KING_OF_THE_MOUNTAINT_KC
@ SPELL_SUMMON_GORGED_LURKING_BASILISK
@ SPELL_FROSTGIANT_CREDIT
@ SPELL_FLICKERING_FLAMES
@ SPELL_SUMMON_ADVENTUROUS_DWARF
@ SPELL_ORANGE_FALLS_TO_GROUND
@ SPELL_PAPAYA_FALLS_TO_GROUND
@ SPELL_BANANAS_FALL_TO_GROUND
@ NPC_NEW_AVALON_TOWN_HALL
@ NPC_CHAPEL_OF_THE_CRIMSON_FLAME
@ SPELL_SCARLET_HOLD_CREDIT
@ SPELL_SUMMON_SAND_GNOME
@ SPELL_SUMMON_BONE_SLICER
Quest11010_11102_11023Data
@ SPELL_FLAK_CANNON_TRIGGER
@ SPELL_TOTEM_OF_THE_EARTHEN_RING
@ SPELL_BURST_AT_THE_SEAMS_52510
@ SPELL_BURST_AT_THE_SEAMS_BONE
@ SPELL_DRAKKARI_CHIEFTAINK_KILL_CREDIT
@ QUEST_FUEL_FOR_THE_FIRE
@ SPELL_ASSIGN_SKELETON_KILL_CREDIT_TO_MASTER
@ AREA_MORD_RETHAR_THE_DEATH_GATE
@ SPELL_EXPLODE_ABOMINATION_BLOODY_MEAT
@ NPC_RENIMATED_ABOMINATION
@ SPELL_ASSIGN_GEIST_KILL_CREDIT_TO_MASTER
@ NPC_RISEN_ALLIANCE_SOLDIERS
@ SPELL_EXPLODE_TROLL_MEAT
@ SPELL_EXPLODE_TROLL_BLOODY_MEAT
@ SPELL_BURST_AT_THE_SEAMS_59580
@ NPC_DRAKKARI_CHIEFTAINK
@ SPELL_SUMMON_DRAKKARI_CHIEFTAIN
@ SPELL_BURST_AT_THE_SEAMS_52508
@ SPELL_BURST_AT_THE_SEAMS_59579
@ SPELL_BURST_AT_THE_SEAMS_59576
@ SPELL_ASSIGN_GHOUL_KILL_CREDIT_TO_MASTER
@ SPELL_DRAKKARI_SKULLCRUSHER_CREDIT
@ SPELL_EXPLODE_ABOMINATION_MEAT
@ SPELL_BLOATED_ABOMINATION_FEIGN_DEATH
@ NPC_INJURED_STORMWIND_INFANTRY
@ SPELL_FORCE_SHIELD_ARCANE_PURPLE_X3
@ SPELL_SCOURGING_CRYSTAL_CONTROLLER
constexpr Milliseconds Quest6124_6129_DESPAWN_TIME
void AddSC_quest_spell_scripts()
@ SPELL_THAUMATURGY_CHANNEL
void RelocateOffset(Position const &offset)
void Relocate(Position const &pos)