#
状态栏系统
OMate 的状态栏系统允许您在聊天中跟踪和管理各种状态值,如角色属性、资源数量、进度等。状态栏与事件系统紧密集成,可以实现基于状态变化的自动化交互。
#
状态栏概述
状态栏是一个动态显示系统,可以在聊天界面中实时展示各种状态信息。这些状态值可以:
- 显示角色的各种属性(健康、魔法、经验等)
- 跟踪资源数量(金币、道具、材料等)
- 记录进度信息(任务完成度、关系等级等)
- 触发基于状态的事件和交互
#
状态栏语法
#
基本格式
状态栏使用特殊的 XML 标签格式,需要在 AI 回复中包含:
<statusBar>
<状态名称>图标|数值</状态名称>
<状态名称>图标|数值</状态名称>
</statusBar>
#
语法说明
- 外层标签:
<statusBar>
和</statusBar>
包围所有状态项 - 状态项格式:
<状态名称>图标|数值</状态名称>
- 状态名称:可以是任意中文或英文名称
- 图标:使用 Emoji 或特殊符号来直观表示状态类型
- 数值:可以是数字、文本或组合形式
- 分隔符:使用竖线
|
分隔图标和数值
#
示例
<statusBar>
<健康>❤️|85</健康>
<魔法>💙|120</魔法>
<金币>💰|1500</金币>
<经验>⭐|2340</经验>
<等级>🏆|15</等级>
</statusBar>
#
常用状态类型
#
角色属性
<statusBar>
<生命值>❤️|100</生命值>
<魔法值>💙|80</魔法值>
<体力>⚡|90</体力>
<精神>🧠|75</精神>
<力量>💪|85</力量>
<敏捷>🏃|70</敏捷>
<智力>📚|95</智力>
</statusBar>
#
资源和物品
<statusBar>
<金币>💰|2500</金币>
<宝石>💎|12</宝石>
<食物>🍖|8</食物>
<药水>🧪|5</药水>
<武器>⚔️|铁剑</武器>
<护甲>🛡️|皮甲</护甲>
</statusBar>
#
关系和进度
<statusBar>
<亲密度>💕|75</亲密度>
<信任度>🤝|60</信任度>
<声望>👑|高</声望>
<任务进度>📋|3/5</任务进度>
<完成度>📊|80%</完成度>
</statusBar>
#
环境和时间
<statusBar>
<天气>☀️|晴朗</天气>
<时间>🕐|下午3点</时间>
<季节>🌸|春天</季节>
<位置>📍|王都</位置>
</statusBar>
#
状态栏的使用方法
#
在提示词注入中设置
要让 AI 自动输出状态栏,您可以在「提示词注入」中添加相关指令:
- 进入「提示词注入」页面
- 创建一个新的提示词注入
- 设置为「手动启用」
- 位置选择「聊天记录」
- 深度设置为
1
- 在对话中启用
示例提示词内容:
每次对话后,在最后输出本次对话更新的状态值,格式请参考:
<statusBar>
<亲密度>❤️|30</亲密度>
</statusBar>
亲密度初始值为30,每次对话增加10
#
手动添加状态栏
您也可以在角色设定或对话中直接要求 AI 输出状态栏:
请在回复末尾显示当前的角色状态,包括健康值、魔法值和金币数量。
#
与事件系统的集成
状态栏与事件书系统紧密集成,可以实现基于状态变化的自动事件触发。
#
状态条件事件
在事件书中,您可以设置「状态值条件」类型的完成条件,当状态栏中的值满足特定条件时,事件会自动完成。
支持的比较操作符:
- 等于 (eq):状态值等于指定值
- 不等于 (neq):状态值不等于指定值
- 大于 (gt):状态值大于指定值
- 小于 (lt):状态值小于指定值
- 大于等于 (gte):状态值大于或等于指定值
- 小于等于 (lte):状态值小于或等于指定值
- 包含 (contains):状态值包含指定文本
- 不包含 (notcontains):状态值不包含指定文本
- 为空 (empty):状态值为空
- 不为空 (notempty):状态值不为空
#
示例场景
健康值低触发事件:
{
"key": "健康",
"op": "lt",
"value": 20
}
金币达到目标触发事件:
{
"key": "金币",
"op": "gte",
"value": 1000
}
获得特定装备触发事件:
{
"key": "武器",
"op": "contains",
"value": "传说"
}
#
状态栏的显示和管理
#
自动提取
系统会自动从 AI 回复中提取状态栏信息,并在聊天界面中显示。状态栏通常显示在消息的特定位置,方便用户查看当前状态。
#
状态持久化
状态值会在对话过程中保持,新的状态栏会更新相应的值,未提及的状态保持不变。这确保了状态的连续性和一致性。
#
语音过滤
在语音朗读功能中,状态栏标签及其内容会被自动过滤,不会被朗读出来,确保语音体验的流畅性。
#
最佳实践
#
状态设计原则
- 简洁明了:使用直观的图标和简短的名称
- 一致性:在整个对话中保持状态名称和格式的一致
- 相关性:只显示与当前情境相关的状态
- 适度更新:不要在每条消息中都更新所有状态
#
图标选择建议
- 生命/健康:❤️ 💗 💖
- 魔法/能量:💙 ⚡ 🔋
- 金钱/财富:💰 💵 💎
- 经验/等级:⭐ 🌟 ✨
- 物品/装备:⚔️ 🛡️ 🏹
- 关系/情感:💕 💖 🤝
- 进度/完成:📊 📈 ✅
- 时间/环境:🕐 ☀️ 🌙
#
数值格式建议
- 纯数字:
85
、1500
- 分数形式:
3/5
、80/100
- 百分比:
75%
、100%
- 等级描述:
高
、中等
、低
- 组合形式:
85/100 (85%)
#
常见问题
Q: 状态栏不显示怎么办? A: 检查 XML 标签格式是否正确,确保使用了正确的开始和结束标签。
Q: 可以使用中文状态名称吗? A: 可以,系统完全支持中文状态名称。
Q: 状态值可以是文本吗? A: 可以,状态值支持数字、文本或组合形式。
Q: 如何重置所有状态? A: 可以输出一个新的完整状态栏来覆盖之前的所有状态。
通过合理使用状态栏系统,您可以创建更加丰富和互动的聊天体验,让对话具有游戏化的元素和动态的状态跟踪功能。