Project1

标题: 关于隐藏物品的玩家气泡设置问题 [打印本页]

作者: Kaede_123    时间: 2024-7-12 10:21
标题: 关于隐藏物品的玩家气泡设置问题
我想做一个隐藏物品,在玩家靠近时就会在玩家头上显示感叹号或者类似的提示,在物品捡取之后就会消失,请问应该怎么实现?有添加过Mrliu-过眼云烟的autoballoon插件,但是会和YEP的eventchaser插件冲突。

屏幕截图 2024-07-12 102053.png (332.17 KB, 下载次数: 212)

屏幕截图 2024-07-12 102053.png

作者: utunnels    时间: 2024-7-12 10:21
  1. $gameMap.events().forEach(function(e){
  2.   if(e.event().note.contains('|隐藏物品|')&&!$gameSelfSwitches.value([$gameMap._mapId,e._eventId,'A'])){
  3.     if(Math.abs($gamePlayer.x-e.x)<=1&&Math.abs($gamePlayer.y-e.y)<=1){
  4.       if(!$gamePlayer.isBalloonPlaying()) {
  5.         $gamePlayer.requestBalloon(1);
  6.       }
  7.     }
  8.   }
  9. });
复制代码

作者: utunnels    时间: 2024-7-12 10:46
靠多近算是靠近?
作者: Kaede_123    时间: 2024-7-12 15:03
utunnels 发表于 2024-7-12 10:46
靠多近算是靠近?

就近吧,就是与事件X坐标或者Y坐标相差为1.
作者: 无忧谷主幻    时间: 2024-7-13 06:59
直接用事件就能做
在该物品周围围一圈事件(如果追求真实可以加上角色朝向的判断)
拾取物品后打开开关,将那一圈事件设置成开关打开后,感叹号不再执行
作者: Kaede_123    时间: 2024-7-13 10:31
无忧谷主幻 发表于 2024-7-13 06:59
直接用事件就能做
在该物品周围围一圈事件(如果追求真实可以加上角色朝向的判断)
拾取物品后打开开关,将 ...

这种方法是可以实现,但是我如果这种物品设置的很多的话就不现实了,工程量会变得很大,而且开关的数量是有上限的。
作者: utunnels    时间: 2024-7-13 10:59
  1. $gameMap.events().forEach(function(e){
  2.   if(e.event().note.contains('|隐藏物品|')){
  3.     if(Math.abs($gamePlayer.x-e.x)<=1&&Math.abs($gamePlayer.y-e.y)<=1){
  4.       if(!$gamePlayer.isBalloonPlaying()) {
  5.         $gamePlayer.requestBalloon(1);
  6.       }
  7.     }
  8.   }
  9. });
复制代码


其实在地图上放一个并行处理的事件,执行一段脚本检测就行。
在隐藏物品的备注里面写上一个标记比如|隐藏物品|

也可以做成公共事件或者插件,就看有没有必要了。
作者: Kaede_123    时间: 2024-7-13 14:38
utunnels 发表于 2024-7-13 10:59
其实在地图上放一个并行处理的事件,执行一段脚本检测就行。
在隐藏物品的备注里面写上一个标记比如|隐藏 ...

感谢提供解答,这个脚本运行之后确实可以实现靠近显示叹号的气泡,但是在拾取之后还是会显示气泡,我希望实现的功的是拾取之后就不会显示气泡了。
作者: utunnels    时间: 2024-7-13 15:20
本帖最后由 utunnels 于 2024-7-13 15:21 编辑

那要看拾取是如何实现的,是消除事件还是用了开关,总之就是要判断那个条件才能实现。
作者: Kaede_123    时间: 2024-7-13 16:13
utunnels 发表于 2024-7-13 15:20
那要看拾取是如何实现的,是消除事件还是用了开关,总之就是要判断那个条件才能实现。 ...

我设置的是拾取之后触发一个独立开关A,然后新建一个空白事件页触发开关是独立开关A。
作者: Kaede_123    时间: 2024-7-13 17:42
utunnels 发表于 2024-7-12 10:21

十分感谢,问题完美解决,我之前的需求没说清楚,我是希望在物品的四个方向出现气泡就行。这是我自己修改的。备注改成了|HiddenItem|。
  1. $gameMap.events().forEach(function(e){
  2.   if(e.event().note.contains('|HiddenItem|')&&!$gameSelfSwitches.value([$gameMap._mapId,e._eventId,'A'])){
  3.     if((Math.abs($gamePlayer.x-e.x)+Math.abs($gamePlayer.y-e.y))<=1){
  4.       if(!$gamePlayer.isBalloonPlaying()) {
  5.         $gamePlayer.requestBalloon(1);
  6.       }
  7.     }
  8.   }
  9. });
复制代码





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