mirror of
https://github.com/azerothcore/azerothcore-wotlk.git
synced 2025-11-10 21:04:26 +08:00
Compare commits
12 Commits
f818dc024d
...
82daffc8b6
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
82daffc8b6 | ||
|
|
d4cd580ddc | ||
|
|
37833c66e6 | ||
|
|
ec274182a2 | ||
|
|
d9b2e775e3 | ||
|
|
c85c86b285 | ||
|
|
125e1aec9d | ||
|
|
fca2e12056 | ||
|
|
c9aedce67f | ||
|
|
e1d28ae712 | ||
|
|
983557345e | ||
|
|
743a764c3c |
5
data/sql/updates/db_world/2025_11_08_01.sql
Normal file
5
data/sql/updates/db_world/2025_11_08_01.sql
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
-- DB update 2025_11_08_00 -> 2025_11_08_01
|
||||||
|
--
|
||||||
|
DELETE FROM `conditions` WHERE (`SourceTypeOrReferenceId` = 17) AND (`SourceGroup` = 0) AND (`SourceEntry` = 40969) AND (`SourceId` = 0) AND (`ElseGroup` = 0) AND (`ConditionTypeOrReference` = 31) AND (`ConditionTarget` = 1) AND (`ConditionValue1` = 3) AND (`ConditionValue2` = 23689) AND (`ConditionValue3` = 0);
|
||||||
|
INSERT INTO `conditions` (`SourceTypeOrReferenceId`, `SourceGroup`, `SourceEntry`, `SourceId`, `ElseGroup`, `ConditionTypeOrReference`, `ConditionTarget`, `ConditionValue1`, `ConditionValue2`, `ConditionValue3`, `NegativeCondition`, `ErrorType`, `ErrorTextId`, `ScriptName`, `Comment`) VALUES
|
||||||
|
(17, 0, 40969, 0, 0, 31, 1, 3, 23689, 0, 0, 0, 0, '', 'Malister Frost Wand require Proto-Drake');
|
||||||
172
data/sql/updates/db_world/2025_11_08_02.sql
Normal file
172
data/sql/updates/db_world/2025_11_08_02.sql
Normal file
@ -0,0 +1,172 @@
|
|||||||
|
-- DB update 2025_11_08_01 -> 2025_11_08_02
|
||||||
|
SET @BossXPMod = 7.5,
|
||||||
|
@FinalBossXPMod = 10;
|
||||||
|
|
||||||
|
UPDATE `creature_template` SET `ExperienceModifier` = @BossXPMod WHERE `entry` IN (
|
||||||
|
-- Utgarde Keep
|
||||||
|
23953, -- Prince Keleseth
|
||||||
|
30748,
|
||||||
|
24200, -- Skarvald the Constructor
|
||||||
|
31679,
|
||||||
|
24201, -- Dalronn the Controller
|
||||||
|
31656,
|
||||||
|
-- Azjol-Nerub
|
||||||
|
28684, -- Krik'thir the Gatewatcher
|
||||||
|
31612,
|
||||||
|
28921, -- Hadronox
|
||||||
|
31611,
|
||||||
|
-- Ahn'kahet: The Old Kingdom
|
||||||
|
29309, -- Elder Nadox
|
||||||
|
31456,
|
||||||
|
29308, -- Prince Taldaram
|
||||||
|
31469,
|
||||||
|
29310, -- Jedoga Shadowseeker
|
||||||
|
31465,
|
||||||
|
30258, -- Amanitar
|
||||||
|
31463,
|
||||||
|
-- The Nexus
|
||||||
|
26731, -- Grand Magus Telestra
|
||||||
|
30510,
|
||||||
|
26763, -- Anomalus
|
||||||
|
30529,
|
||||||
|
26794, -- Ormorok the Tree-Shaper
|
||||||
|
30532,
|
||||||
|
26796, -- Commander Stoutbeard
|
||||||
|
30398,
|
||||||
|
26798, -- Commander Kolurg
|
||||||
|
30397,
|
||||||
|
-- Drak'Tharon Keep
|
||||||
|
26630, -- Trollgore
|
||||||
|
31362,
|
||||||
|
26631, -- Novos the Summoner
|
||||||
|
31350,
|
||||||
|
-- 27483, -- King Dred, observed to not give as much experience as this
|
||||||
|
-- 31349,
|
||||||
|
-- The Violet Hold
|
||||||
|
29315, -- Erekem
|
||||||
|
31507,
|
||||||
|
29316, -- Moragg
|
||||||
|
31510,
|
||||||
|
29313, -- Ichoron
|
||||||
|
31508,
|
||||||
|
29266, -- Xevozz
|
||||||
|
31511,
|
||||||
|
29312, -- Lavanthor
|
||||||
|
31509,
|
||||||
|
29314, -- Zuramat the Obliterator
|
||||||
|
31512,
|
||||||
|
-- Gundrak
|
||||||
|
29304, -- Slad'ran
|
||||||
|
31370,
|
||||||
|
-- 29573, -- Drakkari Elemental, observed to not give as much experience as this
|
||||||
|
-- 31367,
|
||||||
|
29305, -- Moorabi
|
||||||
|
30530,
|
||||||
|
29932, -- Eck the Ferocious
|
||||||
|
-- Halls of Stone
|
||||||
|
27975, -- Maiden of Grief
|
||||||
|
31384,
|
||||||
|
27977, -- Krystallus
|
||||||
|
31381,
|
||||||
|
-- Halls of Lightning
|
||||||
|
28586, -- General Bjarngrim
|
||||||
|
31533,
|
||||||
|
28587, -- Volkhan
|
||||||
|
31536,
|
||||||
|
28546, -- Ionar
|
||||||
|
31537,
|
||||||
|
-- The Oculus
|
||||||
|
27654, -- Drakos the Interrogator
|
||||||
|
31558,
|
||||||
|
27447, -- Varos Cloudstrider
|
||||||
|
31559,
|
||||||
|
27655, -- Mage-Lord Urom
|
||||||
|
31560,
|
||||||
|
-- Utgarde Pinnacle
|
||||||
|
26668, -- Svala Sorrowgrave
|
||||||
|
30810,
|
||||||
|
26687, -- Gortok Palehoof
|
||||||
|
30774,
|
||||||
|
26693, -- Skadi the Ruthless
|
||||||
|
30807,
|
||||||
|
-- The Culling of Stratholme
|
||||||
|
26529, -- Meathook
|
||||||
|
31211,
|
||||||
|
26530, -- Salramm the Fleshcrafter
|
||||||
|
31212,
|
||||||
|
26532, -- Chrono-Lord Epoch
|
||||||
|
31215,
|
||||||
|
32273, -- Infinite Corruptor
|
||||||
|
32313,
|
||||||
|
-- Trial of the Champion
|
||||||
|
34705, -- Marshal Jacob Alerius
|
||||||
|
36088,
|
||||||
|
34702, -- Ambrose Boltspark
|
||||||
|
36082,
|
||||||
|
34701, -- Colosos
|
||||||
|
36083,
|
||||||
|
34657, -- Jaelyne Evensong
|
||||||
|
36086,
|
||||||
|
34703, -- Lana Stouthammer
|
||||||
|
36087,
|
||||||
|
35572, -- Mokra the Skullcrusher
|
||||||
|
36089,
|
||||||
|
35569, -- Eressea Dawnsinger
|
||||||
|
36085,
|
||||||
|
35571, -- Runok Wildmane
|
||||||
|
36090,
|
||||||
|
35570, -- Zul'tore
|
||||||
|
36091,
|
||||||
|
35617, -- Deathstalker Visceri
|
||||||
|
36084,
|
||||||
|
35119, -- Eadric the Pure
|
||||||
|
35518,
|
||||||
|
34928, -- Argent Confessor Paletress
|
||||||
|
35517,
|
||||||
|
-- The Forge of Souls
|
||||||
|
36497, -- Bronjahm
|
||||||
|
36498,
|
||||||
|
-- Pit of Saron
|
||||||
|
36494, -- Forgemaster Garfrost
|
||||||
|
37613,
|
||||||
|
36476, -- Ick
|
||||||
|
37627,
|
||||||
|
-- Halls of Reflection
|
||||||
|
38112, -- Falric
|
||||||
|
38599,
|
||||||
|
38113, -- Marwyn
|
||||||
|
38603
|
||||||
|
);
|
||||||
|
|
||||||
|
UPDATE `creature_template` SET `ExperienceModifier` = @FinalBossXPMod WHERE `entry` IN (
|
||||||
|
23954, -- Ingvar the Plunderer, Utgarde Keep
|
||||||
|
31673,
|
||||||
|
29120, -- Anub'arak, Azjol-Nerub
|
||||||
|
31610,
|
||||||
|
29311, -- Herald Volazj,
|
||||||
|
31464,
|
||||||
|
26723, -- Keristrasza
|
||||||
|
30540,
|
||||||
|
26632, -- The Prophet Tharon'ja
|
||||||
|
31360,
|
||||||
|
31134, -- Cyanigosa
|
||||||
|
31506,
|
||||||
|
29306, -- Gal'darah
|
||||||
|
31368,
|
||||||
|
27978, -- Sjonnir The Ironshaper
|
||||||
|
31386,
|
||||||
|
28923, -- Loken
|
||||||
|
31538,
|
||||||
|
27656, -- Ley-Guardian Eregos
|
||||||
|
31561,
|
||||||
|
26861, -- King Ymiron
|
||||||
|
30788,
|
||||||
|
26533, -- Mal'Ganis
|
||||||
|
31217,
|
||||||
|
35451, -- The Black Knight, Trial of the Champion
|
||||||
|
35490,
|
||||||
|
36502, -- Devourer of Souls, Forge of Souls
|
||||||
|
37677,
|
||||||
|
36658, -- Scourgelord Tyrannus, Pit of Saron
|
||||||
|
36938
|
||||||
|
);
|
||||||
3
data/sql/updates/db_world/2025_11_09_00.sql
Normal file
3
data/sql/updates/db_world/2025_11_09_00.sql
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
-- DB update 2025_11_08_02 -> 2025_11_09_00
|
||||||
|
--
|
||||||
|
UPDATE `creature_addon` SET `visibilityDistanceType` = 3 WHERE `guid` = 103278;
|
||||||
3
data/sql/updates/db_world/2025_11_09_01.sql
Normal file
3
data/sql/updates/db_world/2025_11_09_01.sql
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
-- DB update 2025_11_09_00 -> 2025_11_09_01
|
||||||
|
--
|
||||||
|
UPDATE `creature_template` SET `flags_extra` = `flags_extra`|64 WHERE `entry` IN (28220, 28218, 28242, 28103, 28212, 28207, 28170);
|
||||||
@ -19586,12 +19586,6 @@ void Unit::_ExitVehicle(Position const* exitPosition)
|
|||||||
|
|
||||||
sScriptMgr->AnticheatSetUnderACKmount(player);
|
sScriptMgr->AnticheatSetUnderACKmount(player);
|
||||||
}
|
}
|
||||||
else if (HasUnitMovementFlag(MOVEMENTFLAG_ROOT))
|
|
||||||
{
|
|
||||||
WorldPacket data(SMSG_SPLINE_MOVE_UNROOT, 8);
|
|
||||||
data << GetPackGUID();
|
|
||||||
SendMessageToSet(&data, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
// xinef: hack for flameleviathan seat vehicle
|
// xinef: hack for flameleviathan seat vehicle
|
||||||
VehicleEntry const* vehicleInfo = vehicle->GetVehicleInfo();
|
VehicleEntry const* vehicleInfo = vehicle->GetVehicleInfo();
|
||||||
|
|||||||
@ -133,13 +133,13 @@ struct boss_anub_arak : public BossAI
|
|||||||
DoCastSelf(SPELL_IMPALE_PERIODIC, true);
|
DoCastSelf(SPELL_IMPALE_PERIODIC, true);
|
||||||
|
|
||||||
++_submergePhase;
|
++_submergePhase;
|
||||||
|
events.Reset();
|
||||||
ScheduleSubmerged();
|
ScheduleSubmerged();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScheduleEmerged()
|
void ScheduleEmerged()
|
||||||
{
|
{
|
||||||
events.Reset();
|
|
||||||
events.SetPhase(PHASE_EMERGED);
|
events.SetPhase(PHASE_EMERGED);
|
||||||
events.ScheduleEvent(EVENT_CARRION_BEETLES, 6500ms, 0, PHASE_EMERGED);
|
events.ScheduleEvent(EVENT_CARRION_BEETLES, 6500ms, 0, PHASE_EMERGED);
|
||||||
events.ScheduleEvent(EVENT_LEECHING_SWARM, 20s, 0, PHASE_EMERGED);
|
events.ScheduleEvent(EVENT_LEECHING_SWARM, 20s, 0, PHASE_EMERGED);
|
||||||
@ -148,7 +148,6 @@ struct boss_anub_arak : public BossAI
|
|||||||
|
|
||||||
void ScheduleSubmerged()
|
void ScheduleSubmerged()
|
||||||
{
|
{
|
||||||
events.Reset();
|
|
||||||
events.SetPhase(PHASE_SUBMERGED);
|
events.SetPhase(PHASE_SUBMERGED);
|
||||||
events.ScheduleEvent(EVENT_EMERGE, 60s, 0, PHASE_SUBMERGED);
|
events.ScheduleEvent(EVENT_EMERGE, 60s, 0, PHASE_SUBMERGED);
|
||||||
|
|
||||||
@ -209,14 +208,13 @@ struct boss_anub_arak : public BossAI
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void JustEngagedWith(Unit* who) override
|
void JustEngagedWith(Unit* /*who*/) override
|
||||||
{
|
{
|
||||||
BossAI::JustEngagedWith(who);
|
|
||||||
Talk(SAY_AGGRO);
|
Talk(SAY_AGGRO);
|
||||||
instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT);
|
instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_TIMED_START_EVENT);
|
||||||
|
|
||||||
events.SetPhase(PHASE_EMERGED);
|
events.SetPhase(PHASE_EMERGED);
|
||||||
events.ScheduleEvent(EVENT_CLOSE_DOORS, 5s);
|
events.ScheduleEvent(EVENT_CLOSE_DOORS, 5s, 0, PHASE_EMERGED);
|
||||||
ScheduleEmerged();
|
ScheduleEmerged();
|
||||||
|
|
||||||
// set up world triggers
|
// set up world triggers
|
||||||
@ -288,7 +286,8 @@ struct boss_anub_arak : public BossAI
|
|||||||
if (_remainingLargeSummonsBeforeEmerge == 0)
|
if (_remainingLargeSummonsBeforeEmerge == 0)
|
||||||
{
|
{
|
||||||
events.Reset();
|
events.Reset();
|
||||||
events.ScheduleEvent(EVENT_EMERGE, 5s);
|
events.SetPhase(PHASE_SUBMERGED);
|
||||||
|
events.ScheduleEvent(EVENT_EMERGE, 5s, 0, PHASE_SUBMERGED);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -333,10 +332,10 @@ struct boss_anub_arak : public BossAI
|
|||||||
DoCastSelf(SPELL_SELF_ROOT, true);
|
DoCastSelf(SPELL_SELF_ROOT, true);
|
||||||
me->DisableRotate(true);
|
me->DisableRotate(true);
|
||||||
me->SendMovementFlagUpdate();
|
me->SendMovementFlagUpdate();
|
||||||
events.ScheduleEvent(EVENT_ENABLE_ROTATE, 3300ms);
|
events.ScheduleEvent(EVENT_ENABLE_ROTATE, 3300ms, 0, PHASE_EMERGED);
|
||||||
DoCast(target, SPELL_POUND);
|
DoCast(target, SPELL_POUND);
|
||||||
}
|
}
|
||||||
events.ScheduleEvent(EVENT_POUND, 18s);
|
events.ScheduleEvent(EVENT_POUND, 18s, 0, PHASE_EMERGED);
|
||||||
break;
|
break;
|
||||||
case EVENT_ENABLE_ROTATE:
|
case EVENT_ENABLE_ROTATE:
|
||||||
me->RemoveAurasDueToSpell(SPELL_SELF_ROOT);
|
me->RemoveAurasDueToSpell(SPELL_SELF_ROOT);
|
||||||
|
|||||||
@ -33,7 +33,6 @@ enum Yells
|
|||||||
enum Spells
|
enum Spells
|
||||||
{
|
{
|
||||||
SPELL_CURSE_OF_LIFE = 49527,
|
SPELL_CURSE_OF_LIFE = 49527,
|
||||||
SPELL_RAIN_OF_FIRE = 49518,
|
|
||||||
SPELL_SHADOW_VOLLEY = 49528,
|
SPELL_SHADOW_VOLLEY = 49528,
|
||||||
|
|
||||||
// flesh spells
|
// flesh spells
|
||||||
@ -56,7 +55,6 @@ enum Misc
|
|||||||
ACTION_TURN_BONES = 1,
|
ACTION_TURN_BONES = 1,
|
||||||
|
|
||||||
EVENT_SPELL_CURSE_OF_LIFE = 1,
|
EVENT_SPELL_CURSE_OF_LIFE = 1,
|
||||||
EVENT_SPELL_RAIN_OF_FIRE = 2,
|
|
||||||
EVENT_SPELL_SHADOW_VOLLEY = 3,
|
EVENT_SPELL_SHADOW_VOLLEY = 3,
|
||||||
EVENT_SPELL_EYE_BEAM = 4,
|
EVENT_SPELL_EYE_BEAM = 4,
|
||||||
EVENT_SPELL_LIGHTNING_BREATH = 5,
|
EVENT_SPELL_LIGHTNING_BREATH = 5,
|
||||||
@ -97,7 +95,6 @@ public:
|
|||||||
Talk(SAY_AGGRO);
|
Talk(SAY_AGGRO);
|
||||||
BossAI::JustEngagedWith(who);
|
BossAI::JustEngagedWith(who);
|
||||||
events.ScheduleEvent(EVENT_SPELL_CURSE_OF_LIFE, 5s);
|
events.ScheduleEvent(EVENT_SPELL_CURSE_OF_LIFE, 5s);
|
||||||
events.ScheduleEvent(EVENT_SPELL_RAIN_OF_FIRE, 14s, 18s);
|
|
||||||
events.ScheduleEvent(EVENT_SPELL_SHADOW_VOLLEY, 8s, 10s);
|
events.ScheduleEvent(EVENT_SPELL_SHADOW_VOLLEY, 8s, 10s);
|
||||||
events.ScheduleEvent(EVENT_SPELL_TURN_FLESH, 1s);
|
events.ScheduleEvent(EVENT_SPELL_TURN_FLESH, 1s);
|
||||||
}
|
}
|
||||||
@ -146,17 +143,11 @@ public:
|
|||||||
switch (events.ExecuteEvent())
|
switch (events.ExecuteEvent())
|
||||||
{
|
{
|
||||||
case EVENT_SPELL_CURSE_OF_LIFE:
|
case EVENT_SPELL_CURSE_OF_LIFE:
|
||||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 30.0f, true))
|
DoCastRandomTarget(SPELL_CURSE_OF_LIFE, 0, 30.0f, false);
|
||||||
me->CastSpell(target, SPELL_CURSE_OF_LIFE, false);
|
|
||||||
events.ScheduleEvent(EVENT_SPELL_CURSE_OF_LIFE, 13s);
|
events.ScheduleEvent(EVENT_SPELL_CURSE_OF_LIFE, 13s);
|
||||||
break;
|
break;
|
||||||
case EVENT_SPELL_RAIN_OF_FIRE:
|
|
||||||
if (Unit* target = SelectTarget(SelectTargetMethod::Random, 0, 30.0f, true))
|
|
||||||
me->CastSpell(target, SPELL_RAIN_OF_FIRE, false);
|
|
||||||
events.ScheduleEvent(EVENT_SPELL_RAIN_OF_FIRE, 16s);
|
|
||||||
break;
|
|
||||||
case EVENT_SPELL_SHADOW_VOLLEY:
|
case EVENT_SPELL_SHADOW_VOLLEY:
|
||||||
me->CastSpell(me, SPELL_SHADOW_VOLLEY, false);
|
DoCastAOE(SPELL_SHADOW_VOLLEY);
|
||||||
events.ScheduleEvent(EVENT_SPELL_SHADOW_VOLLEY, 9s);
|
events.ScheduleEvent(EVENT_SPELL_SHADOW_VOLLEY, 9s);
|
||||||
break;
|
break;
|
||||||
case EVENT_SPELL_TURN_FLESH:
|
case EVENT_SPELL_TURN_FLESH:
|
||||||
@ -173,9 +164,8 @@ public:
|
|||||||
events.ScheduleEvent(EVENT_SPELL_TURN_FLESH, 1s);
|
events.ScheduleEvent(EVENT_SPELL_TURN_FLESH, 1s);
|
||||||
break;
|
break;
|
||||||
case EVENT_TURN_FLESH_REAL:
|
case EVENT_TURN_FLESH_REAL:
|
||||||
me->CastSpell(me, SPELL_DUMMY, true);
|
DoCastSelf(SPELL_DUMMY, true);
|
||||||
|
me->ResumeChasingVictim();
|
||||||
me->GetMotionMaster()->MoveChase(me->GetVictim());
|
|
||||||
events.ScheduleEvent(EVENT_SPELL_EYE_BEAM, 11s);
|
events.ScheduleEvent(EVENT_SPELL_EYE_BEAM, 11s);
|
||||||
events.ScheduleEvent(EVENT_SPELL_LIGHTNING_BREATH, 3s);
|
events.ScheduleEvent(EVENT_SPELL_LIGHTNING_BREATH, 3s);
|
||||||
events.ScheduleEvent(EVENT_SPELL_POISON_CLOUD, 6s);
|
events.ScheduleEvent(EVENT_SPELL_POISON_CLOUD, 6s);
|
||||||
@ -199,7 +189,6 @@ public:
|
|||||||
me->CastSpell(me, SPELL_CLEAR_GIFT, true);
|
me->CastSpell(me, SPELL_CLEAR_GIFT, true);
|
||||||
events.Reset();
|
events.Reset();
|
||||||
events.ScheduleEvent(EVENT_SPELL_CURSE_OF_LIFE, 1s);
|
events.ScheduleEvent(EVENT_SPELL_CURSE_OF_LIFE, 1s);
|
||||||
events.ScheduleEvent(EVENT_SPELL_RAIN_OF_FIRE, 12s, 14s);
|
|
||||||
events.ScheduleEvent(EVENT_SPELL_SHADOW_VOLLEY, 8s, 10s);
|
events.ScheduleEvent(EVENT_SPELL_SHADOW_VOLLEY, 8s, 10s);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@ -249,7 +238,6 @@ class spell_tharon_ja_dummy_aura : public AuraScript
|
|||||||
{
|
{
|
||||||
PreventDefaultAction();
|
PreventDefaultAction();
|
||||||
GetUnitOwner()->GetThreatMgr().ResetAllThreat();
|
GetUnitOwner()->GetThreatMgr().ResetAllThreat();
|
||||||
GetUnitOwner()->GetMotionMaster()->Clear();
|
|
||||||
GetUnitOwner()->CastSpell((Unit*)nullptr, SPELL_TURN_BONES, false);
|
GetUnitOwner()->CastSpell((Unit*)nullptr, SPELL_TURN_BONES, false);
|
||||||
GetUnitOwner()->GetAI()->DoAction(ACTION_TURN_BONES);
|
GetUnitOwner()->GetAI()->DoAction(ACTION_TURN_BONES);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user