在製作 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)