Skip to content

Commit 5060b24

Browse files
Merge AzerothCore 3.3.5 to ElunaAzerothcore [skip ci]
2 parents 05c035e + 154a4a0 commit 5060b24

10 files changed

Lines changed: 740 additions & 149 deletions

File tree

apps/codestyle/codestyle-sql.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ def insert_delete_safety_check(file: io, file_path: str) -> None:
191191

192192
# Parse all the file
193193
for line_number, line in enumerate(file, start = 1):
194-
if line.startswith("--"):
194+
if line.strip().startswith("--"):
195195
continue
196196
if "INSERT" in line and "DELETE" not in previous_line:
197197
print(f"❌ No DELETE keyword found before the INSERT in {file_path} at line {line_number}\nIf this error is intended, please notify a maintainer")
@@ -323,11 +323,13 @@ def backtick_check(file: io, file_path: str) -> None:
323323

324324
for line_number, line in enumerate(file, start=1):
325325
# Ignore comments
326-
if line.startswith('--'):
326+
if line.strip().startswith('--'):
327327
continue
328328

329329
# Sanitize single- and doublequotes to prevent false positives
330330
sanitized_line = quote_pattern.sub('', line)
331+
# Strip inline comments (safe to do after removing quoted strings)
332+
sanitized_line = re.sub(r'--.*$', '', sanitized_line)
331333
matches = pattern.findall(sanitized_line)
332334

333335
for clause, content in matches:

apps/installer/includes/os_configs/windows.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,6 @@ fi
2424

2525
choco install -y --skip-checksums "${INSTALL_ARGS[@]}" cmake.install -y --installargs 'ADD_CMAKE_TO_PATH=System'
2626
choco install -y --skip-checksums "${INSTALL_ARGS[@]}" visualstudio2022-workload-nativedesktop
27-
choco install -y --skip-checksums "${INSTALL_ARGS[@]}" openssl --force --version=3.5.4
27+
choco install -y --skip-checksums "${INSTALL_ARGS[@]}" openssl --force --version=3.6.1
2828
choco install -y --skip-checksums "${INSTALL_ARGS[@]}" boost-msvc-14.3 --force --version=1.87.0
2929
choco install -y --skip-checksums "${INSTALL_ARGS[@]}" mysql --force --version=8.4.6
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
-- DB update 2026_01_30_01 -> 2026_01_31_00
2+
--
3+
UPDATE `creature_loot_template` SET `Chance` = 40 WHERE `Item` = 42422 AND `Entry` IN (29880, 30037, 30243, 30250, 30632, 30725);
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
-- DB update 2026_01_31_00 -> 2026_01_31_01
2+
--
3+
UPDATE `creature_template` SET `faction` = 634 WHERE (`entry` IN (23772, 29479));

data/sql/updates/db_world/2026_01_31_02.sql

Lines changed: 308 additions & 0 deletions
Large diffs are not rendered by default.

data/sql/updates/db_world/2026_01_31_03.sql

Lines changed: 314 additions & 0 deletions
Large diffs are not rendered by default.

src/server/scripts/Northrend/Naxxramas/boss_thaddius.cpp

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,15 @@ class boss_thaddius : public CreatureScript
129129
uint32 resetTimer{};
130130
bool ballLightningEnabled;
131131

132+
bool IsAnyPlayerInMeleeRange() const
133+
{
134+
for (auto const& ref : me->GetThreatMgr().GetThreatList())
135+
if (Unit* target = ref->getTarget())
136+
if (target->IsPlayer() && me->IsWithinMeleeRange(target))
137+
return true;
138+
return false;
139+
}
140+
132141
void DoAction(int32 param) override
133142
{
134143
if (param == ACTION_SUMMON_DIED)
@@ -327,17 +336,11 @@ class boss_thaddius : public CreatureScript
327336
break;
328337
}
329338

330-
if (me->IsWithinMeleeRange(me->GetVictim()))
331-
{
339+
if (IsAnyPlayerInMeleeRange())
332340
DoMeleeAttackIfReady();
333-
}
334-
else if (ballLightningEnabled)
335-
{
341+
else if (ballLightningEnabled && !IsAnyPlayerInMeleeRange())
336342
if (Unit* target = SelectTarget(SelectTargetMethod::MaxThreat))
337-
{
338343
me->CastSpell(target, SPELL_BALL_LIGHTNING, false);
339-
}
340-
}
341344
}
342345
};
343346
};

src/server/scripts/Northrend/Nexus/EyeOfEternity/boss_malygos.cpp

Lines changed: 19 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -188,16 +188,9 @@ enum MalygosLightOverrides
188188
LIGHT_OBSCURE_ARCANE_RUNES = 1825,
189189
};
190190

191-
struct boss_malygos : public ScriptedAI
191+
struct boss_malygos : public BossAI
192192
{
193-
boss_malygos(Creature* c) : ScriptedAI(c), summons(me)
194-
{
195-
pInstance = me->GetInstanceScript();
196-
}
197-
198-
InstanceScript* pInstance;
199-
EventMap events;
200-
SummonList summons;
193+
boss_malygos(Creature* creature) : BossAI(creature, DATA_MALYGOS) { }
201194

202195
uint32 timer1, timer2;
203196
uint8 IntroCounter;
@@ -211,9 +204,7 @@ struct boss_malygos : public ScriptedAI
211204

212205
void Reset() override
213206
{
214-
events.Reset();
215-
events.SetPhase(PHASE_NONE);
216-
summons.DespawnAll();
207+
_Reset();
217208

218209
timer1 = MalygosIntroIntervals[4];
219210
timer2 = INTRO_MOVEMENT_INTERVAL;
@@ -226,11 +217,7 @@ struct boss_malygos : public ScriptedAI
226217

227218
me->SetAnimTier(AnimTier::Fly);
228219

229-
if (pInstance)
230-
{
231-
pInstance->SetData(DATA_ENCOUNTER_STATUS, NOT_STARTED);
232-
pInstance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_YOU_DONT_HAVE_AN_ENTERNITY_EVENT);
233-
}
220+
instance->DoStopTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_YOU_DONT_HAVE_AN_ENTERNITY_EVENT);
234221
}
235222

236223
void MovementInform(uint32 type, uint32 id) override
@@ -305,14 +292,10 @@ struct boss_malygos : public ScriptedAI
305292

306293
void JustEngagedWith(Unit* /*who*/) override
307294
{
295+
_JustEngagedWith();
308296
events.Reset();
309-
DoZoneInCombat();
310-
311297
Talk(SAY_PHASE_1);
312-
313298
events.RescheduleEvent(EVENT_INTRO_MOVE_CENTER, 0ms, 1);
314-
if (pInstance)
315-
pInstance->SetData(DATA_ENCOUNTER_STATUS, IN_PROGRESS);
316299
}
317300

