Project1

标题: 求教下,经常在游戏里第二、三次进入战斗的时候报错 [打印本页]

作者: 踢腿水上飘    时间: 2016-11-1 14:22
标题: 求教下,经常在游戏里第二、三次进入战斗的时候报错
一进战斗就一卡一卡的几下,然后就RGSS3停止工作……这是怎么回事啊
作者: Vortur    时间: 2016-11-9 11:10
本帖最后由 Vortur 于 2016-11-10 02:11 编辑

  

  六楼的坏人已经给出正确答案,此楼对bug的猜测错误。啧...{:2_251:} 在下这次抛了砖引玉,希望下次有良才美玉主动出手。

  不定期贴一下在下的发现和猜测,看看能解决到什么程度吧...
RTAB-CP战斗  使用的类
视野限制 中的类
Sideview中的类-未完成



16.11.10.15.31
16.11.9.18.59


[line]3[/line]To 坏人 :
@ RaidenInfinity   

1.  随便你们怎么随时修改版规,反正在下不在乎{:2_272:}
2.  误导是【有意识的】提供错误答案。但本人即使给自己排错,也使用的是同样的方法,所以绝对不是有意识的。而且,你见过哪个坏蛋写这么多认真的话来误导人的?
3.  有时间看在下的答案,怎么不回个贴拨乱反正?{:2_251:}
4.  在下专门照顾那些没人回答的帖子,不给小红花也就罢liao,还处处挤兑在下,太过分啦~~{:2_253:}叫你们的掌柜的来!~
[line]3[/line]
16.11.9before

作者: fux2    时间: 2016-11-9 13:09
停止工作我感觉就是Sprite泄露了,你使用过哪些脚本贴一下吧。
作者: 踢腿水上飘    时间: 2016-11-9 17:52
工程在这里http://pan.baidu.com/s/1boAY7BD,我检查了一下,是RTAB-CP战斗,Sideview,和视野限制这三个脚本的问题,但我不会修……求帮个忙- -
我把这三个脚本去掉就没问题了,但是这三个脚本对我还是比较重要的,毕竟纵版战斗不好看……能帮忙的话十分感谢~!
作者: 踢腿水上飘    时间: 2016-11-9 20:05
这个跳出不定时出现,有时候2,3次战斗就出来了,有时候一直玩都不出现
作者: RaidenInfinity    时间: 2016-11-10 19:18
你的脚本的问题是精灵dispose的顺序不正确。精灵(Sprite)在它属于的显示端口(Viewport)之后释放(dispose)的话,有几率造成内存读取错误,而程序崩溃。这是VA程序本身的BUG,至今未修也不会再被修正。因此,能做的只有尽量避免忘记释放精灵,和避免在精灵释放之前释放显示端口。

第一个脚本:视野限制
将153和154行反过来放
RUBY 代码复制
  1. alias tmblsight_spriteset_map_dispose dispose
  2.   def dispose
  3.     dispose_sight_shadow
  4.     tmblsight_spriteset_map_dispose
  5.   end


第二个脚本:Sideview
将4821和4822行反过来放
RUBY 代码复制
  1. alias dispose_spriteset_battle_n03 dispose
  2.   def dispose
  3.     @effect_sprites.dispose
  4.     dispose_spriteset_battle_n03
  5.   end


第三个脚本: RTAB-CP 战斗
这个脚本的dispose方法有严重缺陷,因为并未使用alias而是用了覆盖的方法,而且释放次序还错误!
这导致SideView所创建的Sprite_Weapon无法被释放,而导致了程序崩溃的问题。
将这个脚本里面的dispose替换成下面这个:
RUBY 代码复制
  1. alias :rtabcp_dispose :dispose
  2.   def dispose
  3.     dispose_rtabcp_gauge
  4.     rtabcp_dispose
  5.   end


就是这样。




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