# 🧩 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/#变量