Project1

标题: 【已解决】使用BGS近大远小脚本时遇到脚本报错 [打印本页]

作者: 愚昧jun    时间: 2023-11-1 22:39
标题: 【已解决】使用BGS近大远小脚本时遇到脚本报错
本帖最后由 愚昧jun 于 2023-11-3 01:53 编辑

用搜索搜到了https://rpg.blue/forum.php?mod=viewthread&tid=296891这个13年的声音近大远小脚本,但是我在使用的时候游戏会提示第32行:发生NoMethodError。undefined method ‘each’ for nil:NilClass。问问大佬们是什么意思,有没有办法解决?如果没有的话,还有没有其他的能用开关控制BGS是否启动的BGS近大远小脚本,再或者有没有用纯事件做能用开关控制是否开启的BGS近大远小的方法
作者: srwjrevenger    时间: 2023-11-1 23:31
这可以正常使用啊。

你新建一个工程后再使用看看,可能跟其它脚本冲突了。

当然如果你自己有改动的,麻烦你把完整的脚本发出来。
作者: 愚昧jun    时间: 2023-11-1 23:41
srwjrevenger 发表于 2023-11-1 23:31
这可以正常使用啊。

你新建一个工程后再使用看看,可能跟其它脚本冲突了。

我试着把我这个工程里的所有脚本都一个一个复制粘贴到新的工程里,能正常,运行,但是不知道为什么在我的那个工程里就会报错
作者: 百里_飞柳    时间: 2023-11-2 00:25
你可能用了事件优化之类的脚本,导致它在刷新时没找到事件页的指令列表
粗暴修复就是在 31 和 32 行之间加个
  1. return if @list.nil?
复制代码

但可能导致部分受其他脚本影响的事件,在这个bgs播放的设置上失效
作者: 愚昧jun    时间: 2023-11-2 21:48
百里_飞柳 发表于 2023-11-2 00:25
你可能用了事件优化之类的脚本,导致它在刷新时没找到事件页的指令列表
粗暴修复就是在 31 和 32 行之间加 ...

我用了这个https://rpg.blue/thread-341787-1-1.html里面的事件管理器脚本,这些是我所使用的脚本 。我刚刚试着把那行代码插入了31行到32行之间,它又弹出了 ,我又在44行到45行之间塞了一行那个代码,然后它就弹出了这个提示
作者: 愚昧jun    时间: 2023-11-2 22:58
本帖最后由 愚昧jun 于 2023-11-2 23:00 编辑
百里_飞柳 发表于 2023-11-2 00:25
你可能用了事件优化之类的脚本,导致它在刷新时没找到事件页的指令列表
粗暴修复就是在 31 和 32 行之间加 ...

我试着把所有提到了Game_Event的脚本都删掉了,还是会报错。然后我又把脚本都装上,单独抽出一张地图测试看看到底是哪部分出了问题。然后我现在测出来的结果就是,就算单单只有这个BGS声音近大远小脚本,只要地图上面存在一个“有出现条件,但不是变量不小于”的事件,就会报错。。。
作者: 百里_飞柳    时间: 2023-11-2 23:38
又看了下,是它原本的写法就有问题
把其中的 initialize 方法全部注释掉,再加上这个就可以了
我顺便加了事件消除时,bgs停止

  1.   #--------------------------------------------------------------------------
  2.   # ● 设置事件页
  3.   #--------------------------------------------------------------------------
  4.   alias eagle_20231102_uo5_soundrange_setup_page setup_page
  5.   def setup_page(new_page)
  6.     eagle_20231102_uo5_soundrange_setup_page(new_page)
  7.     if @bgs_range != 0
  8.       Audio.bgs_stop
  9.     end
  10.     @bgs_range = 0
  11.     if @list
  12.       setup_bgs_range
  13.       setup_bgs_file_name
  14.     end
  15.   end
复制代码

作者: 愚昧jun    时间: 2023-11-3 01:52
百里_飞柳 发表于 2023-11-2 23:38
又看了下,是它原本的写法就有问题
把其中的 initialize 方法全部注释掉,再加上这个就可以了
我顺便加了事 ...

解决了,非常感谢!




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