删除变量
deleteVariable
删除变量, 如果变量不存在则什么也不做。
typescript
async function deleteVariable(variable_path: string, { type, message_id }?: VariableOption): Promise<boolean> {
let result: boolean = false;
await updateVariablesWith(old_variables => { result = _.unset(old_variables, variable_path); return old_variables; }, { type, message_id });
return result;
}
参数
variable_path
要删除的变量路径:
- 如果变量不存在,则什么也不做
- 如果变量已经存在,则删除该变量
option?
一个可选的配置对象,包含以下属性:
type?
:string
- 指定操作的变量类型,默认为
'chat'
。 - 可选值:
'script'
: 针对特定脚本的变量。'message'
: 针对特定消息楼层的变量。'chat'
: 整个聊天会话的变量(默认)。'character'
: 当前角色卡的变量。'global'
: 全局变量。
- 指定操作的变量类型,默认为
message_id?
:number | 'latest'
- 当
type
为'message'
时,此参数指定目标消息的楼层号。 - 如果是数字,表示具体的楼层 ID。
- 如果是负数,表示相对于最新消息的深度索引 (例如,
-1
表示最新的消息,-2
表示倒数第二条)。 'latest'
(默认值): 表示最新的消息楼层。- 此参数仅在
type
为'message'
时有效。
- 当
script_id?
:string
- 当
type
为'script'
时,此参数指定目标脚本的ID。 - 如果在脚本中调用,则你可以用
getScriptId()
获取当前脚本的ID。 - 此参数仅在
type
为'script'
时有效。
- 当
返回值
- 布尔值:
Promise<boolean>
示例
typescript
// 执行前变量: `{爱城华恋: {好感度: 5}}`
await deleteVariable("爱城华恋.好感度");
// 执行后变量: `{爱城华恋: {}}`