楓之谷私服 - 自由泡點 腳本+改法

這個是參考對岸了其他腳本隨便改的,所以就直接放出來了。
應該適用於113,118,120...等版本,更新的我就不曉得了。

預設是掛機3分鐘得EXP、10分鐘得點數,你可以自由更改。
如果只需要泡點不需要經驗的話,可以自行省略一些步驟。

SRC

  1. 打開ChannelServer.java,在最後一個}前加上:
//泡點
   
   public void AutoGain(int jsexp) {
        this.mapFactory.getMap(910000000).AutoGain(jsexp);
    }

    public void AutoNx(int jsNx) {
        this.mapFactory.getMap(910000000).AutoNx(jsNx);
    }

    public void AutoPaoDian() {
        for (MapleCharacter chr : this.players.getAllCharacters()) {
            chr.setBossLog("在線泡點");
        }
    }
  1. 打開MapleMap.java 在最後一個}前加上:
//泡點
    public void AutoNx(int jsNx) { //cash
        if (this.mapid != 999999992) { //這裡改你想泡點的地圖
            return;
        }
        for (MapleCharacter chr : this.characters) {
            int givNx = chr.getLevel() / 10 + jsNx;
            chr.modifyCSPoints(1, givNx);
            chr.dropMessage(5, new StringBuilder().append("[系統獎勵] 在線時間獎勵獲得 [").append(givNx).append("] 點CASH.").toString());
        }
    }

    public void AutoGain(int jsexp) {
        if (this.mapid != 999999992) { //這裡改你想泡點的地圖
            return;
        }
        for (MapleCharacter chr : this.characters) {
            if (chr.getLevel() >= 200) {
                return;
            }
            int givExp = jsexp * chr.getLevel() + chr.getClient().getChannelServer().getExpRate();
            givExp *= 3;
            chr.gainExp(givExp, true, false, true);
            chr.dropMessage(5, new StringBuilder().append("[系統獎勵] 在線時間獎勵獲得 [").append(givExp).append("] 點經驗.").toString());
        }
    }

Event

新增3個js分別為AutoGain.js、AutoNx.js、AutoPaoDian.js

  • AutoGain.js
var setupTask;

function init() {
    scheduleNew();
}

function scheduleNew() {
    var cal = java.util.Calendar.getInstance();
    cal.set(java.util.Calendar.HOUR, 3);
    cal.set(java.util.Calendar.MINUTE, 50);
    cal.set(java.util.Calendar.SECOND, 0);
    var nextTime = cal.getTimeInMillis();
    while (nextTime <= java.lang.System.currentTimeMillis()) {
        nextTime += 1000 * 60 * 3;
    }
    setupTask = em.scheduleAtTimestamp("start", nextTime);
}

function cancelSchedule() {
    setupTask.cancel(true);
}

function start() {
    scheduleNew();
    em.getChannelServer().AutoGain(10);
}
  • AutoNx.js
var setupTask;

function init() {
    scheduleNew();
}

function scheduleNew() {
    var cal = java.util.Calendar.getInstance();
    cal.set(java.util.Calendar.HOUR, 3);
    cal.set(java.util.Calendar.MINUTE, 50);
    cal.set(java.util.Calendar.SECOND, 0);
    var nextTime = cal.getTimeInMillis();
    while (nextTime <= java.lang.System.currentTimeMillis()) {
        nextTime += 1000 * 60 * 10;
    }
    setupTask = em.scheduleAtTimestamp("start", nextTime);
}

function cancelSchedule() {
    setupTask.cancel(true);
}

function start() {
    scheduleNew();
    em.getChannelServer().AutoNx(10);
}
  • AutoPaoDian.js
var setupTask;

function init() {
    scheduleNew();
}

function scheduleNew() {
    var cal = java.util.Calendar.getInstance();
    cal.set(java.util.Calendar.HOUR, 0);
    cal.set(java.util.Calendar.MINUTE, 0);
    cal.set(java.util.Calendar.SECOND, 0);
    var nextTime = cal.getTimeInMillis();
    while (nextTime <= java.lang.System.currentTimeMillis()) {
        nextTime += 1000 * 60 * 1;
    }
    setupTask = em.scheduleAtTimestamp("start", nextTime);
}

function cancelSchedule() {
    setupTask.cancel(true);
}

function start() {
    scheduleNew();
    em.getChannelServer().AutoPaoDian();
    var iter = em.getInstances().iterator();
    while (iter.hasNext()) {
        var eim = iter.next();
    }
}

以上三個js都寫好後放到端口的Event裡,打開端口設定檔(一般都是Settings或者world.properties之類的)在tms.Events:後方加上AutoGain,AutoNx,AutoPaoDian
記得要用逗號隔開,就這樣。

📢3個泡點Event下載:Download

補充

我有看到對岸的另一種寫法 也提供給各位參考 MapleMap.java

    /**
     * 计算方法暂时如下.
     *
     * @试运行: 一天24小时 1小时:41点 1小时等于60分钟 60分钟划分为6份 每份10分钟 每10分钟1次 每次7点
     * @按等级计算公式: int givNx = ((jsNx * chr.getLevel()/2) + Nx);
     * @备注信息: 以上计算方法结果如下: 100级玩家/每天最多獲得1000点券。
     */
    public void AutoNx(int jsNx, boolean isAutoPoints) {
        if (mapid != 910000000) {
            return;
        }
        for (MapleCharacter chr : characters) {
            if (chr != null) {
//                if (chr.getClient().getLastPing() <= 0) {
//                    chr.getClient().sendPing();
//                }
                if (isAutoPoints) {
                    chr.gainPlayerPoints(jsNx);
                    chr.dropMessage(5, "[系統獎勵] 在線獎勵獲得 [" + jsNx + "] 點積分.");
                } else {
                    int givNx = ((chr.getLevel() / 10) + jsNx);
                    chr.modifyCSPoints(2, givNx);
                    chr.dropMessage(5, "[系統獎勵] 在線獎勵獲得 [" + givNx + "] 點抵用券.");
                }
            }
        }
    }

    /*
     * 市场泡点
     */
    public void AutoGain(int jsexp, int expRate) {
        if (mapid != 910000000) {
            return;
        }
        for (MapleCharacter chr : characters) {
            if (chr == null || chr.getLevel() >= 250) {
                return;
            }
            int givExp = ((jsexp * chr.getLevel()) + expRate);
            givExp *= 3;
            chr.gainExp(givExp, true, false, true);
            chr.dropMessage(5, "[系統獎勵] 在線獎勵獲得 [" + givExp + "] 點經驗.");
        }
    }