Skip to content

Commit c5eb085

Browse files
authored
Merge branch 'azerothcore:master' into master
2 parents 6ab5e92 + f7ab757 commit c5eb085

File tree

13 files changed

+643
-217
lines changed

13 files changed

+643
-217
lines changed
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
-- DB update 2026_02_21_03 -> 2026_02_21_04
2+
DELETE FROM `spell_script_names` WHERE `spell_id` IN (56105, 55873);
3+
INSERT INTO `spell_script_names` (`spell_id`, `ScriptName`) VALUES
4+
(56105, 'spell_malygos_vortex_dummy'),
5+
(55873, 'spell_malygos_vortex_visual');
6+
7+
DELETE FROM `creature` WHERE `guid` IN (132304, 132305, 132306, 132307, 132308);
8+
INSERT INTO `creature`
9+
(`guid`, `id1`, `map`, `zoneId`, `areaId`, `spawnMask`, `phaseMask`, `equipment_id`,
10+
`position_x`, `position_y`, `position_z`, `orientation`,
11+
`spawntimesecs`, `wander_distance`, `currentwaypoint`,
12+
`curhealth`, `curmana`, `MovementType`, `npcflag`,
13+
`unit_flags`, `dynamicflags`, `ScriptName`, `VerifiedBuild`)
14+
VALUES
15+
(132304,30090,616,0,0,3,1,0,754.733,1301.51,283.379,5.58505,3600,0,0,12600,0,0,0,0,0,'',0),
16+
(132305,30090,616,0,0,3,1,0,754.521,1301.23,279.524,0.680678,3600,0,0,12600,0,0,0,0,0,'',0),
17+
(132306,30090,616,0,0,3,1,0,754.356,1301.48,285.733,5.96903,3600,0,0,12600,0,0,0,0,0,'',0),
18+
(132307,30090,616,0,0,3,1,0,754.192,1301.18,281.851,5.75959,3600,0,0,12600,0,0,0,0,0,'',0),
19+
(132308,30090,616,0,0,3,1,0,754.688,1301.8,287.295,1.25664,3600,0,0,12600,0,0,0,0,0,'',0);
20+
21+
UPDATE `creature_template` SET `unit_flags` = `unit_flags`|33554432, `VehicleId` = 214, `flags_extra` = `flags_extra`|2|128, `ScriptName` = '' WHERE `entry` = 30090;
22+
23+
DELETE FROM `creature_template_addon` WHERE `entry` = 30090;
24+
INSERT INTO `creature_template_addon` (`entry`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `visibilityDistanceType`, `auras`) VALUES
25+
(30090, 0, 0, 0, 0, 0, 0, '55883');
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
-- DB update 2026_02_21_04 -> 2026_02_22_00
2+
--
3+
DELETE FROM `creature_template_addon` WHERE `entry` = 30084;
4+
INSERT INTO `creature_template_addon` (`entry`, `path_id`, `mount`, `bytes1`, `bytes2`, `emote`, `visibilityDistanceType`, `auras`) VALUES
5+
(30084, 0, 0, 0, 0, 0, 0, '55845');
6+
7+
DELETE FROM `creature_template_movement` WHERE `CreatureId` = 30084;
8+
INSERT INTO `creature_template_movement` (`CreatureId`, `Flight`) VALUES
9+
(30084, 1);
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
-- DB update 2026_02_22_00 -> 2026_02_22_01
2+
--
3+
UPDATE `gameobject_template` SET `ScriptName` = '' WHERE `entry` IN (193958, 193960) AND `ScriptName` = 'go_the_focusing_iris';

src/server/apps/worldserver/CommandLine/CliRunnable.cpp

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,9 @@
2525
#include "World.h"
2626
#include <fmt/core.h>
2727

28-
#if AC_PLATFORM != AC_PLATFORM_WINDOWS
28+
#if AC_PLATFORM == AC_PLATFORM_WINDOWS
29+
#include <windows.h>
30+
#else
2931
#include "Chat.h"
3032
#include "ChatCommand.h"
3133
#include <cstring>
@@ -108,6 +110,10 @@ int kb_hit_return()
108110
void CliThread()
109111
{
110112
#if AC_PLATFORM == AC_PLATFORM_WINDOWS
113+
// Set console code pages to UTF-8
114+
SetConsoleCP(CP_UTF8);
115+
SetConsoleOutputCP(CP_UTF8);
116+
111117
// print this here the first time
112118
// later it will be printed after command queue updates
113119
PrintCliPrefix();
@@ -134,6 +140,14 @@ void CliThread()
134140
fInfo.dwTimeout = 0;
135141
FlashWindowEx(&fInfo);
136142
}
143+
144+
// Get console input handle once for reading commands
145+
HANDLE hStdIn = GetStdHandle(STD_INPUT_HANDLE);
146+
if (hStdIn == INVALID_HANDLE_VALUE)
147+
{
148+
LOG_ERROR("server.worldserver", "Failed to get console input handle");
149+
return;
150+
}
137151
#endif
138152

139153
///- As long as the World is running (no World::m_stopEvent), get the command line and handle it
@@ -145,12 +159,18 @@ void CliThread()
145159

