Miisc fixes

This commit is contained in:
hondacrx
2022-05-30 15:50:06 -04:00
parent 2419cef04e
commit 969ba4e348
3 changed files with 48 additions and 358 deletions
+48 -55
View File
@@ -1240,8 +1240,8 @@ namespace Scripts.Spells.Generic
{
void HandleDamageCalc(uint effIndex)
{
Unit caster = GetCaster();
if (caster == null || !caster.IsCreature())
Creature caster = GetCaster().ToCreature();
if (caster == null)
return;
int damage = 0;
@@ -1449,6 +1449,25 @@ namespace Scripts.Spells.Generic
}
}
[Script]
class spell_gen_despawn_target : SpellScript
{
void HandleDespawn(uint effIndex)
{
if (GetEffectInfo().IsEffect(SpellEffectName.Dummy) || GetEffectInfo().IsEffect(SpellEffectName.ScriptEffect))
{
Creature target = GetHitCreature();
if (target != null)
target.DespawnOrUnsummon();
}
}
public override void Register()
{
OnEffectHitTarget.Add(new EffectHandler(HandleDespawn, SpellConst.EffectAll, SpellEffectName.Any));
}
}
[Script] // 70769 Divine Storm!
class spell_gen_divine_storm_cd_reset : SpellScript
{
@@ -2379,6 +2398,28 @@ namespace Scripts.Spells.Generic
}
}
[Script]
class spell_gen_player_say : SpellScript
{
public override bool Validate(SpellInfo spellInfo)
{
return CliDB.BroadcastTextStorage.HasRecord((uint)spellInfo.GetEffect(0).CalcValue());
}
void HandleScript(uint effIndex)
{
// Note: target here is always player; caster here is gameobject, creature or player (self cast)
Unit target = GetHitUnit();
if (target != null)
target.Say((uint)GetEffectValue(), target);
}
public override void Register()
{
OnEffectHitTarget.Add(new EffectHandler(HandleScript, 0, SpellEffectName.ScriptEffect));
}
}
[Script("spell_item_soul_harvesters_charm")]
[Script("spell_item_commendation_of_kaelthas")]
[Script("spell_item_corpse_tongue_coin")]
@@ -2952,50 +2993,6 @@ namespace Scripts.Spells.Generic
}
}
[Script("spell_gen_summon_fire_elemental", SpellIds.SummonFireElemental)]
[Script("spell_gen_summon_earth_elemental", SpellIds.SummonEarthElemental)]
class spell_gen_summon_elemental : AuraScript
{
readonly uint _spellId;
public spell_gen_summon_elemental(uint spellId)
{
_spellId = spellId;
}
public override bool Validate(SpellInfo spellInfo)
{
return ValidateSpellInfo(_spellId);
}
void AfterApply(AuraEffect aurEff, AuraEffectHandleModes mode)
{
if (GetCaster())
{
Unit owner = GetCaster().GetOwner();
if (owner)
owner.CastSpell(owner, _spellId, true);
}
}
void AfterRemove(AuraEffect aurEff, AuraEffectHandleModes mode)
{
if (GetCaster())
{
Unit owner = GetCaster().GetOwner();
if (owner)
if (owner.IsTypeId(TypeId.Player)) // @todo this check is maybe wrong
owner.ToPlayer().RemovePet(null, PetSaveMode.NotInSlot, true);
}
}
public override void Register()
{
AfterEffectApply.Add(new EffectApplyHandler(AfterApply, 1, AuraType.Dummy, AuraEffectHandleModes.Real));
AfterEffectRemove.Add(new EffectApplyHandler(AfterRemove, 1, AuraType.Dummy, AuraEffectHandleModes.Real));
}
}
[Script]
class spell_gen_summon_tournament_mount : SpellScript
{
@@ -3408,16 +3405,12 @@ namespace Scripts.Spells.Generic
void HandleScript(uint effIndex)
{
Unit caster = GetCaster();
if (caster != null)
TempSummon casterSummon = GetCaster().ToTempSummon();
if (casterSummon != null)
{
TempSummon casterSummon = caster.ToTempSummon();
if (casterSummon != null)
{
Player target = casterSummon.GetSummonerUnit().ToPlayer();
if (target != null)
casterSummon.Whisper((uint)GetEffectValue(), target, false);
}
Player target = casterSummon.GetSummonerUnit().ToPlayer();
if (target != null)
casterSummon.Whisper((uint)GetEffectValue(), target, false);
}
}
-29
View File
@@ -2633,35 +2633,6 @@ namespace Scripts.Spells.Items
}
}
[Script]
class spell_item_crystal_prison_dummy_dnd : SpellScript
{
public override bool Validate(SpellInfo spell)
{
if (Global.ObjectMgr.GetGameObjectTemplate(ObjectIds.ImprisonedDoomguard) == null)
return false;
return true;
}
void HandleDummy(uint effIndex)
{
Creature target = GetHitCreature();
if (target)
{
if (target.IsDead() && !target.IsPet())
{
GetCaster().SummonGameObject(ObjectIds.ImprisonedDoomguard, target, Quaternion.CreateFromRotationMatrix(Extensions.fromEulerAnglesZYX(target.GetOrientation(), 0.0f, 0.0f)), TimeSpan.FromSeconds(target.GetRespawnTime() - GameTime.GetGameTime()));
target.DespawnOrUnsummon();
}
}
}
public override void Register()
{
OnEffectHitTarget.Add(new EffectHandler(HandleDummy, 0, SpellEffectName.Dummy));
}
}
[Script]
class spell_item_reindeer_transformation : SpellScript
{
-274
View File
@@ -70,29 +70,15 @@ namespace Scripts.Spells.Quest
//Quest12937
public const uint TriggerAidOfTheEarthen = 55809;
//Whoarethey
public const uint MaleDisguise = 38080;
public const uint FemaleDisguise = 38081;
public const uint GenericDisguise = 32756;
//Symboloflife
public const uint PermanentFeignDeath = 29266;
//Stoppingthespread
public const uint Flames = 39199;
//BattleStandard
public const uint PlantHordeBattleStandard = 59643;
public const uint HordeBattleStandardState = 59642;
public const uint AllianceBattleStandardState = 4339;
public const uint JumpRocketBlast = 4340;
//Chumthewatersummons
public const uint SummonAngryKvaldir = 66737;
public const uint SummonNorthSeaMako = 66738;
public const uint SummonNorthSeaThresher = 66739;
public const uint SummonNorthSeaBlueShark = 66740;
//Redsnapperverytasty
public const uint FishedUpRedSnapper = 29867;
public const uint FishedUpMurloc = 29869;
@@ -108,11 +94,6 @@ namespace Scripts.Spells.Quest
//Focusonthebeach
public const uint BunnyCreditBeam = 47390;
//Acleansingsong
public const uint SummonSpiritAtah = 52954;
public const uint SummonSpiritHakhalan = 52958;
public const uint SummonSpiritKoosu = 52959;
//Defendingwyrmresttemple
public const uint SummonWyrmrestDefender = 49207;
@@ -278,9 +259,6 @@ namespace Scripts.Spells.Quest
//Quest12659
public const uint ScalpsKcBunny = 28622;
//Stoppingthespread
public const uint VillagerKillCredit = 18240;
//Salvaginglifesstength
public const uint ShardKillCredit = 29303;
@@ -727,33 +705,6 @@ namespace Scripts.Spells.Quest
}
}
// http://www.wowhead.com/quest=12683 Burning to Help
[Script] // 52308 Take Sputum Sample
class spell_q12683_take_sputum_sample : SpellScript
{
public override bool Validate(SpellInfo spellInfo)
{
return spellInfo.GetEffects().Count > 1;
}
void HandleDummy(uint effIndex)
{
uint reqAuraId = (uint)GetEffectInfo(1).CalcValue();
Unit caster = GetCaster();
if (caster.HasAuraEffect(reqAuraId, 0))
{
uint spellId = (uint)GetEffectInfo(0).CalcValue();
caster.CastSpell(caster, spellId, true);
}
}
public override void Register()
{
OnEffectHit.Add(new EffectHandler(HandleDummy, 0, SpellEffectName.Dummy));
}
}
// http://www.wowhead.com/quest=12851 Going Bearback
[Script] // 54798 FLAMING Arrow Triggered Effect
class spell_q12851_going_bearback : AuraScript
@@ -793,31 +744,6 @@ namespace Scripts.Spells.Quest
}
}
[Script] // 48917 - Who Are They: Cast from Questgiver
class spell_q10041_q10040_who_are_they : SpellScript
{
public override bool Validate(SpellInfo spellEntry)
{
return ValidateSpellInfo(SpellIds.MaleDisguise, SpellIds.FemaleDisguise, SpellIds.GenericDisguise);
}
void HandleScript(uint effIndex)
{
PreventHitDefaultEffect(effIndex);
Player target = GetHitPlayer();
if (target)
{
target.CastSpell(target, target.GetNativeGender() == Gender.Male ? SpellIds.MaleDisguise : SpellIds.FemaleDisguise, true);
target.CastSpell(target, SpellIds.GenericDisguise, true);
}
}
public override void Register()
{
OnEffectHitTarget.Add(new EffectHandler(HandleScript, 0, SpellEffectName.ScriptEffect));
}
}
// http://www.wowhead.com/quest=12659 Scalps!
[Script] // 52090 Ahunae's Knife
class spell_q12659_ahunaes_knife : SpellScript
@@ -845,35 +771,6 @@ namespace Scripts.Spells.Quest
}
}
[Script] // 32146 - Liquid Fire
class spell_q9874_liquid_fire : SpellScript
{
public override bool Load()
{
return GetCaster().IsTypeId(TypeId.Player);
}
void HandleDummy(uint effIndex)
{
Player caster = GetCaster().ToPlayer();
Creature target = GetHitCreature();
if (target != null)
{
if (!target.HasAura(SpellIds.Flames))
{
caster.KilledMonsterCredit(CreatureIds.VillagerKillCredit);
target.CastSpell(target, SpellIds.Flames, true);
target.DespawnOrUnsummon(TimeSpan.FromSeconds(60));
}
}
}
public override void Register()
{
OnEffectHitTarget.Add(new EffectHandler(HandleDummy, 0, SpellEffectName.Dummy));
}
}
[Script] // 54190 - Lifeblood Dummy
class spell_q12805_lifeblood_dummy : SpellScript
{
@@ -956,26 +853,6 @@ namespace Scripts.Spells.Quest
}
}
[Script] // 66741 - Chum the Water
class spell_q14112_14145_chum_the_water : SpellScript
{
public override bool Validate(SpellInfo spellEntry)
{
return ValidateSpellInfo(SpellIds.SummonAngryKvaldir, SpellIds.SummonNorthSeaMako, SpellIds.SummonNorthSeaThresher, SpellIds.SummonNorthSeaBlueShark);
}
void HandleScriptEffect(uint effIndex)
{
Unit caster = GetCaster();
caster.CastSpell(caster, RandomHelper.RAND(SpellIds.SummonAngryKvaldir, SpellIds.SummonNorthSeaMako, SpellIds.SummonNorthSeaThresher, SpellIds.SummonNorthSeaBlueShark));
}
public override void Register()
{
OnEffectHitTarget.Add(new EffectHandler(HandleScriptEffect, 0, SpellEffectName.ScriptEffect));
}
}
[Script] // 29866 - Cast Fishing Net
class spell_q9452_cast_net : SpellScript
{
@@ -1000,30 +877,6 @@ namespace Scripts.Spells.Quest
}
}
[Script] // 66512 - Pound Drum
class spell_q14076_14092_pound_drum : SpellScript
{
public override bool Validate(SpellInfo spell)
{
return ValidateSpellInfo(SpellIds.SummonDeepJormungar, SpellIds.StormforgedMoleMachine);
}
void HandleSummon()
{
Unit caster = GetCaster();
if (RandomHelper.randChance(50))
caster.CastSpell(caster, SpellIds.SummonDeepJormungar, true);
else
caster.CastSpell(caster, SpellIds.StormforgedMoleMachine, true);
}
public override void Register()
{
OnCast.Add(new CastHandler(HandleSummon));
}
}
[Script]
class spell_q12279_cast_net : SpellScript
{
@@ -1038,70 +891,6 @@ namespace Scripts.Spells.Quest
}
}
[Script] // 56278 - Read Pronouncement
class spell_q12987_read_pronouncement : AuraScript
{
void OnApply(AuraEffect aurEff, AuraEffectHandleModes mode)
{
// player must cast kill credit and do emote text, according to sniff
Player target = GetTarget().ToPlayer();
if (target)
{
Creature trigger = target.FindNearestCreature(CreatureIds.IceSpikeBunny, 25.0f);
if (trigger)
{
Global.CreatureTextMgr.SendChat(trigger, Misc.Say1, target, ChatMsg.Addon, Language.Addon, Game.CreatureTextRange.Normal, 0, SoundKitPlayType.Normal, Team.Other, false, target);
target.KilledMonsterCredit(CreatureIds.Killcredit);
Global.CreatureTextMgr.SendChat(trigger, Misc.Say2, target, ChatMsg.Addon, Language.Addon, Game.CreatureTextRange.Normal, 0, SoundKitPlayType.Normal, Team.Other, false, target);
}
}
}
public override void Register()
{
AfterEffectApply.Add(new EffectApplyHandler(OnApply, 0, AuraType.None, AuraEffectHandleModes.Real));
}
}
[Script] // 48742 - Wintergarde Mine Explosion
class spell_q12277_wintergarde_mine_explosion : SpellScript
{
void HandleDummy(uint effIndex)
{
Creature unitTarget = GetHitCreature();
if (unitTarget)
{
Unit caster = GetCaster();
if (caster)
{
if (caster.IsTypeId(TypeId.Unit))
{
Unit owner = caster.GetOwner();
if (owner)
{
switch (unitTarget.GetEntry())
{
case CreatureIds.UpperMineShaft:
caster.CastSpell(owner, SpellIds.UpperMineShaftCredit, true);
break;
case CreatureIds.LowerMineShaft:
caster.CastSpell(owner, SpellIds.LowerMineShaftCredit, true);
break;
default:
break;
}
}
}
}
}
}
public override void Register()
{
OnEffectHitTarget.Add(new EffectHandler(HandleDummy, 0, SpellEffectName.Dummy));
}
}
[Script] // 50546 - The Focus on the Beach: Ley Line Focus Control Ring Effect
class spell_q12066_bunny_kill_credit : SpellScript
{
@@ -1118,34 +907,6 @@ namespace Scripts.Spells.Quest
}
}
[Script] // 52941 - Song of Cleansing
class spell_q12735_song_of_cleansing : SpellScript
{
void HandleScript(uint effIndex)
{
Unit caster = GetCaster();
switch (caster.GetAreaId())
{
case Misc.AreaIdBittertidelake:
caster.CastSpell(caster, SpellIds.SummonSpiritAtah);
break;
case Misc.AreaIdRiversheart:
caster.CastSpell(caster, SpellIds.SummonSpiritHakhalan);
break;
case Misc.AreaIdWintergraspriver:
caster.CastSpell(caster, SpellIds.SummonSpiritKoosu);
break;
default:
break;
}
}
public override void Register()
{
OnEffectHitTarget.Add(new EffectHandler(HandleScript, 0, SpellEffectName.ScriptEffect));
}
}
[Script] // 49213 - Defending Wyrmrest Temple: Character Script Cast From Gossip
class spell_q12372_cast_from_gossip_trigger : SpellScript
{
@@ -1444,41 +1205,6 @@ namespace Scripts.Spells.Quest
}
}
[Script] // 56565 - Bear Flank Master
class spell_q13011_bear_flank_master : SpellScript
{
public override bool Validate(SpellInfo spellInfo)
{
return ValidateSpellInfo(SpellIds.BearFlankMaster, SpellIds.CreateBearFlank);
}
public override bool Load()
{
return GetCaster().IsTypeId(TypeId.Unit);
}
void HandleScript(uint effIndex)
{
Player player = GetHitPlayer();
if (player)
{
if (RandomHelper.randChance(50))
{
Creature creature = GetCaster().ToCreature();
player.CastSpell(creature, SpellIds.BearFlankFail);
creature.GetAI().Talk(0, player);
}
else
player.CastSpell(player, SpellIds.CreateBearFlank);
}
}
public override void Register()
{
OnEffectHitTarget.Add(new EffectHandler(HandleScript, 0, SpellEffectName.ScriptEffect));
}
}
// 57385 - Argent Cannon
[Script] // 57412 - Reckoning Bomb
class spell_q13086_cannons_target : SpellScript