chenhui540

修正任務:趕走惡魔的方法

發表於 2022-12-16 19:12:33
chenhui540 發表於 2022-12-16 19:12:33 | 顯示全部樓層 |閱讀模式
1.png
2.png
3.png



任務: 趕走惡魔的方法   如何識別同一地圖  同一ID的NPC   應為所在地圖 比較大  我們就可以使用 人物所在座標來判定。

大爆炸之前的NPC腳本


/*
        名字:        神聖的石頭
        地圖:        冰獨眼獸洞穴Ⅰ
        描述:        105090000
*/

var maps = Array(105050200, 105060000, 105070000, 105090000, 105090000, 105090100);

function start() {
        if (cm.getQuestStatus(2236) != 1) {//讀取任務狀態
                cm.dispose();
                return;
                }
        if (cm.getQuestRecord(2236).getCustomData() == null) {//讀取任務狀態
                cm.setQuestRecord(cm.getPlayer(), 2236, "000000");//給予過渡的要求
                }
        for (var i = 0; i < maps.length; i++)
        if (cm.getPlayer().getMapId() == maps
[i]) {
        if (cm.getPlayer().getMapId() == 105090000 && cm.getPlayer().getPosition().y < 78) var slot = 4;//區分角色 Y 座標 範圍
        else if (cm.getPlayer().getMapId() == 105090000 && cm.getPlayer().getPosition().y > 78) var slot = 3;
                else var slot = i;
                }
                var progress = cm.getQuestRecord(2236).getCustomData();
                var ch = progress[slot];
        if (ch == '0') {
                var nextProgress = progress.substr(0, slot) + '1' + progress.substr(slot + 1);
                cm.gainItem(4032263, -1);
                cm.sendOk("由於靈符的法力,封印了該地區的邪惡勢力。");
                cm.setQuestRecord(cm.getPlayer(), 2236, nextProgress);
                cm.getPlayer().updateQuest(cm.getQuestRecord(2236), true);//刷新任務
                }
                cm.dispose();
}



大爆炸之後地圖改版 NPC都是分散的 所以寫成

/*
        名字:        神聖的石頭
        地圖:        冰冷的風
        描述:        105020200
*/

var maps = Array(105010100, 105020000, 105020100, 105020300, 105020200, 105020400);

function start() {
        if (cm.getQuestStatus(2236) != 1) {//读取任务状态
                cm.dispose();
                return;
                }
        if (cm.getQuestRecord(2236).getCustomData() == null) {//读取任务状态
                cm.setQuestRecord(cm.getPlayer(), 2236, "000000");//给予过渡的要求
                }
        for (var i = 0; i < maps.length; i++)
        if (cm.getPlayer().getMapId() == maps
[i]) {
                var slot = i;
                }
                var progress = cm.getQuestRecord(2236).getCustomData();
                var ch = progress[slot];
        if (ch == '0') {
                var nextProgress = progress.substr(0, slot) + '1' + progress.substr(slot + 1);
                cm.gainItem(4032263, -1);
                cm.sendOk("由於靈符的法力,封印了該地區的邪惡勢力。");
                cm.setQuestRecord(cm.getPlayer(), 2236, nextProgress);
                cm.getPlayer().updateQuest(cm.getQuestRecord(2236), true);
                }
                cm.dispose();
}


瀏覽 4854 回復 3

您需要登錄後才可以回帖 登錄 | 註冊會員

返回頂部