LPAI AI 游戏编辑器文档

基本概念

字符串与图标

基本概念 字符串与图标 `字符串 / 图标` 模块用来管理文字内容、SVG 图标、图片图标,以及会随着条件变化的显示内容。 # 在哪里看 当前编辑器里有单独的 字符串 / 图标 模块。 在这个模块里,你会看到: 新增 新增图标 搜索框 分类筛选 导入 Excel 导出 Excel 图标市场 # 这一页能做什么

基本概念

字符串与图标

`字符串 / 图标` 模块用来管理文字内容、SVG 图标、图片图标,以及会随着条件变化的显示内容。

# 在哪里看

当前编辑器里有单独的 字符串 / 图标 模块。

在这个模块里,你会看到:

  • 新增
  • 新增图标
  • 搜索框
  • 分类筛选
  • 导入 Excel
  • 导出 Excel
  • 图标市场

# 这一页能做什么

管理文字内容

创建一段说明、一段标题、一段可变化的文本。

管理图标内容

创建 SVG 图标、图片图标,或者用脚本返回图标内容。

做多状态切换

同一个字符串或图标可以按不同条件显示不同内容。

做可写内容

勾选 `允许修改` 后,事件、脚本和其他流程可以把内容写进去。

# 编辑面板里有什么

当前 字符串 / 图标 编辑面板里,常见会看到这些内容:

项目 作用
名字 这条字符串或图标的名称
类别 用来分组
允许修改 让别的功能把内容写进来
需求模式 多状态内容按什么顺序判断
脚本 直接返回最终内容
状态列表 给同一条内容配置多个状态

# 什么是状态列表

状态列表 表示同一条内容可以有多个版本。

例如一个称号字符串可以这样配:

状态 显示内容
状态 0 新手
状态 1 熟练者
状态 2 大师

每个状态下面都可以再配 需求属性,满足对应条件时就显示那一层内容。

# 需求模式怎么理解

当前界面里会看到三种模式:

  • 逐级判断
  • 最后满足
  • 最先生效

它们决定的是:当多条状态都满足时,最后显示哪一条。

# 图标为什么和字符串放在一起

因为当前编辑器里,图标和字符串用的是同一套管理方式。

所以你会看到:

  • 文字内容和图标都能分状态
  • 图标和字符串都能写脚本
  • 图标和字符串都能被别的地方引用

图标常见会是两类:

  • SVG图标
  • 图片图标

# 脚本模式是什么

编辑面板里有单独的 脚本 区域。

如果写了脚本:

  • 脚本会直接返回最终内容
  • 下方 状态列表 只保留为回退数据
  • 当前内容不能再同时勾选 允许修改

也就是说,当前编辑器里:

模式 说明
允许修改 这条内容可以被别的功能写入
脚本 这条内容由脚本实时返回

这两种模式不能同时开启。

# 图标相关的额外功能

如果当前内容是图标,你还会看到一些额外功能:

  • 图标预览
  • 图标 / 图片内容编辑
  • 图标市场
  • 脚本图标预览
  • 启用动画
  • 每 x 秒切换一级

这表示图标也可以像文字一样分状态切换。

# 什么时候会用到它

常见场景包括:

  • 页面标题
  • 状态说明
  • 按钮文字
  • 角色称号
  • 动态提示
  • 项目内图标

# 一个最常见的理解方式

先创建一条字符串或图标
-> 再决定它有没有多个状态
-> 再决定它是允许修改,还是用脚本返回

# 看完这页后

如果你已经知道字符串和图标怎么分了,下一步通常会继续看:

  1. 深入理解物品
  2. 自定义物品

# 示例 2:根据稀有度返回图标

let rarity = player.getPro("稀有度")
if (rarity >= 5) return '<span style="color:#f59e0b">★★★★★</span>'
if (rarity >= 4) return '<span style="color:#a78bfa">★★★★</span>'
return '<span style="color:#94a3b8">★★★</span>'

