小功能设计-升级时可选随机奖励
===概述===
示例图
升级时可选随机奖励 的效果如下图。

示例工程
考虑到示例工程中的插件太多了,群友单独拿出来会遇到各种问题。
这里我建立了单独的解谜设计工程,并放入了集合中,方便熟悉用法。
| 小型示例工程集合链接: https://pan.baidu.com/s/1Z60Fht7alAGZymWOle68PQ提取码: 3r5e |
另外,示例中的插件一直在更新,而打包工程中的插件不一定会同步更新哦。
灵感来源
2025年11月23日,作者我写好了选择项窗口的插件,有个群友很快就用起来了。
(参考的文档“15.对话框 > 关于选择项窗口.docx”的章节“设计一个随机抽卡的多选项框”。)
我看他设计的内容感觉还不错。如下图。

可以考虑开一个坑,详细介绍一下这个功能怎么设计ヽ(*。>Д<)o゜。
===升级时可选随机奖励 - 实现===
基础插件
如果要从零开始设计,需要用到下图的插件:

注意,该文档只说明 整体设计思路。
对于具体 插件指令和配置项 ,需要去示例中 公共事件 看看。
你也可以去看看文档:“15.对话框 > 关于选择项窗口.docx”的章节“设计一个随机抽卡的多选项框”。 |
基础配置
具体注意示例下面的地方:
1)地图事件
位于 对话框管理层,有直接用 选择项窗口+素材库 起草功能的事件作为参考。
也可以去看看小工程中的事件。或者后面章节:可选随机奖励 。

2)图标设置
素材库插件用到了图标。属性加成也用到了 图标+文本 显示。

3)资源文件夹
留意下面两个文件夹:“Assets__ActorAttribute”和“Menu__textBigImg”。


4)公共事件
留意示例中的公共事件71。
公共事件设置了并行,每秒监听一次,可见后面章节:升级的时机监听 。

5)变量设置
监听升级时用到了 开关96和变量77。
并且变量24作为临时变量使用。

6)角色设置
注意,示例中的量子妹的角色id为5,而小工程的量子妹角色id为1。
跨工程复制指令时,也要注意角色id变化的问题:示例复制时的缺失 。
7)插件指令
插件指令主要用到了 选择项窗口 插件的指令。
通过这些指令来实现 随机抽取属性 的功能。

可选随机奖励
1)素材准备 - 素材库
示例中,提供了方便的素材库插件。

你可以将示例的文件夹 Assets__ActorAttribute 直接复制过来使用。

初始起草配置,需要下面插件。(注意记得加一下 对话框优化核心)

素材库插件会自动关联并配置上基本属性的图标、资源图片、文本设置。
在游戏中测试 大图片字符 时,如下图。


2)素材准备 - 直接配置
除了使用素材库,你可以直接手动配置大图片字符。

如下图,在插件中绑定大图片字符。

然后通过窗口字符显示出来即可。


但这样操作比较麻烦,后续如果要批量修改,工作量会很大。
3)选项设置
窗口字符确认生效后,现在加上选择项窗口插件。
Drill_DialogChoiceBox 对话框 - 选择项窗口
这里准备8个选项,对应了8个基本能力值,然后随机排列。
生命上限、魔法上限、物理攻击、物理防御、魔法攻击、魔法防御、幸运、敏捷。

完成设置后,在游戏中测试,随机效果如下图。

接下来,把选项限制为4个。(指令“添加到隐藏列表”,可见 选择项的隐藏管理 )
然后设为横向平铺。

设置后效果如下图。

最后,加上文本居中插件。
Drill_DialogTextAlign 窗口字符 - 文本居中
将选项的文本设置为好看的样子,如下图。


| 这个过程使用窗口字符,自己慢慢微调。选项的宽度会被最长的文本撑开,选项的高度会被行数 和大图片撑开。 |
如果你觉得文本太长了,你也可以使用 \str[] 来控制显示长文本。
需要字符串插件:
Drill_CoreOfString 系统 - 字符串核心
使用方法如下图。(字符串插件能拼接多个文本,怎么方便怎么来)


4)奖励功能实现
奖励功能直接使用 事件指令“增减能力值” 即可。

由于这里奖励的是 玩家领队,所以需要使用变量21获取到角色id,然后赋值。

| 如果队伍中有很多人,某些奖励只能给某个角色,那么你需要加 分支条件,专门判断给哪个角色进行奖励。 |
5)提示的字符文本
上述功能实现后,会发现一个问题:** 玩家获得属性后,没有任何提示**。
所以,这里要加一下窗口字符提示。

虽然直接写文本最快最容易,
但注意玩家领队是变化的,而且属性也可能会换名词,
所以这里使用 指代字符 来表示。


| 玩家领队,使用“\p[-2]”;后面第1个玩家队员使用“\p[1]”;第2个使用“\p[2]”。“\dtxt[xxxx文本]”来自素材库的窗口字符定义。 |
升级的时机监听
1)监听事件起草
前面章节 奖励功能实现 中,提到了多个角色给予奖励的问题。
升级的监听也一样,如果有多个角色,那么就要写多个监听的公共事件。
这里我们先以 量子妹 一个角色为例,用开关构建一个框架。

如上图,公共事件在并行处理中,每秒监听一次。
但是必须要求“永久on的开关”真的是ON。
(进入游戏后,所有开关都初始为OFF,你需要加一个自动执行的事件,强制ON)

另外,由于指令处在 并行处理 中,为了防止执行指令时重复执行,
这里要加一个开关阻塞并行的情况,所以用到了 开关96。

2)监听变量控制
确认开关设置好之后,接下来使用 变量77,
实时监听 量子妹 的等级。

写法如下图,这里套了一个循环,
因为量子妹可能存在连升2级的情况,所以奖励处理就需要执行2次。
所以循环执行n次,去比较 变量和量子妹的等级。
每激活一次奖励处理,变量+1,直到跳出循环。

另外注意,变量初始值为0。
为了确保量子妹升级时才会触发奖励,你也要在初始化事件中,初始化变量值。如下图。

3)奖励处理
并行事件阻塞开关 和 监听变量 设置完毕后,
就可以添加奖励处理了,如下图。

由于开关和变量,都是专门针对 量子妹 这一个角色,
所以增减能力值的时候,也不需要考虑 变量角色 了,直接给量子妹加属性即可。
4)多角色扩展
上述过程中,监听了量子妹的升级情况。
如果有多个角色,每个角色都能领取奖励,
那么上述操作要复制N次,占用N个开关和N个变量。
| 多角色的 升级奖励 实现,作者我这里就不赘述了,复制粘贴即可。 |
5)其他设计
当前为 公共事件并行+变量监听 的设计,
玩家在升级后,进入地图能立即给予奖励,整个过程自动执行。

其实除了并行事件,还有更简单的设计方法,事件对话+变量比较 的设计。
建立一个“奖励领取”事件,玩家升级后,让玩家自己去找事件领取奖励。
和那个事件对话时,只要判断一下当前等级,就能触发是否给奖励的功能。

| 设计方法多种多样,具体看你如何选择。 |
后续功能扩展
你还可以在获取属性的基础上,添加“可选择数+1”的设定。
具体去看看文档:“15.对话框 > 关于选择项窗口.docx”的章节“设计一个随机抽卡的多选项框”。


===升级时可选随机奖励 - 注意事项===
选择项的隐藏管理
选择项窗口中,三个插件指令的用法如下表:
| 插件指令 | 可实现抽卡功能 | 实现方法 |
| >选择项窗口 : 下一个窗口-隐藏列表-添加选项 : 选项[1] | 将某卡从奖池中移除 | 通过开关,初始不执行;开启后执行隐藏。 |
| 将某卡加入到奖池 | 通过开关,初始执行隐藏;开启后不执行。(可以用分支条件的”否则”) | |
| >选择项窗口 : 下一个窗口-开启全部选项随机排列 | 随机过程 | 执行指令即可。 |
| >选择项窗口 : 下一个窗口-排列后隐藏列表-添加选项 : 选项[1] | 增加抽卡数量 | 通过变量+1,变量分支执行多个隐藏指令。 |
| 减少抽卡数量 | 通过变量-1,变量分支执行多个隐藏指令。 |
在“隐藏列表”中“添加选项”,添加了的选项id才会被隐藏。
由于逻辑是反的,所以设计时最好 列清楚 思路。
示例复制时的缺失
如下图,由于示例中“量子妹”的角色id为5,小工程中的量子妹的id为1,
所以不匹配,会出现问号。
记得手动修改这些错误id,否则指令不生效。
