From 827c97a6138958f8cd04b5bc6bd6cbba924789d6 Mon Sep 17 00:00:00 2001 From: Hondacrx Date: Sun, 15 Jun 2025 17:10:38 -0400 Subject: [PATCH] Core/Misc: Reduce differences between cores Port From (https://github.com/TrinityCore/TrinityCore/commit/ff6a107ac0e7a82d728f8fd2fd8423743233a474) --- Source/Game/Entities/Player/Player.Items.cs | 2 +- Source/Game/Entities/Player/Player.cs | 2 +- Source/Game/Handlers/QueryHandler.cs | 16 ++++++++++------ Source/Game/Spells/Auras/Aura.cs | 11 +++++++++++ Source/Game/Spells/Auras/AuraEffect.cs | 13 +------------ 5 files changed, 24 insertions(+), 20 deletions(-) diff --git a/Source/Game/Entities/Player/Player.Items.cs b/Source/Game/Entities/Player/Player.Items.cs index 6732c8e10..5abdbcf70 100644 --- a/Source/Game/Entities/Player/Player.Items.cs +++ b/Source/Game/Entities/Player/Player.Items.cs @@ -5061,7 +5061,7 @@ namespace Game.Entities { // Do not allow polearm to be equipped in the offhand (rare case for the only 1h polearm 41750) if (type == InventoryType.Weapon && pProto.GetSubClass() == (uint)ItemSubClassWeapon.Polearm) - return InventoryResult.TwoHandSkillNotFound; + return InventoryResult.WrongSlot; else if (type == InventoryType.Weapon) { if (!CanDualWield()) diff --git a/Source/Game/Entities/Player/Player.cs b/Source/Game/Entities/Player/Player.cs index f9824f4e2..2155d6716 100644 --- a/Source/Game/Entities/Player/Player.cs +++ b/Source/Game/Entities/Player/Player.cs @@ -243,7 +243,7 @@ namespace Game.Entities SetInventorySlotCount(InventorySlots.DefaultSize); // set starting level - SetLevel(GetStartLevel(createInfo.RaceId, createInfo.ClassId, createInfo.TemplateSet)); + SetLevel(GetStartLevel(createInfo.RaceId, createInfo.ClassId, createInfo.TemplateSet), false); InitRunes(); diff --git a/Source/Game/Handlers/QueryHandler.cs b/Source/Game/Handlers/QueryHandler.cs index 3735b1e76..886ba26af 100644 --- a/Source/Game/Handlers/QueryHandler.cs +++ b/Source/Game/Handlers/QueryHandler.cs @@ -229,7 +229,7 @@ namespace Game packet.MapID = (int)corpseMapID; packet.ActualMapID = (int)mapID; packet.Position = new Vector3(x, y, z); - packet.Transport = ObjectGuid.Empty; + packet.Transport = ObjectGuid.Empty; // TODO: If corpse is on transport, send transport offsets and transport guid SendPacket(packet); } @@ -240,13 +240,17 @@ namespace Game response.Player = queryCorpseTransport.Player; Player player = Global.ObjAccessor.FindConnectedPlayer(queryCorpseTransport.Player); - if (player != null) + if (player != null && _player.IsInSameRaidWith(player)) { - Corpse corpse = player.GetCorpse(); - if (_player.IsInSameRaidWith(player) && corpse != null && !corpse.GetTransGUID().IsEmpty() && corpse.GetTransGUID() == queryCorpseTransport.Transport) + Corpse corpse = _player.GetCorpse(); + if (corpse != null) { - response.Position = new Vector3(corpse.GetTransOffsetX(), corpse.GetTransOffsetY(), corpse.GetTransOffsetZ()); - response.Facing = corpse.GetTransOffsetO(); + Transport transport = (Transport)corpse.GetTransport(); + if (transport != null && transport.GetGUID() == queryCorpseTransport.Transport) + { + response.Position = transport.GetPosition(); + response.Facing = transport.GetOrientation(); + } } } diff --git a/Source/Game/Spells/Auras/Aura.cs b/Source/Game/Spells/Auras/Aura.cs index ccffb313d..d5433b7d6 100644 --- a/Source/Game/Spells/Auras/Aura.cs +++ b/Source/Game/Spells/Auras/Aura.cs @@ -405,6 +405,17 @@ namespace Game.Spells } } + public bool CanPeriodicTickCrit() + { + if (GetSpellInfo().HasAttribute(SpellAttr2.CantCrit)) + return false; + + if (GetSpellInfo().HasAttribute(SpellAttr8.PeriodicCanCrit)) + return true; + + return false; + } + public virtual void Dispose() { // unload scripts diff --git a/Source/Game/Spells/Auras/AuraEffect.cs b/Source/Game/Spells/Auras/AuraEffect.cs index 01092e054..78c7310d1 100644 --- a/Source/Game/Spells/Auras/AuraEffect.cs +++ b/Source/Game/Spells/Auras/AuraEffect.cs @@ -5667,20 +5667,9 @@ namespace Game.Spells caster.SendSpellNonMeleeDamageLog(damageInfo); } - bool CanPeriodicTickCrit() - { - if (GetSpellInfo().HasAttribute(SpellAttr2.CantCrit)) - return false; - - if (GetSpellInfo().HasAttribute(SpellAttr8.PeriodicCanCrit)) - return true; - - return false; - } - float CalcPeriodicCritChance(Unit caster) { - if (caster == null || !CanPeriodicTickCrit()) + if (caster == null || !GetBase().CanPeriodicTickCrit()) return 0.0f; Player modOwner = caster.GetSpellModOwner();