# 示例 3:读取表格做说明卡

let table = player.getTable("装备说明表")
let row = player.getString("当前装备行号")
let name = table.getData(row, "名字")
let desc = table.getData(row, "描述")
return `<strong>${name}</strong><br>${desc}`

# 和对象系统联动时要注意什么

对象身上的动态字符串和玩家级动态字符串,在脚本里都可以被读取;对象上下文下会先采用对象自己的值。

这让你可以很自然地做出:

  • 每个 NPC 各自不同的称呼
  • 每个物品对象不同的说明文本
  • 同一模板在不同对象实例上展示不同内容

如果你把它和 AI、地图、表格一起用,当前常见的分工是:

  1. 属性 / 表格先存真实状态
  2. 对象系统补当前对象上下文
  3. 动态字符串脚本把状态整理成玩家可读文本
  4. AI 状态提示词再按需引用这段整理后的字符串

这条顺序很关键,因为它在避免一件常见问题:

  • 让 AI 直接读一堆零散原始字段
  • 或者让多个页面各自重复拼一套说明文案

同理,特效和控件样式层也更适合消费已经整理好的字符串或状态结果,而不是自己直接承担真实状态定义。

先整理成稳定动态字符串,再让 AI 或别的系统消费,后面会稳很多。

特别是在当前 AI 结构里,这个顺序很值钱,因为:

  • 状态提示词适合拼已经整理好的上下文
  • 不适合每次都现场手拼一堆零散字段

如果你把状态先沉成一段稳定动态字符串,再让 AI 读它,提示词会短很多,排错也会更容易。

# 当前版本里,动态字符串最适合扮演哪几种角色

你可以把它粗分成三类:

角色 更适合什么
显示文本 标题、描述、提示、说明卡
可写文本落点 玩家输入、AI 摘要、系统回写文本
脚本整理层 把属性 / 表格 / 对象状态转成统一说明

真正容易出问题的,往往不是功能不够,而是把这三类角色混到了同一个字符串上。

更实用地说,很多项目里至少要准备两类字符串:

  • 给玩家看的字符串
  • 给 AI 或系统消费的摘要字符串

这两者可以都来自同一份状态,但不一定该共用同一个最终文本模板。

# 一个常见的判断方法

如果你拿不准某段内容到底该放哪,先问自己这三个问题:

  1. 这段内容是不是真实状态本身
  2. 它是不是要某一刻写进去并长期保留
  3. 它是不是每次显示时按当前状态重新生成

对应地:

你的答案 更适合用什么
是真实状态 属性 / 表格 / 对象字段
是要写进去保存的文本 可写动态字符串 / 字符串表格
是实时重新生成的说明 动态字符串脚本

# 常见用法

  1. 用普通字符串做静态文案。
  2. 用分级字符串做简单条件切换。
  3. 用脚本字符串做复杂模板和图标生成。
  4. 用“允许修改”做玩家输入类内容。
  5. 脚本模式和允许修改,通常会分开使用。
  6. 如果这段内容要“每次显示都重新算”,常见会用脚本;如果它要“某一刻写进去并持久保存”,常见会用“允许修改” / 表格 / 属性。
  7. 如果你要给 AI 看当前状态,常见会先整理成一段稳定的动态字符串,再放进状态提示词。
  8. 如果你要做图标 / 徽章 / 稀有度标签,常见会把“状态判断”放脚本里,把“表现样式”放 SVG / HTML 里。

# 一套常见的落地顺序

如果你不知道某段文本最终该怎么做,当前版本里常见会按这条线整理:

属性 / 表格 / 对象先存状态
  -> 组合属性先算出数值
  -> 动态字符串再整理成文本 / 图标
  -> 场景、AI、邮件、对象卡片去消费它

这条顺序能把“状态”“计算”“解释”“消费”四层分得比较干净。

Tip 动态字符串脚本的运行限制、对象上下文和返回值,后面可以继续看: