henrybobo

Lv.1 初心者
管理成員
管理員
註冊
2022-08-27
文章
273
評分
66
聲望
0
以下是 MapleStory 腳本範例,它會在 NPC 主要腳本中使用,在玩家點擊 NPC 時執行。

JavaScript:
function start() {
cm.sendOk("歡迎來到我的商店!我有各種道具和裝備。");
cm.dispose();
}

解釋:
  1. start() 是 NPC 主要腳本中預設的函數,當玩家與 NPC 互動時會執行。
  2. cm.sendOk("歡迎來到我的商店!我有各種道具和裝備。"); 這行程式會顯示一個對話框給玩家,並顯示文字 "歡迎來到我的商店!我有各種道具和裝備。"
  3. cm.dispose(); 這行程式會結束 NPC 腳本,並回到主選單。
這只是一個最簡單的 MapleStory 腳本範例,實際上會有更多的 MapleStory 腳本函數可供使用,例如 cm.openShop() 、 cm.gainItem() 等。 需要了解更多的 MapleStory 腳本語

言,才能寫出更複雜的 NPC 腳本。


下面是一個簡單的 MapleStory NPC 腳本範例,它會建立一個商店,並在玩家點擊 NPC 時打開。

JavaScript:
function start() {
    cm.sendSimple("歡迎來到我的商店!我有各種道具和裝備。\r\n#L0#購買道具#l\r\n#L1#購買裝備#l");
}

function action(mode, type, selection) {
    if (mode == 1) {
        if (selection == 0) {
            cm.openShop(100);
        } else if (selection == 1) {
            cm.openShop(200);
        }
    }
    cm.dispose();
}

解釋:

  1. start() 函數是 NPC 主要腳本中預設的函數,當玩家與 NPC 互動時會執行。
  2. cm.sendSimple("歡迎來到我的商店!我有各種道具和裝備。\r\n#L0#購買道具#l\r\n#L1#購買裝備#l"); 這行程式會顯示一個選單給玩家,並顯示文字 "歡迎來到我的商店!我有各種道具和裝備。" 並兩個選項 "購買道具" 和 "購買裝備"
  3. action(mode, type, selection) 是 NPC 主要腳本中的另一個函數,它會在玩家選擇選單選項後執行。 mode 是互動模式, type 是互動類型, selection 是玩家選擇的選項。
  4. cm.openShop(100); 這行程式會打開商店 ID 為 100 的商店。


MapleStory 腳本語言有許多有用的函數,以下是一些常用的函數:

  1. cm.getPlayer(): 取得當前玩家的資訊
  2. cm.getMap(): 取得當前地圖資訊
  3. cm.getParty(): 取得當前隊伍資訊
  4. cm.getMeso(): 取得當前玩家的金錢數量
  5. cm.gainMeso(x): 給予玩家 x 數量的金錢
  6. cm.gainItem(itemId, quantity): 給予玩家 itemId 物品的數量為 quantity
  7. cm.openShop(shopId): 打開 shopId 商店
  8. cm.warp(mapId, portal): 將玩家傳送到 mapId 地圖的 portal 入口
  9. cm.dispose(): 結束 NPC 腳本
這些函數只是 MapleStory 腳本語言中的一部分,在實際開發中還有更多的函數


底下 這是一個簡單的 MapleStory 腳本語言寫的猜數字遊戲範例:

JavaScript:
var guessNumber = Math.floor(Math.random() * 100);
var playerGuess;

function start() {
    cm.sendNext("猜猜我想的是哪個數字? (1-100)");
    playerGuess = -1;
}

function action(mode, type, selection) {
    if (mode == 1) {
        playerGuess = selection;
        if (playerGuess == guessNumber) {
            cm.sendOk("恭喜你! 你猜對了! 數字是 " + guessNumber);
            cm.dispose();
        } else if (playerGuess < guessNumber) {
            cm.sendNext("你猜的數字太小了! 再試一次吧!");
        } else {
            cm.sendNext("你猜的數字太大了! 再試一次吧!");
        }
    }
}
 
  • Like
反饋: r112982