53 if (!creatureTarget->IsPet() && creatureTarget->GetEntry() ==
_originalEntry)
57 creatureTarget->EngageWithTarget(
GetCaster());
157 creatureTarget->UpdateEntry(newEntry);
326 switch (target->GetEntry())
336 caster->
CastSpell(caster, spellId, castItem);
338 target->DespawnOrUnsummon();
369 switch (creatureTarget->GetEntry())
376 creatureTarget->UpdateEntry(uiNewEntry);
496 target->DespawnOrUnsummon();
527 target->DespawnOrUnsummon(2s);
569 target->
CastSpell(target, triggeredSpellID,
true);
648 if (
Vehicle* vehicle = caster->GetVehicleKit())
649 if (
Unit* passenger = vehicle->GetPassenger(0))
727 std::list<Player*> playerList;
731 for (std::list<Player*>::const_iterator itr = playerList.begin(); itr != playerList.end(); ++itr)
782 basilisk->DespawnOrUnsummon();
798 Position const offset = { 0.0f, 0.0f, 20.0f, 0.0f };
871 Position const offset = { 0.0f, 0.0f, 20.0f, 0.0f };
887 Position const offset = { 0.0f, 0.0f, 2.5f, 0.0f };
1052 creature->DespawnOrUnsummon();
1068 uint32 area = creature->GetAreaId();
1070 creature->DespawnOrUnsummon();
1141 if ((count % 20) == 0)
1191 float angle =
frand(0.75f, 1.25f) * float(
M_PI);
1273 player->StopCastingCharm();
1274 player->StopCastingBindSight();
1359 passenger->ExitVehicle();
1476 injuredStormwindInfantry->SetCreatorGUID(caster->
GetGUID());
1477 injuredStormwindInfantry->CastSpell(injuredStormwindInfantry,
SPELL_RENEWED_LIFE,
true);
1596 else if (chance < 60)
1598 else if (chance < 90)
1603 caster->CastSpell(caster, spellId,
true);
1620 trigger->AI()->Talk(
TALK_0, caster);
1636 trigger->AI()->Talk(
TALK_1, caster);
1794 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_i(int 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
void DespawnOrUnsummon(Milliseconds timeToDespawn=0s, Seconds forceRespawnTime=0s)
static Creature * ToCreature(Object *o)
static ObjectGuid GetGUID(Object const *o)
static Player * ToPlayer(Object *o)
void KilledMonsterCredit(uint32 entry, ObjectGuid guid=ObjectGuid::Empty)
bool IsActiveQuest(uint32 quest_id) const
int32 CalcValue(WorldObject const *caster=nullptr, int32 const *basePoints=nullptr, Unit const *target=nullptr, float *variance=nullptr, uint32 castItemId=0, int32 itemLevel=-1) const
float CalcRadius(WorldObject *caster=nullptr, SpellTargetIndex targetIndex=SpellTargetIndex::TargetA, 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
HookList< DestinationTargetSelectHandler > OnDestinationTargetSelect
HookList< EffectHandler > OnEffectHit
Unit * GetHitUnit() const
int32 GetEffectValue() const
SpellEffectInfo const & GetEffectInfo() const
HookList< EffectHandler > OnEffectHitTarget
Item * GetCastItem() const
HookList< CastHandler > OnCast
Aura * GetHitAura(bool dynObjAura=false) const
WorldLocation const * GetExplTargetDest() const
SpellInfo const * GetSpellInfo() const
Unit * GetOriginalCaster() const
void SetImmuneToPC(bool apply, bool keepCombat)
void SetHealth(uint64 val)
void SetUnitFlag3(UnitFlags3 flags)
void SetUnitFlag2(UnitFlags2 flags)
void AddUnitState(uint32 f)
bool HasAuraType(AuraType auraType) const
uint64 CountPctFromMaxHealth(int32 pct) 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.
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
static void VisitWorldObjects(WorldObject const *obj, T &visitor, float radius, bool dont_load=true)
void RelocateOffset(Position const &offset)
void Relocate(Position const &pos)