Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

Disabling a UI button from source or client

Newbie Spellweaver
Joined
Mar 9, 2016
Messages
29
Reaction score
0
Does anyone know how to disbale a UI button (such as skill/stat/inventory on the status bar) using the disable nodes from the wz?

Or if not, is it possible to stop it from the source?

I found openUI, lockUi, and disableUi from the MaplePacketCreator on moopledev and I thought I could use it. openUi can send a byte to open a UI window, but disableUi only accepts boolean and it will disable all Ui. Is disabling only a specific Ui window possible from the source?

these are from moopledev
PHP:
public static byte[] openUI(byte ui) {                
final MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(3);                
mplew.writeShort(SendOpcode.OPEN_UI.getValue());                
mplew.write(ui);                
return mplew.getPacket();        
}        
public static byte[] lockUI(boolean enable) {                
final MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(3);                
mplew.writeShort(SendOpcode.LOCK_UI.getValue());                
mplew.write(enable ? 1 : 0);                
return mplew.getPacket();        
}        
public static byte[] disableUI(boolean enable) {                
final MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter();                
mplew.writeShort(SendOpcode.DISABLE_UI.getValue());                
mplew.write(enable ? 1 : 0);                
return mplew.getPacket();        
}
 
Custom Title Activated
Loyal Member
Joined
Jan 18, 2010
Messages
3,109
Reaction score
1,139
First, you have to realize what exactly openUI/lockUI/disableUI are for. These packets are used to help Nexon do cutscenes and provide help to the player by opening windows. So, to answer your question, no you cannot use any disableUI packet on buttons. In fact, all it will do is lock your UI in place and/or disable it entirely.

Is it possible to disable a UI button? Yes. Is it possible to do it from your source code alone? No. You would have to use client edits to do this, and unless you're code-caving your own entire packets, it'd be a permanent disable (not temporary, can't be re-enabled).

If you're interested in figuring out the client edits for this, I can at least point you to the CUIStatusBar::OnCreate function. This is where you'll need to find where it renders the button, and either remove it completely, or just mark it as disabled (probably a 0/1 bool).
 
Upvote 0
Newbie Spellweaver
Joined
Mar 9, 2016
Messages
29
Reaction score
0
The client edits I did so far are only as far as following hex values posted on this forum and changing them using olly as instructed. I really have no idea how to go about this. Can you help me get started? Like do I use IDA or something else?
 
Upvote 0
Back
Top