146160
#if AC_PLATFORM == AC_PLATFORM_WINDOWS
147161
wchar_t commandbuf[256];
148-
if (fgetws(commandbuf, sizeof(commandbuf), stdin))
162+
DWORD charsRead = 0;
163+
164+
if (ReadConsoleW(hStdIn, commandbuf, sizeof(commandbuf) / sizeof(wchar_t) - 1, &charsRead, nullptr))
149165
{
150-
if (!WStrToUtf8(commandbuf, wcslen(commandbuf), command))
166+
if (charsRead > 0)
151167
{
152-
PrintCliPrefix();
153-
continue;
168+
commandbuf[charsRead] = L'\0';
169+
if (!WStrToUtf8(commandbuf, charsRead, command))
170+
{
171+
PrintCliPrefix();
172+
continue;
173+
}
154174
}
155175
}
156176
#else

src/server/game/Spells/Auras/SpellAuraEffects.cpp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1296,6 +1296,14 @@ void AuraEffect::HandleProc(AuraApplication* aurApp, ProcEventInfo& eventInfo)
12961296

12971297
switch (GetAuraType())
12981298
{
1299+
case SPELL_AURA_MOD_CONFUSE:
1300+
case SPELL_AURA_MOD_FEAR:
1301+
case SPELL_AURA_MOD_STUN:
1302+
case SPELL_AURA_MOD_ROOT:
1303+
case SPELL_AURA_TRANSFORM:
1304+
HandleBreakableCCAuraProc(aurApp, eventInfo);
1305+
break;
1306+
case SPELL_AURA_DUMMY:
12991307
case SPELL_AURA_PROC_TRIGGER_SPELL:
13001308
HandleProcTriggerSpellAuraProc(aurApp, eventInfo);
13011309
break;
@@ -7324,6 +7332,16 @@ void AuraEffect::HandlePeriodicPowerBurnAuraTick(Unit* target, Unit* caster) con
73247332
Unit::ProcSkillsAndAuras(caster, damageInfo.target, procAttacker, procVictim, hitMask, damageInfo.damage, BASE_ATTACK, spellProto, nullptr, GetEffIndex(), nullptr, &dmgInfo);
73257333
}
73267334

7335+
void AuraEffect::HandleBreakableCCAuraProc(AuraApplication* aurApp, ProcEventInfo& eventInfo)
7336+
{
7337+
int32 const damageLeft = GetAmount() - static_cast<int32>(eventInfo.GetDamageInfo()->GetDamage());
7338+
7339+
if (damageLeft <= 0)
7340+
aurApp->GetTarget()->RemoveAura(aurApp);
7341+
else
7342+
SetAmount(damageLeft);
7343+
}
7344+
73277345
void AuraEffect::HandleProcTriggerSpellAuraProc(AuraApplication* aurApp, ProcEventInfo& eventInfo)
73287346
{
73297347
Unit* triggerCaster = aurApp->GetTarget();

src/server/game/Spells/Auras/SpellAuraEffects.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,7 @@ class AuraEffect
334334
void HandlePeriodicPowerBurnAuraTick(Unit* target, Unit* caster) const;
335335

336336
// aura effect proc handlers
337+
void HandleBreakableCCAuraProc(AuraApplication* aurApp, ProcEventInfo& eventInfo);
337338
void HandleProcTriggerSpellAuraProc(AuraApplication* aurApp, ProcEventInfo& eventInfo);
338339
void HandleProcTriggerSpellWithValueAuraProc(AuraApplication* aurApp, ProcEventInfo& eventInfo);
339340
void HandleProcTriggerDamageAuraProc(AuraApplication* aurApp, ProcEventInfo& eventInfo);

src/server/game/Spells/SpellInfoCorrections.cpp

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1954,12 +1954,6 @@ void SpellMgr::LoadSpellInfoCorrections()
19541954
spellInfo->Effects[EFFECT_0].TargetA = SpellImplicitTargetInfo(TARGET_DEST_DEST);
19551955
});
19561956

1957-
// Vortex (freeze anim)
1958-
ApplySpellFix({ 55883 }, [](SpellInfo* spellInfo)
1959-
{
1960-
spellInfo->AuraInterruptFlags |= AURA_INTERRUPT_FLAG_CHANGE_MAP;
1961-
});
1962-
19631957
// Hurl Pyrite
19641958
ApplySpellFix({ 62490 }, [](SpellInfo* spellInfo)
19651959
{

src/server/game/Spells/SpellMgr.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1822,6 +1822,7 @@ bool InitTriggerAuraData()
18221822
isTriggerAura[SPELL_AURA_ABILITY_IGNORE_AURASTATE] = true;
18231823

18241824
isAlwaysTriggeredAura[SPELL_AURA_OVERRIDE_CLASS_SCRIPTS] = true;
1825+
isAlwaysTriggeredAura[SPELL_AURA_MOD_CONFUSE] = true;
18251826
isAlwaysTriggeredAura[SPELL_AURA_MOD_FEAR] = true;
18261827
isAlwaysTriggeredAura[SPELL_AURA_MOD_ROOT] = true;
18271828
isAlwaysTriggeredAura[SPELL_AURA_MOD_STUN] = true;

0 commit comments

Comments
 (0)