- UID
- 6950
- 閱讀權限
- 10
- 主題
- 3
- 帖子
- 49
- 精華
- 0
- A幣
- 1
- 在線時間
- 45 小時
- 最後登錄
- 2023-6-24
集團新軍
- 主題
- 3
- 帖子
- 49
- 精華
- 0
- 綜合社群主題發文量
- 1
- 電玩社群主題發文量
- 0
- 娛樂社群主題發文量
- 0
- 技術社群主題發文量
- 0
- 閱讀權限
- 10
- 註冊時間
- 2017-1-12
TA的每日心情 | 衰 2019-10-16 19:10 |
---|
簽到天數: 3 天 連續簽到: 0 天 [LV.2]偶爾看看I
|
應該是沒有什麼問題 我盡量用小馬端的語法下去修正了 很久沒碰62端口 有點陌生
沒有做過測試 有問題問吧- 找到ChannelServer.java
- 新增
- private int XXCh;//自己制定義名稱
- 找到
- synchronized (this.wci)
- 下面新增
- this.XXCh = Integer.parseInt(this.props.getProperty("net.sf.odinms.world.XXCh", "?"));//直接寫在裡面了 ?為頻道幾
- 在最底下新增
- public int getXXCh() {
- return this.XXCh;
- }
- return ?;// ?為頻道幾
- }
複製代碼
- 找到PlayerLoggedinHandler.JAVA
- 找到public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c)
- 下面新增
- ChannelServer XX = c.getChannelServer();
- 找到
- c.getSession().write(MaplePacketCreator.getCharInfo(player));
- System.out.println("玩家 [ " + c.getPlayer().getName() + " ] 連接成功.");
- 下面新增
- if ((c.getPlayer().getLevel() < ??) && c.getChannel() == XX.getXXCh()) {//設置限制 ??自己去設置 也可以改成haveitem 或者getvip 若你端有設置或自行添加
- cserv.removePlayer(player);
- ChangeChannelHandler.changeChannel(1, c);//若為達到該等級 返回1頻
- String mg = "親愛的玩家:" + c.getPlayer().getName() + " 您好 \r\n第" + XX.getXXCh() + "頻道為 XX 頻道.\r\n你沒有XX條件故無法進入.\r\n將自動轉換至1頻";
- c.getSession().write(MaplePacketCreator.serverNotice(5, mg);
- c.getSession().write(MaplePacketCreator.serverNotice(1, mg);
- System.out.println("玩家 [ " + c.getPlayer().getName() + " ] 非法連接第 " + XX.getXXCh() + " 頻道.系統已作返回處理.");
- }
- 找到
- player.getMap().addPlayer(player);
- 下面新增
- if (player.getClient().getChannel() == XX.getXXCh()) {
- player.getClient().getSession().write(MaplePacketCreator.serverNotice(1, "您目前頻道為 XX 頻道\r\n經驗倍率為 " +
- String.valueOf(player.getClient().getChannelServer().getExpRate()) + " 倍\r\n楓幣倍率為 " +
- String.valueOf(player.getClient().getChannelServer().getMesoRate()) + " 倍\r\n掉寶倍率為 " +
- String.valueOf(player.getClient().getChannelServer().getDropRate()) + " 倍"));
- }
- c.getSession().write(MaplePacketCreator.serverMessage(c.getChannelServer().getServerMessage()));
- player.getMap().addPlayer(player);
複製代碼
- 找到ChangeChannelHandler.JAVA
- 找到 public void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) {
- 下面替換成
- int XXchannel = XX.getXXCh();
- int channel = slea.readByte() + 1;
- if (channel == XXchannel) {
- if (c.getPlayer().getLevel() >= ??) {//跟剛剛設置條件一樣 ??自己去設置 也可以改成haveitem 或者getvip 若你端有設置或自行添加
- } else {
- String mg = "親愛滴玩家:" + c.getPlayer().getName() + " 您好\r\n第" + XX.getXXCh() + "頻道為 XX 頻道 \r\n你目前的等級是:" + c.getPlayer().getLevel() + "\r\n你沒有XX,無法進入此頻道\r\nP.S.至少需要XX條件!";
- c.getSession().write(MaplePacketCreator.serverNotice(5, mg);
- c.getSession().write(MaplePacketCreator.serverNotice(1, mg);
- return;
- }
- }
- changeChannel(channel, c);
- }
複製代碼 成果類似這樣 這是我113成功圖 小馬作者也是我@.@
順便給一個小東西 玩家登入頻道提示
MaplePacket packet = MaplePacketCreator.serverNotice(6, "[玩家] " + c.getPlayer().getName() + " ,等級 " + player.getLevel() + " ,職業 " + player.getJob() + " ,已進入第 " + c.getChannelServer().getChannel() + " 頻道");
|
|