From 717166e6553c77f8cfc62804f2abaa41c6c77bf2 Mon Sep 17 00:00:00 2001 From: MagicBot Date: Sat, 24 Oct 2026 13:28:32 -0400 Subject: [PATCH] Send the Standing Guard rune to guards and contract mobs The client sets its is-guard flag only for rune 252623 (0x67AB1B), and that flag drives the CloseToGuard passive help hint. The server sent 252621 Guard, so the hint never fired. Contract mobs and player guards now get 252623 in place of 252621. No server value change: both runes add +100 to all five attributes with the same max, the only fields the server reads from the sent runes. The runes differ only in their effects (252621 MOVE-B-15%, OCV-B-20%, RES-ELEMENTS-B-50; 252623 GUARD), which the server never applied. The dead 100570/100962/100965 branches keep 252621. Co-Authored-By: Claude Opus 5.5 --- src/engine/objects/Mob.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/engine/objects/Mob.java b/src/engine/objects/Mob.java index 94fff9e3..7f82672e 100644 --- a/src/engine/objects/Mob.java +++ b/src/engine/objects/Mob.java @@ -184,7 +184,7 @@ public class Mob extends AbstractIntelligenceAgent implements Delayed { } else if (mob.contract != null || mob.isPlayerGuard()) { writer.putInt(3); serializeRune(mob, writer, 3, GameObjectType.NPCClassRuneTwo.ordinal(), 2518); //warrior class - serializeRune(mob, writer, 5, GameObjectType.NPCClassRuneThree.ordinal(), 252621); //guard rune + serializeRune(mob, writer, 5, GameObjectType.NPCClassRuneThree.ordinal(), 252623); //standing guard rune; the client fires its CloseToGuard hint only for 252623 (0x67AB1B) } else writer.putInt(1); @@ -736,7 +736,7 @@ public class Mob extends AbstractIntelligenceAgent implements Delayed { runeIDs.add(2522); else if (this.contract != null || this.isPlayerGuard()) { runeIDs.add(2518); - runeIDs.add(252621); + runeIDs.add(252623); } runeIDs.add((this.mobBase != null) ? this.mobBase.getObjectUUID() : this.loadID);