脚本系统
player 对象
脚本系统 用 player 读取和修改玩家属性 `player` 是脚本里最常用的对象之一。它主要用来读取玩家属性、组合属性、表格、动态字符串,以及控制事件开关。 # 什么时候会用到它 常见场景有这些: 读取金币、体力、章节进度 给玩家加经验、扣体力 读取组合属性结果 读取或写入动态字符串 开启或关闭某个事件
脚本系统
用 player 读取和修改玩家属性
`player` 是脚本里最常用的对象之一。它主要用来读取玩家属性、组合属性、表格、动态字符串,以及控制事件开关。
# 什么时候会用到它
常见场景有这些:
- 读取金币、体力、章节进度
- 给玩家加经验、扣体力
- 读取组合属性结果
- 读取或写入动态字符串
- 开启或关闭某个事件
# 常用方法一览
| 方法 | 作用 |
|---|---|
player.getPro(name) |
读取玩家属性 |
player.setPro(name, value) |
直接设置玩家属性 |
player.addPro(name, value) |
给玩家属性加减数值 |
player.getComPro(name) |
读取组合属性 |
player.getString(name) |
读取动态字符串 |
player.setString(name, value) |
写入可编辑动态字符串 |
player.getTable(name) |
读取表格 |
player.getEventEnabled(name) |
查看事件是否启用 |
player.setEventEnabled(name, opened) |
启用或禁用事件 |
# 1. 读取和修改属性
# 读取属性
let gold = player.getPro("金币");
let stamina = player.getPro("体力");
# 直接设置属性
player.setPro("体力", 100);
player.setPro("当前章节", 2);
# 增加或减少属性
player.addPro("金币", 100);
player.addPro("体力", -5);
如果你只是想做“加一点”或“减一点”,通常直接用 addPro 就够了。
# 2. 读取组合属性
如果这个值本来就是在 组合属性 里算出来的,直接用 getComPro:
let battlePower = player.getComPro("战力");
let maxHp = player.getComPro("生命上限");
这很适合拿来做判断,例如:
if (player.getComPro("战力") >= 2000) {
player.setEventEnabled("Boss挑战", true);
}
# 3. 读取和写入动态字符串
# 读取动态字符串
let title = player.getString("当前称号");
let summary = player.getString("战斗摘要");
# 写入动态字符串
player.setString("玩家留言", "今晚继续推进主线");
player.setString("战斗摘要", "你成功击败了当前怪物。");
setString 适合写入可以编辑的动态字符串内容。
如果目标字符串本身不是可写类型,写入会失败。
# 4. 读取表格
如果你在项目里用了表格,可以这样取出来:
let table = player.getTable("掉落表");
读取后常见会继续用:
let value = table?.getData("普通怪", "金币");
如果这个表格支持写入,也可以继续调用它的写入方法。
# 5. 控制事件开关
# 查看事件是否启用
let opened = player.getEventEnabled("每日奖励");
# 开启或关闭事件
player.setEventEnabled("每日奖励", true);
player.setEventEnabled("隐藏事件", false);
这很适合做:
- 某段剧情结束后再开放事件
- 某个阶段里暂时关闭事件
# 一个常见写法
下面这个例子会先扣体力,再决定是否开放新事件:
player.addPro("体力", -10);
if (player.getPro("体力") <= 0) {
player.setEventEnabled("休息事件", true);
}
# 使用时要注意的几件事
setPro和addPro直接改的是普通属性。- 组合属性用
getComPro读取更清楚。 setString只适合写可编辑动态字符串。- 找不到对应名字时,方法可能会返回
false、undefined或空结果。
# 适合接着看什么
如果你接下来要操作对象列表或当前对象,可以继续看: