Client Systems & Python UI
Metin2 empty-slot tooltip: initialize hover state and guard UI teardown
M2City Client · Editorial · Published 2026-11-05 · Branch-specific details should be checked against your own source.
Adds native empty-slot hover callbacks to CSlotWindow and forwards them to Python SlotWindow. The example labels belt-inventory slots. It requires EterPythonLib source and matching Python UI changes; it is not a standalone root-only script. The exact client branch and upstream author of this particular archive were not established.
M2City r1 corrections
The supplied instructions added m_dwToolTipEmptySlotNumber but omitted its sentinel initialization. The reviewed instructions require setting it to SLOT_NUMBER_NONE at every corresponding constructor/reset site before any hover access, and closing an active tooltip before clearing slots/handlers. The supplied width fix measured str(ToolTip), the class object, and referenced a variable absent from the example; that workaround is removed from the integration instructions. Use the branch's existing AppendTextLine sizing behavior. Python example callbacks guard a released tooltip during teardown, and the merge notes require clearing registered callbacks and releasing the tooltip in the existing Destroy.
Merge and verify
Merge declarations and native hover handlers into the existing CSlotWindow, keeping item-tooltip behavior. Add the matching Python event fields, setters and callbacks. Initialize the native sentinel before compiling. Register empty-slot callbacks on the real belt SlotWindow; keep the original inventory's cleanup and do not replace its Destroy body. Use localized labels appropriate to your UI rather than shipping the demonstrative English slot number text unchanged.
Test initial mouse leave, empty/occupied slots, repeated hovering, moving between slots, long labels, inventory hide/show, slot clearing, logout and disabled belt support. The isolated C++ test uses fake slots and Python callbacks; it does not certify native window lifetime, a complete client build or the exact width of rendered text. Original and reviewed instructions are both preserved.
Editorial resource — M2City
Version: Legacy integration fragments; exact fork unspecified; M2City r1 (2026-11-04)
Rights: Public redistribution confirmed by owner; upstream notices retained. No blanket open-source relicensing.
Validation: Native hover methods compiled under C++11 with fake slots/Python callbacks: initial leave, missing slot, empty hover, repeated hover, occupied slot and repeated leave passed. Sentinel initialized in the test fixture as instructed. No complete EterPythonLib build or engine tooltip render.
Source: Owner-supplied source; public creator/feature reference where established
SHA-256: 735847cdf179eacc0f49de92622f1e90d8e223016f9f6e1fd2519321eaec1063
Download package
3 download options · Sign in to download
metin2-empty-slot-tooltip-m2city-r1.zipM2City downloadmetin2-empty-slot-tooltip-m2city-r1.zipGoogle Drive mirrormetin2-empty-slot-tooltip-m2city-r1.zipMEGA mirrorMAKE THE NEXT ANSWER BETTER
What happened on your build?
Share a small example, the exact error and how you verified your fix. The discussion is open on the forum.
Need a scoped quest, UI or proto fix? · Explore more development guides · Check your proto files free