NPC基本中級教學

已更新:2020年10月30日


還沒看完的初學者可以先看

https://www.tmsbobo.com/post/npc基本教學

接下來會教一些比較重要的判斷式or基礎語句


(一)運算子用法

運算子1: &&

var status = -1;
var A = true;
var B = true;
function start() {
 if (A && B) {
 cm.sendOk("參數A 跟 參數B 接為 true");
    } else {
 cm.sendOk("參數A 跟 參數B 有一個非 true");
    }
 cm.dispose();
} 

這邊稍微說明一下 因為 初始定義 A 跟 B 賦予true

因此執行此NPC會顯示 "參數A 跟 參數B 接為 true"


運算子2: ||


var status = -1;
var A = true;
var B = true;
function start() {
 if (A || B) {
 cm.sendOk("參數A 跟 參數B 其中之一為 true");
    } else {
 cm.sendOk("參數A 跟 參數B 接不為 true");
    }
 cm.dispose();
} 

運算子3: != (不等於) == (等於)

var status = -1;
var A = true;
var B = true;
function start() {
 if (A != B) {
 cm.sendOk("參數A 跟 參數B 的值不同");
    } else if (A == B) {
 cm.sendOk("參數A 跟 參數B 的值相同");
    }
 cm.dispose();
} 

(二)NPC基本函數用法

----------------------------------------------------------------------------------------

dispose 結束與 NPC 的對話,讓你可以與其他 NPC 對話。 用法: cm.dispose();

----------------------------------------------------------------------------------------

sendNext 顯示一個帶有「下一個」按鈕的對話窗。 用法: cm.sendNext("[文本]");

----------------------------------------------------------------------------------------

sendPrev 顯示一個帶有「上一個」按鈕的對話窗。 How to use: cm.sendPrev("[文本]");

----------------------------------------------------------------------------------------

sendNextPrev 顯示一個帶有「上一個」、「下一個」按鈕的對話窗。 用法: cm.sendNextPrev("[文本]");

----------------------------------------------------------------------------------------

sendOk 顯示一個帶有「確認」按鈕的對話窗。 用法: cm.sendOk("[文本]");

----------------------------------------------------------------------------------------

sendYesNo 顯示一個帶有「是」、「否」按鈕的對話窗,「否」將結束對話,除非額外改寫。 用法: cm.sendYesNo("[文本]");

----------------------------------------------------------------------------------------

sendAcceptDecline 顯示一個帶有「接受」、「拒絕」按鈕的對話窗,「拒絕」將結束對話,除非額外改寫。 用法: cm.sendAcceptDecline("[文本]");

----------------------------------------------------------------------------------------

sendSimple 顯示一個不帶有任何按鈕的對話框。 用法: cm.sendSimple("[文本]");

----------------------------------------------------------------------------------------

sendStyle 顯示一個選擇造型的對話框。 用法: cm.sendStyle("[文本]", [變數]); // 你需要宣告該變數

----------------------------------------------------------------------------------------

warp 傳送腳本到地圖。 用法: cm.warp([地圖ID], [傳送點]); // 預設則設定 [傳送點] 為 0

----------------------------------------------------------------------------------------

openShop 開啟商店視窗。 用法: cm.openShop([商店ID]);

----------------------------------------------------------------------------------------

haveItem 檢查角色是否有道具 (背包或身上)。 用法: cm.haveItem([道具ID]);

----------------------------------------------------------------------------------------

gainItem 給予或收回角色道具 用法: cm.gainItem([道具ID], [數量]); // 設定 [數量] 為負數來收回道具

----------------------------------------------------------------------------------------

changeJob 修改角色的職業。 用法: cm.changeJob([職業ID]);

----------------------------------------------------------------------------------------

getJob 取得角色的職業。 用法: cm.getJob();

----------------------------------------------------------------------------------------

startQuest 開始任務。 用法: cm.startQuest([任務ID]);

----------------------------------------------------------------------------------------

completeQuest 完成任務。 用法: cm.completeQuest([任務ID]);

----------------------------------------------------------------------------------------

forfeitQuest 放棄任務。 用法: cm.forfeitQuest([任務ID]);

----------------------------------------------------------------------------------------

getMeso 取得角色楓幣。 用法: cm.getMeso();

----------------------------------------------------------------------------------------

gainMeso 給予或收回角色楓幣。 用法: cm.gainMeso([數量]); // 設定 [數量] 為負數來收回楓幣

----------------------------------------------------------------------------------------

gainExp 給予或收回角色經驗值。 用法: cm.gainExp([數量]); // 設定 [數量] 為負數來收回經驗值

----------------------------------------------------------------------------------------

getLevel 取得角色的等級。 用法: cm.getLevel();

----------------------------------------------------------------------------------------

teachSkill 教角色技能。 用法: cm.teachSkill([技能ID], [技能等級], [技能最大等級]);

----------------------------------------------------------------------------------------

modifyCSPoint 給予或收回點數。 用法1:cm.modifyCSPoint([點數], [種類]); // [種類]:1 = GASH 點數,2 = 楓葉點數

用法2:cm.modifyCSPoint([點數], [種類], true); // [種類]:點數型態 :是否顯示訊息

----------------------------------------------------------------------------------------

getBossLog

設定當日玩家打的LOG

用法: cm.getBossLog("BOSS紀錄");//取得名稱為 BOSS紀錄 的次數

----------------------------------------------------------------------------------------

setBossLog

設定當日玩家打的LOG

用法: cm.setBossLog("BOSS紀錄");//取得名稱為 BOSS紀錄 的次數

----------------------------------------------------------------------------------------

舉例:


var status = -1;
var log = "打龍王";
function start() { 
    status = -1; 
    action(1, 0, 0); 
} 

function action(mode, type, selection) { 
    if (mode == 1) { 
        status++; 
    } else { 
        status--; 
    } 
   if (status == 0) { 
        cm.sendOk("你目前打了" + cm.getBossLog(log) + "場龍王"); 
    } else {      
         cm.dispose(); 
    } 
}  



#楓之谷NPC基礎中級教學


981 次瀏覽0 則留言

最新文章

查看全部