From 472bea1de60a0b39219534a912935690ef200f05 Mon Sep 17 00:00:00 2001 From: Andreas Lierschaft Date: Tue, 18 Aug 2026 00:59:26 +0200 Subject: [PATCH] Show "(Aktiv)" + remaining time on the white lion mount seal The slot-highlight for activatable items (uiinventory.py) read metinSocket[0], which the server now uses for the seal's remaining usage-time countdown instead of the active flag - moved the check to socket[2] to match. Tooltip now shows "(Aktiv)" plus the standard remaining-time line (reusing the existing AppendTimerBasedOnWearLastTime renderer) for any IS_MOUNT_SEAL item, replacing the generic ITEM_TYPE_UNIQUE tooltip logic that would otherwise have misread the active-flag socket as a unique-item decay timestamp. --- root/uiinventory.py | 2 +- root/uitooltip.py | 33 ++++++++++++++++++++------------- 2 files changed, 21 insertions(+), 14 deletions(-) diff --git a/root/uiinventory.py b/root/uiinventory.py index 2800046..4825d13 100644 --- a/root/uiinventory.py +++ b/root/uiinventory.py @@ -561,7 +561,7 @@ class InventoryWindow(ui.ScriptWindow): ## Allgemein aktivierbare Items (z.B. Reit-Siegel) - Rahmen ueber metinSocket[0], ohne Auto-Potion-Logik elif constInfo.IS_ACTIVATABLE_ITEM(itemVnum): - isActivated = 0 != player.GetItemMetinSocket(slotNumber, 0) + isActivated = 0 != player.GetItemMetinSocket(slotNumber, 2) # Socket2: Aktiv-Flag (Socket0 ist bei zeitbasierten Siegeln die Restzeit) if slotNumber >= player.INVENTORY_PAGE_SIZE: slotNumber -= player.INVENTORY_PAGE_SIZE diff --git a/root/uitooltip.py b/root/uitooltip.py index 1dba06e..c844e85 100644 --- a/root/uitooltip.py +++ b/root/uitooltip.py @@ -1035,23 +1035,30 @@ class ItemToolTip(ToolTip): elif item.ITEM_TYPE_UNIQUE == itemType: if 0 != metinSlot: - bHasRealtimeFlag = 0 - - for i in xrange(item.LIMIT_MAX_NUM): - (limitType, limitValue) = item.GetLimit(i) + if constInfo.IS_MOUNT_SEAL(itemVnum): + if 0 != metinSlot[2]: + self.AppendSpace(5) + self.AppendTextLine("(Aktiv)", self.SPECIAL_POSITIVE_COLOR) - if item.LIMIT_REAL_TIME == limitType: - bHasRealtimeFlag = 1 - - if 1 == bHasRealtimeFlag: - self.AppendMallItemLastTime(metinSlot[0]) + self.AppendTimerBasedOnWearLastTime(metinSlot) else: - time = metinSlot[player.METIN_SOCKET_MAX_NUM-1] + bHasRealtimeFlag = 0 + + for i in xrange(item.LIMIT_MAX_NUM): + (limitType, limitValue) = item.GetLimit(i) - if 1 == item.GetValue(2): ## ½Ç½Ã°£ ÀÌ¿ë Flag / ÀåÂø ¾ÈÇØµµ ÁØ´Ù - self.AppendMallItemLastTime(time) + if item.LIMIT_REAL_TIME == limitType: + bHasRealtimeFlag = 1 + + if 1 == bHasRealtimeFlag: + self.AppendMallItemLastTime(metinSlot[0]) else: - self.AppendUniqueItemLastTime(time) + time = metinSlot[player.METIN_SOCKET_MAX_NUM-1] + + if 1 == item.GetValue(2): ## ½Ç½Ã°£ ÀÌ¿ë Flag / ÀåÂø ¾ÈÇØµµ ÁØ´Ù + self.AppendMallItemLastTime(time) + else: + self.AppendUniqueItemLastTime(time) ### Use ### elif item.ITEM_TYPE_USE == itemType: