Core/Creatures: Implement Ground/FlyingMountDisplayID from creature_summoned_data

Port From (https://github.com/TrinityCore/TrinityCore/commit/8cbc3923a18add49dd483e0e6e9d851f1d4d59f7)
This commit is contained in:
hondacrx
2022-07-16 19:41:59 -04:00
parent 62c5f44f37
commit 3a46790636
2 changed files with 65 additions and 0 deletions
+38
View File
@@ -4695,6 +4695,44 @@ namespace Scripts.Spells.Generic
}
}
[Script] // 147066 - (Serverside/Non-DB2) Generic - Mount Check Aura
class spell_gen_mount_check_aura : AuraScript
{
void OnPeriodic(AuraEffect aurEff)
{
Unit target = GetTarget();
uint mountDisplayId = 0;
TempSummon tempSummon = target.ToTempSummon();
if (tempSummon == null)
return;
Player summoner = tempSummon.GetSummoner()?.ToPlayer();
if (summoner == null)
return;
if (summoner.IsMounted() && (!summoner.IsInCombat() || summoner.IsFlying()))
{
CreatureSummonedData summonedData = Global.ObjectMgr.GetCreatureSummonedData(tempSummon.GetEntry());
if (summonedData != null)
{
if (summoner.IsFlying() && summonedData.FlyingMountDisplayID.HasValue)
mountDisplayId = summonedData.FlyingMountDisplayID.Value;
else if (summonedData.GroundMountDisplayID.HasValue)
mountDisplayId = summonedData.GroundMountDisplayID.Value;
}
}
if (mountDisplayId != target.GetMountDisplayId())
target.SetMountDisplayId(mountDisplayId);
}
public override void Register()
{
OnEffectPeriodic.Add(new EffectPeriodicHandler(OnPeriodic, 0, AuraType.PeriodicDummy));
}
}
// 40307 - Stasis Field
class StasisFieldSearcher : ICheck<Unit>
{
@@ -0,0 +1,27 @@
-- Serverside Spell
DELETE FROM `serverside_spell` WHERE `ID` = 147066;
INSERT INTO `serverside_spell` (`Id`, `DifficultyID`, `CategoryId`, `Dispel`, `Mechanic`, `Attributes`, `AttributesEx`, `AttributesEx2`, `AttributesEx3`, `AttributesEx4`, `AttributesEx5`, `AttributesEx6`, `AttributesEx7`, `AttributesEx8`, `AttributesEx9`, `AttributesEx10`, `AttributesEx11`, `AttributesEx12`, `AttributesEx13`, `AttributesEx14`, `Stances`, `StancesNot`, `Targets`, `TargetCreatureType`, `RequiresSpellFocus`, `FacingCasterFlags`, `CasterAuraState`, `TargetAuraState`, `ExcludeCasterAuraState`, `ExcludeTargetAuraState`, `CasterAuraSpell`, `TargetAuraSpell`, `ExcludeCasterAuraSpell`, `ExcludeTargetAuraSpell`, `CastingTimeIndex`, `RecoveryTime`, `CategoryRecoveryTime`, `StartRecoveryCategory`, `StartRecoveryTime`, `InterruptFlags`, `AuraInterruptFlags1`, `AuraInterruptFlags2`, `ChannelInterruptFlags1`, `ChannelInterruptFlags2`, `ProcFlags`, `ProcFlags2`, `ProcChance`, `ProcCharges`, `ProcCooldown`, `ProcBasePPM`, `MaxLevel`, `BaseLevel`, `SpellLevel`, `DurationIndex`, `RangeIndex`, `Speed`, `LaunchDelay`, `StackAmount`, `EquippedItemClass`, `EquippedItemSubClassMask`, `EquippedItemInventoryTypeMask`, `ContentTuningId`, `SpellName`, `ConeAngle`, `ConeWidth`, `MaxTargetLevel`, `MaxAffectedTargets`, `SpellFamilyName`, `SpellFamilyFlags1`, `SpellFamilyFlags2`, `SpellFamilyFlags3`, `SpellFamilyFlags4`, `DmgClass`, `PreventionType`, `AreaGroupId`, `SchoolMask`, `ChargeCategoryId`) VALUES
(147066, 0, 0, 0, 0, 0x9000080, 0x20, 0x4000, 0x10000000, 0x80, 0x1000008, 0x1000, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21, 1, 0, 0, 0, -1, 0, 0, 0, '(Serverside/Non-DB2) Generic - Mount Check Aura', 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
DELETE FROM `serverside_spell_effect` WHERE `SpellID` = 147066;
INSERT INTO `serverside_spell_effect` (`SpellID`, `EffectIndex`, `DifficultyID`, `Effect`, `EffectAura`, `EffectAmplitude`, `EffectAttributes`, `EffectAuraPeriod`, `EffectBonusCoefficient`, `EffectChainAmplitude`, `EffectChainTargets`, `EffectItemType`, `EffectMechanic`, `EffectPointsPerResource`, `EffectPosFacing`, `EffectRealPointsPerLevel`, `EffectTriggerSpell`, `BonusCoefficientFromAP`, `PvpMultiplier`, `Coefficient`, `Variance`, `ResourceCoefficient`, `GroupSizeBasePointsCoefficient`, `EffectBasePoints`, `EffectMiscValue1`, `EffectMiscValue2`, `EffectRadiusIndex1`, `EffectRadiusIndex2`, `EffectSpellClassMask1`, `EffectSpellClassMask2`, `EffectSpellClassMask3`, `EffectSpellClassMask4`, `ImplicitTarget1`, `ImplicitTarget2`) VALUES
(147066, 0, 0, 6, 226, 0, 0, 500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
-- Spell Script
DELETE FROM `spell_script_names` WHERE `spell_id`= 147066;
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
(147066, 'spell_gen_mount_check_aura');
-- Creature Summoned
DELETE FROM `creature_summoned_data` WHERE `CreatureID` IN (182084, 182088);
INSERT INTO `creature_summoned_data` (`CreatureID`, `CreatureIDVisibleToSummoner`, `GroundMountDisplayID`, `FlyingMountDisplayID`) VALUES
(182084, 182085, 103104, 103104),
(182088, 182089, 103104, 103104);
-- Creature Addon
DELETE FROM `creature_template_addon` WHERE `entry` IN (90382, 91911, 182084, 182088);
INSERT INTO `creature_template_addon` (`entry`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `aiAnimKit`, `movementAnimKit`, `meleeAnimKit`, `visibilityDistanceType`, `auras`) VALUES
(90382, 0, 0, 0, 1, 0, 0, 0, 0, 0, '147066'),
(91911, 0, 0, 0, 1, 0, 0, 0, 0, 0, '147066'),
(182084, 0, 0, 0, 1, 0, 0, 0, 0, 0, '147066'),
(182088, 0, 0, 0, 1, 0, 0, 0, 0, 0, '147066');