888論壇

 找回密碼
 立即註冊
搜索
熱搜: 楓之谷技術
查看: 384|回復: 9

[源碼教學] 王圖斷線返回NPC

[複製鏈接]

23

主題

48

帖子

3357

積分

管理員

Rank: 9Rank: 9Rank: 9

積分
3357

動漫控動漫控動漫控動漫控動漫控動漫控動漫控動漫控動漫控動漫控動漫控動漫控動漫控鑽石會員星星會員三星會員

發表於 2020-9-25 20:35:01 | 顯示全部樓層 |閱讀模式
許多玩家會因為斷線而無法重回副本導致遊戲損失,而斷線返回副本內寫法由斷線後保存角色地圖位子登陸後判斷重回
需再 AbstractPlayerInteraction.Java 內新增

  1. public boolean isDCthere(final int mapid) {
  2.         return this.getChannelServer().getMapFactory().getMap(mapid).isDChere(this.getPlayer().getId());
  3.     }
複製代碼




MapleMap.Java 內新增

最上方新增
  1. private final Map<Integer, Long> dchere;
複製代碼


找到下方函數
  1. public MapleMap(final int mapid, final int channel, final int returnMapId, final float monsterRate) {
複製代碼





  1. this.returnMapId = returnMapId;
複製代碼

下方新增


  1. this.dchere = new HashMap<Integer, Long>();
複製代碼



最下方新增

  1.    public void addDChere(final int charid) {
  2.         this.dchere.put(charid, System.currentTimeMillis());
  3.     }


  4.     public void removeDChere(final int charid) {
  5.         if (this.dchere.containsKey(charid)) {
  6.             this.dchere.remove(charid);
  7.         }
  8.     }


  9.     public boolean isDChere(final int charid) {
  10.         final boolean contain = this.dchere.containsKey(charid);
  11.         if (!contain) {
  12.             return false;
  13.         }
  14.         if (this.dchere.get(charid) + 300000L < System.currentTimeMillis()) {
  15.             this.dchere.remove(charid);
  16.             return false;
  17.         }
  18.         return true;
  19.     }
複製代碼




本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?立即註冊

x
回復

使用道具 舉報

0

主題

10

帖子

68

積分

初心者

Rank: 1

積分
68
發表於 2020-10-3 14:36:51 | 顯示全部樓層
謝謝大大的分享 最近發現到這個論壇收穫良多!
回復

使用道具 舉報

0

主題

13

帖子

104

積分

初心者

Rank: 1

積分
104
發表於 2020-10-6 01:31:36 | 顯示全部樓層
喔喔喔賊需要
回復

使用道具 舉報

0

主題

5

帖子

60

積分

初心者

Rank: 1

積分
60
發表於 2020-10-9 09:49:17 | 顯示全部樓層

貼文更新

抱歉,遇到問題了

本帖子中包含更多資源

您需要 登錄 才可以下載或查看,沒有帳號?立即註冊

x
回復

使用道具 舉報

1

主題

6

帖子

343

積分

初心者

Rank: 1

積分
343
發表於 2020-10-9 13:04:01 | 顯示全部樓層
小楊哥 發表於 2020-10-9 09:49
抱歉,遇到問題了

private final Map<Integer, Long> dchere;
可能要寫在這裡吧 不是很懂
public final class MapleMap 下面
回復

使用道具 舉報

23

主題

48

帖子

3357

積分

管理員

Rank: 9Rank: 9Rank: 9

積分
3357

動漫控動漫控動漫控動漫控動漫控動漫控動漫控動漫控動漫控動漫控動漫控動漫控動漫控鑽石會員星星會員三星會員

 樓主| 發表於 2020-10-10 09:19:32 | 顯示全部樓層
小楊哥 發表於 2020-10-9 09:49
抱歉,遇到問題了

已經更新貼文了~
在public MapleMap(final int mapid 這段下方找到
this.returnMapId = returnMapId;
在它下方新增
this.dchere = new HashMap<Integer, Long>();
即可

**備註**  private final Map<Integer, Long> dchere;  新增在最上方即可  
回復

使用道具 舉報

23

主題

48

帖子

3357

積分

管理員

Rank: 9Rank: 9Rank: 9

積分
3357

動漫控動漫控動漫控動漫控動漫控動漫控動漫控動漫控動漫控動漫控動漫控動漫控動漫控鑽石會員星星會員三星會員

 樓主| 發表於 2020-10-10 09:20:07 | 顯示全部樓層
小楊哥 發表於 2020-10-9 09:49
抱歉,遇到問題了

感謝回復~
回復

使用道具 舉報

0

主題

5

帖子

60

積分

初心者

Rank: 1

積分
60
發表於 2020-10-10 23:25:19 | 顯示全部樓層
幼幼 發表於 2020-10-9 13:04
private final Map dchere;
可能要寫在這裡吧 不是很懂
public final class MapleMap 下面 ...

感謝 已經不會出錯了 晚點檢查看看js
回復

使用道具 舉報

1

主題

6

帖子

47

積分

初心者

Rank: 1

積分
47
發表於 2020-10-28 22:36:45 | 顯示全部樓層
寫完測試 進遠征隊  開打後 下線上線也是回不去
回復

使用道具 舉報

0

主題

5

帖子

60

積分

初心者

Rank: 1

積分
60
發表於 2021-2-17 18:19:26 | 顯示全部樓層
無法使用。
回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

888論壇

GMT+8, 2021-6-14 14:48 , Processed in 0.032197 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回復 返回頂部 返回列表