属性
属性是你在领域中用来记录玩家状态的核心工具——比如玩家的等级、金币、生命力,或者他们完成了哪些任务、获得了哪些天赋。
简单来说,属性就是一组可以自由定义的“变量”,每个玩家(或者整个领域)都拥有一份属于自己的属性值。例如:
- 数字属性:
金币、等级、体力 - 文本属性:
名字、性别、当前称号 - 集合属性:
天赋(可以同时拥有多个天赋)、已触发事件(记录哪些事件已经发生过) - 玩家属性:
队长ID(指向另一个玩家,用于组队功能)
属性可以是玩家私有的(默认),也可以是全局的——全局属性的值在所有玩家之间共享,比如“服务器总在线人数”或“当前拍卖会的最低价”。
在对话中展示属性值
当你在写NPC对话时,可以用
[属性:属性名] 把属性值动态插入到文本中。例如:村长说:“年轻的冒险者,你现在有[属性:金币]枚金币。”
玩家看到的就是“你现在有 120 枚金币”这样的实时数字。同样的语法也可以用在页面描述、选项文本中。
用属性控制剧情分支
属性还可以作为条件,决定某个选项、某个NPC甚至某条对话是否对玩家可见。
假设你想让玩家只有“等级 ≥ 5”才能进入森林深处的洞穴。你可以在连接“森林 >> 洞穴”的路由上设置一个条件:
条件:属性“等级” ≥ 5
不满足条件的玩家根本看不到这条路,也就无法误入高级区域。
同样,在NPC对话中,你可以为某个选项设置条件,比如:
选项:购买治疗药水(需要50金币)
条件:属性“金币” ≥ 50
如果玩家金币不足,这个选项不会出现,避免了玩家点了之后才提示“钱不够”的尴尬。
在动作中修改属性
剧情推进、购买物品、完成任务——所有这些都会改变玩家的状态,而动作就是用来修改属性的。
比如,当玩家点击“接受任务”选项时,你可以执行动作:
- 将属性“任务进度”设置为1
- 给玩家增加属性“金币” +50
动作支持“相对修改”(加/减)和“绝对设置”(直接变成某个值)。对于集合属性,你还可以“添加”一个元素(比如获得新天赋)或“移除”一个元素。
常见的使用场景
1. 任务计数器
创建一个数字属性
任务进度,初始为0。玩家每完成一个环节,就用动作将它 +1。你可以通过条件判断任务进度来解锁新的对话或地图。2. 天赋/称号系统
用集合属性
天赋 来存储玩家获得的天赋列表。当玩家选择了“天灵根”,就用“添加”动作把“天灵根”这个字符串加进集合。之后可以用条件“包含‘天灵根’”来触发特殊事件。3. 开关标志
用集合属性记录哪些日常事件今天已经触发过,例如
每日事件触发。每次玩家尝试触发事件时,先检查集合里是否包含该事件ID,如果没有才执行并加入集合。4. 临时变量
有时候你需要在对话中暂存一个值,比如让玩家输入一个数字,然后存起来稍后使用。这时可以创建一个临时属性(名字如
临时数字),并给它设置一个“不可能”条件,这样它就不会出现在玩家信息页面上,只作为内部工作变量。