Project1

标题: 求助 [打印本页]

作者: 157626817    时间: 2026-2-27 17:32
标题: 求助
大佬们,makermz,在主角进入地图后,npc的头上就显示叹号的气泡。一直循环,直到主角接触他,才进行对话,叹号气泡消失。这种效果该怎么做呀
作者: 鸿鹄尧    时间: 2026-3-5 16:55
你可以利用循环+分支判断来实现:这个npc事件设置为并行处理,事件内容为循环气泡,但是加了一个判断条件,如果玩家接触就开始对话结束气泡,否则执行气泡
作者: Singular_Photon    时间: 2026-3-13 04:18
你可以利用循环+分支判断来实现:这个npc事件设置为并行处理,事件内容为循环气泡,但是加了一个判断条件,如果玩家接触就开始对话结束气泡,否则执行气泡


思路没问题,不过RMMZ原版没办法在事件指令页里面检查玩家接触,只能靠事件发动的条件来检查。
一种方案是用另外一个看不见的事件来给目标NPC循环上气泡,而目标NPC在触发对话之后立刻改变一个全局开关将那个看不见的事件停掉。

或者如果觉得堆一个额外的空事件导致工程不够简洁的话,我搓了两个插件指令来获取必要的状态,让NPC在自己的事件页内解决问题。
这个方案只需要有一个全局开关给它们临时用(当然别的事件也可以拿去临时用),外加上用一个独立开关来记录自己是否被对话过即可。

(似乎并行的事件并不是指令级别的并行而是在不打断玩家操作的情况下每一个都处理完再进入下一个,所以这里设置全局变量再检测并不会引发并发的竞争问题)




这里给气泡图标显示手动加了一层等待防叠,是为了让整个事件能够每帧都运行,因而每帧都检测玩家是否有点击(否则会有观感巨差的延迟)。

在同一张地图上复制了三份相同的事件,各自的气泡都可以独立被点掉。


作者: dhkkhd    时间: 2026-3-13 09:57
我有做一个这样的插件,只在自己的环境下作了一些测试,不保证是否与其他插件冲突

有需要的话可以自取测试

大概的效果在事件注释中添加以下命令:

<nearTrigger:距离> - 设置触发距离(格子数)
<nearBubble:图标ID> - 显示表情气泡图标(1-10,对应不同表情)
<nearText:文本内容> - 显示完整文字窗口(支持头像\f[文件名,索引])
<nearPosition:位置> - 设置文字窗口位置(top, middle, bottom)
<nearSwitch:事件ID,开关字母,状态> - 控制独立开关(事件ID=0表示本事件)

示例:
// 基本示例
<nearTrigger:3>
<nearBubble:1>

// 控制本事件独立开关A开启
<nearSwitch:0,A,on>

// 控制事件5的独立开关B关闭
<nearSwitch:5,B,off>

表情气泡图标ID:
1 = 感叹号, 2 = 问号, 3 = 音符, 4 = 爱心, 5 = 愤怒
6 = 汗滴, 7 = 纠结, 8 = 沉默, 9 = 灯泡, 10 = ZZZ

NearTriggerDisplay.zip

5.04 KB, 下载次数: 0






欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1