🧩 JavaScript API

Since v0.70.0

📖 概述

Tavo JavaScript API 是面向玩家及創作者提供的一套 JavaScript 介面,以方便使用者在開啟 JavaScript 支援時可以獲得強大的功能和高可玩性。

⚙️ 變數

變數用於儲存資料,JavaScript 本身的變數只能存活於頁面中,一旦重新整理就會遺失,因此我們提供一組變數 API 來協助使用者長期儲存資料。

取得變數

tavo.get(<name>[, <scope>])

例如:

let age = tavo.get('age')  // 取得聊天變數中的 age
let bestScore = tavo.get('bestScore', 'global')  // 取得全域最高分
let lover = tavo.get('lover', 'character')  // 取得目前角色的愛人

設定變數

tavo.set(<name>, <value>[, <scope>])

例如:

tavo.set('age', 16)  // 設定聊天變數 age = 16
tavo.set('Lily_lover', 'Colin', 'global')  // 設定全域變數,Lily 的愛人為 Colin
tavo.set('status', { hp: 100, mp: 32, location: 'Cave' })  // 設定目前聊天的狀態為:生命值 100,魔法值 32,地點 洞穴

刪除變數

tavo.unset(<name>[, <scope>])

例如:

tavo.set('age', 16)  // age = 16
tavo.unset('age')  // age = null

變數路徑

當操作變數時,我們支援路徑形式,例如:

tavo.set('status', { hp: 100, mp: 50 })
tavo.get('status.hp')  // 100
tavo.unset('status.hp')  // status = { mp: 50 }

在提示詞中使用變數

可以透過提示詞將變數發給模型,只需要在提示詞中使用 巨集 (macros) 即可:

{{getvar::<name>}} 取得變數(作用域為 chat,目前聊天) {{getglobalvar::<name>}} 取得變數(作用域為 chat,全域)

例如:

{{char}} 有了一個新名字 {{getvar::name}}
{{user}} 目前生命值 {{getvar::status.hp}}
全域歷史最高分 {{getglobalvar::highestScore}}

更多的變數巨集請參考

🔣 巨集參數(Macros)
../../supported-macros/#變數