From 2b80286d2e39995f267893c062f72bb153c554b9 Mon Sep 17 00:00:00 2001 From: Bohica <53943479+Bohicatv@users.noreply.github.com> Date: Thu, 5 Mar 2026 23:23:20 -0800 Subject: [PATCH] fix: Fixes arrow animations by using 0xC7 when possible. (#2343) ### Summary This is a partial fix for servers that enable 0xC7 and clients that support 0xC7. A proper fix should be made on ClassicUO. --- .../UOContent/Engines/Craft/Core/Repair.cs | 2 +- .../Engines/ML Quests/Items/RewardBags.cs | 2 +- Projects/UOContent/Items/Misc/OilFlask.cs | 2 +- .../UOContent/Items/Misc/PromotionalToken.cs | 2 +- .../Items/Weapons/Ranged/BaseRanged.cs | 65 ++++++++++--------- 5 files changed, 37 insertions(+), 36 deletions(-) diff --git a/Projects/UOContent/Engines/Craft/Core/Repair.cs b/Projects/UOContent/Engines/Craft/Core/Repair.cs index d8bb2ae7e..057ff4a7b 100644 --- a/Projects/UOContent/Engines/Craft/Core/Repair.cs +++ b/Projects/UOContent/Engines/Craft/Core/Repair.cs @@ -454,7 +454,7 @@ namespace Server.Engines.Craft if (from.Skills[skill].Value >= 50.0) { - scroll.Consume(1); + scroll.Consume(); var deed = new RepairDeed( RepairDeed.GetTypeFor(m_CraftSystem), from.Skills[skill].Value, diff --git a/Projects/UOContent/Engines/ML Quests/Items/RewardBags.cs b/Projects/UOContent/Engines/ML Quests/Items/RewardBags.cs index a5b743379..2adeef397 100644 --- a/Projects/UOContent/Engines/ML Quests/Items/RewardBags.cs +++ b/Projects/UOContent/Engines/ML Quests/Items/RewardBags.cs @@ -25,7 +25,7 @@ public static class RewardBag 1 => Loot.RandomArmor(false, true), 2 => Loot.RandomRangedWeapon(false, true), 3 => Loot.RandomJewelry(), - _ => Loot.RandomHat(false) // 4 + _ => Loot.RandomHat() // 4 }; if (loot == null) diff --git a/Projects/UOContent/Items/Misc/OilFlask.cs b/Projects/UOContent/Items/Misc/OilFlask.cs index c890f0861..c2d621544 100644 --- a/Projects/UOContent/Items/Misc/OilFlask.cs +++ b/Projects/UOContent/Items/Misc/OilFlask.cs @@ -65,7 +65,7 @@ public partial class OilFlask : Item } } - Consume(1); + Consume(); } else { diff --git a/Projects/UOContent/Items/Misc/PromotionalToken.cs b/Projects/UOContent/Items/Misc/PromotionalToken.cs index ac572a7da..8aa8ee630 100644 --- a/Projects/UOContent/Items/Misc/PromotionalToken.cs +++ b/Projects/UOContent/Items/Misc/PromotionalToken.cs @@ -82,7 +82,7 @@ public abstract partial class PromotionalToken : Item AddBackground(0, 0, 240, 135, 0x2422); // Click "OKAY" to redeem the following promotional item: AddHtmlLocalized(15, 15, 210, 75, 1070972, 0x0, true); - m_Token.ItemGumpName.AddHtmlText(this, 15, 60, 210, 75, false, false); + m_Token.ItemGumpName.AddHtmlText(this, 15, 60, 210, 75); AddButton(160, 95, 0xF7, 0xF8, 1); // Okay AddButton(90, 95, 0xF2, 0xF1, 0); // Cancel diff --git a/Projects/UOContent/Items/Weapons/Ranged/BaseRanged.cs b/Projects/UOContent/Items/Weapons/Ranged/BaseRanged.cs index 1dc095d3f..bd9264603 100644 --- a/Projects/UOContent/Items/Weapons/Ranged/BaseRanged.cs +++ b/Projects/UOContent/Items/Weapons/Ranged/BaseRanged.cs @@ -90,7 +90,7 @@ namespace Server.Items else if (WeaponAbility.GetCurrentAbility(attacker) is LightningArrow lightningArrow) { // Lightning Arrow doesn't require ammunition - attacker.MovingEffect(defender, EffectID, 18, 1, false, false); + attacker.MovingParticles(defender, EffectID, 18, 1, false, false, 0, 0, 0, 0, 0, EffectLayer.RightHand, 0); lightningArrow.OnHit(attacker, defender, 0, new WorldLocation(defender)); } } @@ -211,7 +211,8 @@ namespace Server.Items } } - attacker.MovingEffect(defender, EffectID, 18, 1, false, false); + attacker.MovingParticles(defender, EffectID, 18, 1, false, false, 0, 0, 0, 0, 0, EffectLayer.RightHand, 0); + return true; } @@ -242,41 +243,41 @@ namespace Server.Items switch (craftResource) { case CraftResource.OakWood: - { - Attributes.Luck += 40; - Attributes.WeaponDamage += 5; - break; - } + { + Attributes.Luck += 40; + Attributes.WeaponDamage += 5; + break; + } case CraftResource.AshWood: - { - Attributes.WeaponSpeed += 10; - WeaponAttributes.LowerStatReq += 20; - break; - } + { + Attributes.WeaponSpeed += 10; + WeaponAttributes.LowerStatReq += 20; + break; + } case CraftResource.YewWood: - { - Attributes.AttackChance += 5; - Attributes.WeaponDamage += 10; - break; - } + { + Attributes.AttackChance += 5; + Attributes.WeaponDamage += 10; + break; + } case CraftResource.Bloodwood: - { - Attributes.RegenHits += 2; - WeaponAttributes.HitLeechHits += 16; - break; - } + { + Attributes.RegenHits += 2; + WeaponAttributes.HitLeechHits += 16; + break; + } case CraftResource.Heartwood: - { - ApplyHeartwoodBonus(); - break; - } + { + ApplyHeartwoodBonus(); + break; + } case CraftResource.Frostwood: - { - AosElementDamages.Physical = 60; - AosElementDamages.Cold = 40; - Attributes.WeaponDamage += 12; - break; - } + { + AosElementDamages.Physical = 60; + AosElementDamages.Cold = 40; + Attributes.WeaponDamage += 12; + break; + } } }