LPAI 独立网页游戏 AI 社区指南

脚本 API

player:玩家状态 API

读取和写入当前玩家的属性、表格、动态字符串与事件开关。

脚本 API · 状态

把玩家状态读写分成可验证的小动作

`player` 只代表当前运行中的玩家。它不是数据库查询器,也不能读取其他玩家的完整存档。先读取、校验,再一次性写入,是最稳定的脚本习惯。

# 先区分四种状态

状态 API 是否适合写入
普通数值 getPro / setPro / addPro 行为脚本可写
派生数值 getComPro 只读
表格 getTable 只有动态表格可 setData
动态字符串 getString / setString 目标必须允许修改且不是脚本模式

渲染布局、组合属性脚本和动态字符串脚本应只调用读取方法。写入放在控件、事件或明确的动作脚本中。

# API 清单

方法 参数 返回
player.getPro(name) 属性 ID 或名称 数值;找不到时回退为组合属性或 undefined
player.setPro(name, value) 属性、目标值 成功 true,找不到 false;会执行上下限检查
player.addPro(name, delta) 属性、增量 成功 true,找不到 false;会执行上下限检查
player.getComPro(name) 组合属性 ID 或名称 当前派生结果
player.getTable(name) 表格 ID 或名称 表格代理或 undefined
player.getString(name) 动态字符串 ID 或名称 解析后的字符串
player.setString(name, value) 可写字符串、内容 成功 true,不可写时 false
player.getEventEnabled(name) 事件 ID 或名称 booleanundefined
player.setEventEnabled(name, enabled) 事件、开关 成功 true,找不到 false

AI 生成脚本时应先查询项目资源,使用真实 ID;显示名称可能重复,不能把用户可见文本当成稳定标识。

# 读取与写入的安全顺序

一个购买动作应遵循:

const price = 50;
if (player.getPro("金币") < price) {
  tools.showToast(tools.tr("金币不足"), "warning");
  return;
}

player.addPro("金币", -price);
player.addPro("经验", 10);
tools.showToast(tools.tr("购买成功"), "success");

复杂动作要先把所有条件算完,再集中写入。不要一边扣费一边发起异步请求,否则请求失败时很难回滚。

# 数值 API 的边界

setProaddPro 会按属性定义做数值归一化,并触发最小值/最大值检查。它们不会自动保存云端,也不会替你处理重复点击。需要持久化时,在动作完成后显式调用合适的存档工具。

不要在以下位置写入:

  • 组合属性脚本或动态字符串脚本;
  • 页面渲染每次都会重新执行的脚本;
  • 每帧脚本里没有频率控制的循环。

# 表格代理

const config = player.getTable("掉落配置");
const weight = Number(config?.getData("狼", "权重") || 0);

const log = player.getTable("行动日志");
if (log?.tableType === "dynamic") {
  log.setData(0, "内容", tools.tr("进入森林"));
}

静态表格只提供 getData;动态表格首次从项目默认数据初始化,后续写入进入玩家存档。使用 tableType 检查后再写,避免把配置表当成存档。

# 动态字符串代理

const oldName = player.getString("玩家昵称");
if (!oldName) return;
const ok = player.setString("玩家昵称", "新昵称");
if (!ok) tools.showToast(tools.tr("这个字符串不可修改"), "error");

setString 只适用于启用了“允许修改”的动态字符串。脚本模式字符串是实时计算值,不能同时作为写入目标。

# 事件开关

if (player.getPro("章节") >= 3) {
  player.setEventEnabled("每日任务", true);
}

事件开关只改变事件是否启用,不会删除事件配置。重新启用前要确认重复触发是否幂等。

# 验收清单

  • 找不到 ID 时脚本有明确回退,不会静默发放奖励。
  • 所有扣费和奖励在同一动作中可追踪、可防重复。
  • 静态表格不会被写入,动态表格写入可保存并恢复。
  • 不可写动态字符串会给出提示。
  • 只读脚本没有 setProaddPro 或异步副作用。

下一步阅读:objects:对象集合 APItools:外部能力 API