318301
void AttackStart(Unit* victim) override
@@ -372,8 +355,7 @@ struct boss_malygos : public ScriptedAI
372355
break;
373356
case EVENT_INTRO_MOVE_CENTER:
374357
{
375-
if (pInstance)
376-
pInstance->SetData(DATA_SET_IRIS_INACTIVE, 0);
358+
instance->SetData(DATA_SET_IRIS_INACTIVE, 0);
377359
summons.DespawnAll();
378360
me->InterruptNonMeleeSpells(true);
379361
me->RemoveAllAuras();
@@ -392,11 +374,8 @@ struct boss_malygos : public ScriptedAI
392374
}
393375
case EVENT_START_FIGHT:
394376
{
395-
if (pInstance)
396-
{
397-
pInstance->SetData(DATA_HIDE_IRIS_AND_PORTAL, 0);
398-
pInstance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_YOU_DONT_HAVE_AN_ENTERNITY_EVENT);
399-
}
377+
instance->SetData(DATA_HIDE_IRIS_AND_PORTAL, 0);
378+
instance->DoStartTimedAchievement(ACHIEVEMENT_TIMED_TYPE_EVENT, ACHIEV_YOU_DONT_HAVE_AN_ENTERNITY_EVENT);
400379
me->RemoveUnitFlag(UNIT_FLAG_NON_ATTACKABLE | UNIT_FLAG_PACIFIED);
401380
if (Unit* target = me->SelectNearestTarget(250.0f))
402381
{
@@ -689,19 +668,16 @@ struct boss_malygos : public ScriptedAI
689668

690669
me->GetThreatMgr().ClearAllThreat(); // players on vehicle are unattackable -> leads to EnterEvadeMode() because target is not acceptable!
691670

692-
// mount players:
693-
Map::PlayerList const& PlayerList = me->GetMap()->GetPlayers();
694-
if (!PlayerList.IsEmpty())
695-
for (Map::PlayerList::const_iterator i = PlayerList.begin(); i != PlayerList.end(); ++i)
696-
if (Player* player = i->GetSource())
697-
{
698-
sScriptMgr->AnticheatSetUnderACKmount(player);
699-
700-
if (!player->IsAlive() || player->IsGameMaster())
701-
continue;
671+
me->GetMap()->DoForAllPlayers([&](Player* player)
672+
{
673+
if (player->IsAlive() && !player->IsGameMaster())
674+
{
675+
sScriptMgr->AnticheatSetUnderACKmount(player);
676+
player->CastSpell(player, SPELL_SUMMON_RED_DRAGON_BUDDY, true);
677+
}
678+
});
702679

703-
player->CastSpell(player, SPELL_SUMMON_RED_DRAGON_BUDDY, true);
704-
}
680+
DoZoneInCombat();
705681

706682
events.RescheduleEvent(EVENT_SAY_PHASE_3_INTRO, 3s, 1);
707683
}
@@ -744,12 +720,9 @@ struct boss_malygos : public ScriptedAI
744720

745721
void JustDied(Unit* /*killer*/) override
746722
{
723+
_JustDied();
747724
Talk(SAY_DEATH);
748-
if (pInstance)
749-
{
750-
pInstance->DoUpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE, NPC_MALYGOS, 1);
751-
pInstance->SetData(DATA_ENCOUNTER_STATUS, DONE);
752-
}
725+
instance->DoUpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE, NPC_MALYGOS, 1);
753726
}
754727

755728
void KilledUnit(Unit* victim) override

src/server/scripts/Northrend/Nexus/EyeOfEternity/eye_of_eternity.h

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424
#define DataHeader "EOE"
2525
#define EyeOfEternityScriptName "instance_eye_of_eternity"
2626

27+
uint32 const EncounterCount = 1;
28+
2729
enum Objects
2830
{
2931
GO_NEXUS_PLATFORM = 193070,
@@ -52,8 +54,8 @@ enum NPCs
5254

5355
enum Data
5456
{
57+
DATA_MALYGOS = 0,
5558
DATA_IRIS_ACTIVATED,
56-
DATA_ENCOUNTER_STATUS,
5759
DATA_SET_IRIS_INACTIVE,
5860
DATA_HIDE_IRIS_AND_PORTAL,
5961
DATA_MALYGOS_GUID,
@@ -87,6 +89,11 @@ enum eAchiev
8789
ACHIEV_YOU_DONT_HAVE_AN_ENTERNITY_EVENT = 20387,
8890
};
8991

92+
enum EoEMisc : uint32
93+
{
94+
EVENT_IRIS_ACTIVATED = 20158
95+
};
96+
9097
/*** POSITIONS/WAYPOINTS BELOW ***/
9198

9299
#define INTRO_MOVEMENT_INTERVAL 25000

0 commit comments

Comments
 (0)