设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 466|回复: 3
打印 上一主题 下一主题

[有事请教] 求助

[复制链接]

Lv1.梦旅人

梦石
0
星屑
27
在线时间
1 小时
注册时间
2026-2-11
帖子
3
跳转到指定楼层
1
发表于 2026-2-27 17:32:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
大佬们,makermz,在主角进入地图后,npc的头上就显示叹号的气泡。一直循环,直到主角接触他,才进行对话,叹号气泡消失。这种效果该怎么做呀

Lv1.梦旅人

梦石
0
星屑
47
在线时间
4 小时
注册时间
2026-1-23
帖子
2
2
发表于 2026-3-5 16:55:06 | 只看该作者
你可以利用循环+分支判断来实现:这个npc事件设置为并行处理,事件内容为循环气泡,但是加了一个判断条件,如果玩家接触就开始对话结束气泡,否则执行气泡
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
557
在线时间
122 小时
注册时间
2026-3-3
帖子
12
3
发表于 2026-3-13 04:18:46 | 只看该作者
你可以利用循环+分支判断来实现:这个npc事件设置为并行处理,事件内容为循环气泡,但是加了一个判断条件,如果玩家接触就开始对话结束气泡,否则执行气泡


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

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

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




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

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

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
131
在线时间
11 小时
注册时间
2025-4-19
帖子
11
4
发表于 2026-3-13 09:57:44 | 只看该作者
我有做一个这样的插件,只在自己的环境下作了一些测试,不保证是否与其他插件冲突

有需要的话可以自取测试

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

<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

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2026-6-4 23:14

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表