返回教學列表
JS教學

JS NPC 次數紀錄 Logs 系統介紹

特別說明: 此篇教學內的 Logs 函數與框架為 Devil端專屬 (僅本端可使用),如果使用其他核心引擎可能無法兼容。

在製作 NPC 腳本(例如每日簽到、副本進入限制、帳號限購一次)時,我們必須經常針對「玩家領取或執行的次數」進行紀錄。系統提供了非常完整的次數記錄函數 (Logs) 讓開發者使用,底下將依依介紹各種 Logs 的儲存層級(帳號/角色)以及時效(永久/日/週)。


1. PrizeLog 帳號.永久

說明:永久紀錄「該帳號」的次數(適合用於帳號禮包、新手一次性獎勵)。

-- 取得次數 cm.getPlayer().getPrizeLog(log) -- 設置次數 (+1) cm.getPlayer().setPrizeLog(log)

2. OneTimeLog 角色.永久

說明:永久紀錄「該角色」的次數(適合用於單一角色的專屬任務、轉職任務)。

-- 取得次數 cm.getPlayer().getOneTimeLog(log) -- 設置次數 (+1) cm.getPlayer().setOneTimeLog(log)

3. BossLog 角色.單日

說明:紀錄「該角色」的『當天』次數(過午夜自動重置,適合用於每日副本、每日簽到、地圖王挑戰)。

-- 取得次數 cm.getPlayer().getBossLog(log) -- 設置次數 (+1) cm.getPlayer().setBossLog(log)

4. WeekLog 角色.單週

說明:紀錄「該角色」的『當周』次數(每週自動重置,適合用於週常任務、週常王關卡)。

-- 取得次數 cm.getPlayer().getWeekLog(log) -- 設置次數 (+1) cm.getPlayer().setWeekLog(log)

5. AcLog 帳號.單日

說明:紀錄「該帳號」的『當天』次數(過午夜自動重置,適合用於帳號每日登入禮、帳號每日轉盤抽獎)。

-- 取得次數 cm.getPlayer().getAcLog(log) -- 設置次數 (+1) cm.getPlayer().setAcLog(log)

6. WeekAcLog 帳號.單週

說明:紀錄「該帳號」的『當周』次數(每週自動重置,適合用於限制一帳號每週只能通關幾次的頂級副本)。

-- 取得次數 cm.getPlayer().getWeekAcLog(log) -- 設置次數 (+1) cm.getPlayer().setWeekAcLog(log)

7. CharacterSet 角色.永久(可自訂數值)

說明:紀錄「該角色」的永久次數,但有別於一般的 Log 只能 +1,此函數可以自由增減指定數量,甚至直接覆蓋數值(適合用於積分點數、活躍度累積)。

-- 取得次數 cm.getPlayer().getCharacterSet(log) -- 設置次數 (直接將該 log 值修改為「數量」) cm.getPlayer().setCharacterSet(log, 數量) -- 增加次數 (將目前的 log 值再加上「數量」) cm.getPlayer().addCharacterSet(log, 數量)

8. CharacterSet 帳號次數 帳號.永久(可自訂數值)

說明:與上面的用途相同,但此函數紀錄在「該帳號」底下,讓同帳號下所有角色共享數據(例如:帳號共享的特殊積分或活躍度)。

-- 取得次數 (最後加上 true 代表對帳號進行存取) cm.getPlayer().getCharacterSet(log, true) -- 設置次數 (直接修改為指定數值) cm.getPlayer().setCharacterSet(log, 數量, true) -- 增加次數 (再加上指定數值) cm.getPlayer().addCharacterSet(log, 數量, true)