mirror of
https://gitcode.com/GitHub_Trending/az/azerothcore-wotlk.git
synced 2026-07-10 19:03:11 +00:00
fix(DB/Quest): Aces High! quest issues (#23924)
Co-authored-by: blinkysc <blinkysc@users.noreply.github.com> Co-authored-by: Gultask <100873791+Gultask@users.noreply.github.com> Co-authored-by: bench <heyitsbench@users.noreply.github.com> Co-authored-by: sogladev <sogladev@gmail.com>
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
-- Fix Aces High! quest issues (https://github.com/azerothcore/azerothcore-wotlk/issues/23834)
|
||||
|
||||
-- 1. Update Wyrmrest Skytalon (32535) spells per sniff (build 46368)
|
||||
-- Update VerifiedBuild for confirmed spells, add missing Blazing Speed, remove Flight aura (57403)
|
||||
UPDATE `creature_template_spell` SET `VerifiedBuild` = 46368 WHERE `CreatureID` = 32535 AND `Index` IN (0, 1, 2, 3, 4);
|
||||
DELETE FROM `creature_template_spell` WHERE `CreatureID` = 32535 AND `Index` IN (5, 6);
|
||||
INSERT INTO `creature_template_spell` (`CreatureID`, `Index`, `Spell`, `VerifiedBuild`) VALUES
|
||||
(32535, 5, 57092, 46368); -- Blazing Speed
|
||||
-- Add 57403 Flight aura
|
||||
UPDATE `creature_template_addon` SET `auras` = '57403' WHERE (`entry` = 32535);
|
||||
|
||||
-- 2. Set Scalesworn Elite (32534) to use SmartAI for combat abilities
|
||||
UPDATE `creature_template` SET `AIName` = 'SmartAI' WHERE `entry` = 32534;
|
||||
|
||||
-- 3. Add SmartAI scripts for Scalesworn Elite to cast Ice Shard (61269) and Arcane Surge (61272)
|
||||
DELETE FROM `smart_scripts` WHERE `entryorguid` = 32534 AND `source_type` = 0;
|
||||
INSERT INTO `smart_scripts` (`entryorguid`, `source_type`, `id`, `link`, `event_type`, `event_phase_mask`, `event_chance`, `event_flags`, `event_param1`, `event_param2`, `event_param3`, `event_param4`, `event_param5`, `event_param6`, `action_type`, `action_param1`, `action_param2`, `action_param3`, `action_param4`, `action_param5`, `action_param6`, `target_type`, `target_param1`, `target_param2`, `target_param3`, `target_param4`, `target_x`, `target_y`, `target_z`, `target_o`, `comment`) VALUES
|
||||
(32534, 0, 0, 0, 0, 0, 100, 0, 1000, 2000, 2000, 3000, 0, 0, 11, 61269, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Scalesworn Elite - In Combat - Cast Ice Shard'),
|
||||
(32534, 0, 1, 0, 0, 0, 100, 0, 8000, 12000, 15000, 20000, 0, 0, 11, 61272, 64, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 'Scalesworn Elite - In Combat - Cast Arcane Surge');
|
||||
|
||||
-- 4. Fix Corastrasza SmartAI to cast ride periodic on player (target_type 7) instead of self (target_type 1)
|
||||
UPDATE `smart_scripts` SET `target_type` = 7 WHERE `entryorguid` = 32548 AND `source_type` = 0 AND `id` = 3;
|
||||
|
||||
-- 5. Register Wyrmrest Skytalon Ride Periodic spell script (fixes auto-mount)
|
||||
DELETE FROM `spell_script_names` WHERE `spell_id` = 61244;
|
||||
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES (61244, 'spell_q13413_wyrmrest_skytalon_ride_periodic');
|
||||
@@ -501,8 +501,8 @@ void Vehicle::RemovePassenger(Unit* unit)
|
||||
|
||||
seat->second.Passenger.Reset();
|
||||
|
||||
// RemoveCharmedBy() clears MOVEMENTFLAG_FLYING, so cache this before uncharm.
|
||||
bool wasFlying = _me->IsFlying();
|
||||
// RemoveCharmedBy() clears flying movement state, so cache this before uncharm.
|
||||
bool canFly = _me->IsFlying() || _me->HasUnitMovementFlag(MOVEMENTFLAG_CAN_FLY) || _me->HasAuraType(SPELL_AURA_FLY);
|
||||
|
||||
if (_me->IsCreature() && unit->IsPlayer() && seat->second.SeatInfo->m_flags & VEHICLE_SEAT_FLAG_CAN_CONTROL)
|
||||
_me->RemoveCharmedBy(unit);
|
||||
@@ -519,7 +519,7 @@ void Vehicle::RemovePassenger(Unit* unit)
|
||||
}
|
||||
|
||||
// only for flyable vehicles
|
||||
if (wasFlying && !_me->GetInstanceId() && unit->IsPlayer() && !(unit->ToPlayer()->GetDelayedOperations() & DELAYED_VEHICLE_TELEPORT) && _me->GetEntry() != 30275 /*NPC_WILD_WYRM*/)
|
||||
if (canFly && !_me->GetInstanceId() && unit->IsPlayer() && !(unit->ToPlayer()->GetDelayedOperations() & DELAYED_VEHICLE_TELEPORT) && _me->GetEntry() != 30275 /*NPC_WILD_WYRM*/)
|
||||
_me->CastSpell(unit, VEHICLE_SPELL_PARACHUTE, true);
|
||||
|
||||
if (_me->IsCreature())
|
||||
|
||||
@@ -2512,6 +2512,29 @@ class spell_q9847_a_spirit_ally : public SpellScript
|
||||
}
|
||||
};
|
||||
|
||||
enum WyrmrestSkytalon
|
||||
{
|
||||
NPC_WYRMREST_SKYTALON = 32535
|
||||
};
|
||||
|
||||
class spell_q13413_wyrmrest_skytalon_ride_periodic : public AuraScript
|
||||
{
|
||||
PrepareAuraScript(spell_q13413_wyrmrest_skytalon_ride_periodic);
|
||||
|
||||
void HandlePeriodic(AuraEffect const* aurEff)
|
||||
{
|
||||
PreventDefaultAction();
|
||||
if (Unit* target = GetTarget())
|
||||
if (Creature* skytalon = target->FindNearestCreature(NPC_WYRMREST_SKYTALON, 20.0f))
|
||||
target->CastSpell(skytalon, GetSpellInfo()->Effects[aurEff->GetEffIndex()].TriggerSpell, true);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
{
|
||||
OnEffectPeriodic += AuraEffectPeriodicFn(spell_q13413_wyrmrest_skytalon_ride_periodic::HandlePeriodic, EFFECT_0, SPELL_AURA_PERIODIC_TRIGGER_SPELL);
|
||||
}
|
||||
};
|
||||
|
||||
void AddSC_quest_spell_scripts()
|
||||
{
|
||||
RegisterSpellScript(spell_q5561_kodo_roundup_kodo_kombobulator);
|
||||
@@ -2585,4 +2608,5 @@ void AddSC_quest_spell_scripts()
|
||||
RegisterSpellScript(spell_q4735_collect_rookery_egg);
|
||||
RegisterSpellScript(spell_q10651_q10692_book_of_fel_names);
|
||||
RegisterSpellScript(spell_q9847_a_spirit_ally);
|
||||
RegisterSpellScript(spell_q13413_wyrmrest_skytalon_ride_periodic);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user