LPAI AI 游戏编辑器文档

脚本系统

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);
}

# 使用时要注意的几件事

  • setProaddPro 直接改的是普通属性。
  • 组合属性用 getComPro 读取更清楚。
  • setString 只适合写可编辑动态字符串。
  • 找不到对应名字时,方法可能会返回 falseundefined 或空结果。

# 适合接着看什么

如果你接下来要操作对象列表或当前对象,可以继续看:

  1. objects 对象
  2. tools 对象