🛠 事件程式碼
📍 掛接事件
目前位置:(?, ?)
掛接後該格會變成事件地塊(覆蓋原本的地塊)
快速加入
自動加入範本程式碼,並掛接在目前位置
已掛接事件
匯出 events.js
🧪 物品生成器
物品格式:{ name: "藥水", effect: onPotionHeal, desc: "可以回復生命的藥水" }
effect 是一個「函式」,物品被使用時會被呼叫。
先在「事件程式碼」分頁寫好效果函式,或按下面的快速範本自動生成。
快速範本
自動在「事件程式碼」分頁加入效果函式,並填好上面的欄位
產生的程式碼(貼進你的事件函式裡,例如寶箱事件)
🎒 目前背包
📖 bag API 小抄
// game.bag 是「真的 JS 陣列」!
// 沒有特殊方法,全部用原生陣列語法。
// 1. 先寫一個效果函式
function onPotionHeal() {
game.hp += 30;
game.message = "🧪 回復 30 HP!";
}
// 2. 加入物品:push
// (通常寫在寶箱、商店等事件裡)
game.bag.push({
name: "藥水",
effect: onPotionHeal,
desc: "可以回復生命的藥水"
});
// 3. 讀取
game.bag.length; // 物品總數
game.bag[0]; // 第一個物品
game.bag[0].name; // 它的名稱
// 有沒有藥水? → true / false
game.bag.some(function(it) {
return it.name === "藥水";
});
// 有幾瓶藥水? → 數字
game.bag.filter(function(it) {
return it.name === "藥水";
}).length;
// 4. 使用一瓶藥水:
// findIndex 找到 → splice 移除
// → 呼叫 effect()
var i = game.bag.findIndex(function(it) {
return it.name === "藥水";
});
if (i !== -1) {
var item = game.bag[i];
game.bag.splice(i, 1); // 從背包移除
item.effect(); // 發動效果
}
// 丟掉一個(不發動效果):
// 一樣 findIndex + splice,不呼叫 effect
game.bag = []; // 清空背包
玩家可以在地圖背包(按 B)點「使用」,或在戰鬥中按道具按鈕使用物品,
兩種方式都會呼叫物品的 effect 函式並消耗一個。
🏁 結局編輯
設定不同結局的觸發條件與顯示內容。條件為 JS 表達式,每次移動後檢查,第一個符合的結局會觸發。
匯出結局程式碼
把下面整段貼到 events.js(取代原本的 var gameEndings),
清除瀏覽器快取後結局設定依然保留。
🗺️ 地圖編輯
點擊或按住拖曳塗色。事件地塊由「事件程式碼」分頁管理,套用地圖後仍會保留。
筆刷
匯出地圖程式碼