מדריך להגבלת רמות בכניסה לצ'אנל
קרדיט לBLUEPOOP
במדריך זה תלמדו להגביל רמה בכניסה לצ'אנל.

ראשית תיכנסו לקובץ src/net/sf/odinms/net/channel/ChannelServer.java.

תחפשו בו
קוד:
קוד PHP:
private boolean multiLevel
תחליפו את זה ב
קוד:
קוד PHP:
    private boolean multiLevel;
    public static final 
byte maxlevels[] = {(byte0, (byte10, (byte30, (byte70, (byte120, (byte200};
    public static final 
byte minlevels[] = {(byte0, (byte0, (byte10, (byte30, (byte70, (byte120}; 
תערכו את הmaxlevel והminlevel איך שאתם רוצים.
0 זה ללא הגבלה.

עכשיו תיכנסו לקובץ src/net/sf/odinms/net/channel/handler/ChangeChannelHandler.java.
תחפשו שם
קוד:
קוד PHP:
MapleCharacter player c.getPlayer() 
ותשנו את זה ל
קוד:
קוד PHP:
MapleCharacter player c.getPlayer();
        if (
player.getLevel() >= ChannelServer.minlevels[channel] && player.getLevel() < ChannelServer.maxlevels[channel] && ChannelServer.maxlevels[channel] != 0) { 
עכשיו תחפשו
קוד:
קוד PHP:
            try {
                
c.getSession().write(MaplePacketCreator.getChannelChange(InetAddress.getByName(socket[0]), Integer.parseInt(socket[1])));
            } catch (
Exception e) {
                throw new 
RuntimeException(e);
            } 
ותוסיפו שורה מתחת
קוד:
קוד PHP:

עכשיו תעברו לקובץ src/net/sf/odinms/net/channel/handler/PlayerLoggedInHandler.java.

תחפשו שם את זה:
קוד:
קוד PHP:
ChannelServer cserv ChannelServer.getInstance(c.getChannel());
        
cserv.addPlayer(player); 
ותחליפו את זה עם
קוד:
קוד PHP:
 int channel c.getChannel();
        if (!(
c.getPlayer().getLevel() < ChannelServer.maxlevels[channel] && c.getPlayer().getLevel() > ChannelServer.minlevels[channel] && ChannelServer.maxlevels[channel] != 0)) {
            for (
int i channelChannelServer.getAllInstances().size(); i++) {
                if (
c.getPlayer().getLevel() < ChannelServer.maxlevels[i] && c.getPlayer().getLevel() > ChannelServer.minlevels[i] && ChannelServer.maxlevels[i] != 0) {
                    
channel i;
                    break;
                }
            }
            if (
channel == c.getChannel()) {
                for (
int i channel>= 0i--) {
                    if (
c.getPlayer().getLevel() < ChannelServer.maxlevels[i] && c.getPlayer().getLevel() > ChannelServer.minlevels[i] && ChannelServer.maxlevels[i] != 0) {
                        
channel i;
                        break;
                    }
                }
            }
        }
        
ChannelServer cserv ChannelServer.getInstance(channel);
        
cserv.addPlayer(player);