Project1

标题: 【紧急】事件指令战斗ATB脚本1521行出错 [打印本页]

作者: yangjunyin2002    时间: 2013-3-1 11:49
标题: 【紧急】事件指令战斗ATB脚本1521行出错
本帖最后由 yangjunyin2002 于 2013-3-1 15:44 编辑

数据库的“战斗测试”都没事的!
我用的战斗过渡效果就是小柒的冒险骑士团那种。

错误界面。事件指令“战斗处理”不行,在战斗的渐变过渡后,一进入战斗的SCENE就会出错。
那个脚本:
既然P叔说我脚本不完整(1:现在电脑课!2:本来我只附上ATB的脚本),那我就晚上附上我就传个附件,把我的横战脚本发上来;

如果还让我附上什么我还会附上。
这是我重发了,原来的说我问题过于笼统所以下沉了。。。
作者: yangjunyin2002    时间: 2013-3-2 20:05
早已一天了应该不算连贴吧?

脚本都发这了:http://rpg.blue/thread-292405-1-1.html
作者: 怪蜀黍    时间: 2013-3-2 20:55
你就不能把脚本放到工程里上个工程?
作者: OCTSJimmy    时间: 2013-3-2 22:27
出错的那个第1521行上面添加:
RUBY 代码复制
  1. if @atb_custom.nil?
  2.    @atb_control = []
  3.    @atb_custom = [N02::ATB_NEWGAME_MODE, N02::ATB_NEWGAME_SPEED - 1]
  4. end


如此试试看,感觉有点像那个1521附近的初始化出了问题。。。。
作者: yangjunyin2002    时间: 2013-3-3 09:13
OCTSJimmy 发表于 2013-3-2 22:27
出错的那个第1521行上面添加:
if @atb_custom.nil?
   @atb_control = []

呃,按你说的后又出现了这个问题啊:

那一部分的脚本:

全脚本依然去那个贴看吧TAT

然后这是我改的图。我也许改错了。你让我加前面。我脚本只会修改一点点。我可能少了空格。


求大神继续帮忙解决!

作者: OCTSJimmy    时间: 2013-3-3 09:27
本帖最后由 OCTSJimmy 于 2013-3-3 09:34 编辑
yangjunyin2002 发表于 2013-3-3 09:13
呃,按你说的后又出现了这个问题啊:

那一部分的脚本:


经鉴定,上一个问题已经解决了,确实是初始化的问题,初始化同名覆盖的问题。
这是一个新的问题,解决途径如下:
出错脚本的第10行上面,插入:
RUBY 代码复制
  1. alias initialize_old initialize

原来的第10行下面插入
RUBY 代码复制
  1. initialize_old


另外,使用Ctrl+Shift+F搜索“initialize”(不含引号)字符串,假如出现在“class Sprite_Battler”当中,使用同样的方法修改,只是old后面加一个数字。上下插入的数字要一致。
假如已经存在了alias 某某某 initialize就不需要插入了。

全部操作完毕后,应该可以解决这个问题了。
作者: yangjunyin2002    时间: 2013-3-3 09:39
OCTSJimmy 发表于 2013-3-3 09:27
经鉴定,上一个问题已经解决了,确实是初始化的问题,初始化同名覆盖的问题。
这是一个新的问题,解决途 ...


呃,那个全局搜索后你让我加个数字,我还是不理解,怎么加?加个括号,里面再加个数字,什么数字都可以?



对了喵,在全局搜索之前,也就是我在┣ Sideview 1脚本的第10行的前面和后面加了你说的脚本后会出错(当然,也许是因为我还没加完。)

这张图只是让你帮忙看看我有没有加对。这是┣ Sideview 1脚本的截图啊。

这是出错的截图,是不是因为我在Spriteset_Battle里没加那个的缘故呢?(P.S.那个Spriteset_Battle脚本里的那个地方前后的确没你说的脚本)
作者: Password    时间: 2013-3-3 10:10
其实像Sideview或者ATB这样的脚本最好还是从脚本范例中(原始脚本)拿,因为其他人的游戏里好多都是因为游戏的需要多少在里面改了点东西,而这些改动过的脚本放到其他游戏很可能就会报错了。
然后从原始脚本中再自己根据需要改。

而且这种这么长的脚本想排查到底别人改了哪里也不是个小工程啊……
作者: yangjunyin2002    时间: 2013-3-3 10:46
OCTSJimmy 发表于 2013-3-3 09:27
经鉴定,上一个问题已经解决了,确实是初始化的问题,初始化同名覆盖的问题。
这是一个新的问题,解决途 ...

Spriteset_Battle脚本那我改成了:
  1. alias initialize_old_n1 initialize
  2.   def initialize
  3.     initialize_old_n1
复制代码
于是那暂时没出问题。(我改了好多次的说!)、、


但是下面的┣ Sideview 1脚本没加数字(你说的),结果出错,我像前面那样加个_n1不行,改_n0啊之类的还是不行,怎么办?
我是这么改然后出错的(没加数字)
  1. alias initialize_old initialize
  2.   def initialize(viewport, battler = nil)
  3.     initialize_old
复制代码

作者: OCTSJimmy    时间: 2013-3-3 11:00
yangjunyin2002 发表于 2013-3-3 10:46
Spriteset_Battle脚本那我改成了:于是那暂时没出问题。(我改了好多次的说!)、、


你修改的这个脚本,之后的脚本也要查,类似情况也要改。
所以,脚本文件发来吧……...我真崩溃了……
作者: yangjunyin2002    时间: 2013-3-3 11:05
本帖最后由 yangjunyin2002 于 2013-3-3 11:08 编辑
OCTSJimmy 发表于 2013-3-3 11:00
你修改的这个脚本,之后的脚本也要查,类似情况也要改。
所以,脚本文件发来吧……...我真崩溃了…… ...


脚本的话应该就是这个了:




Scripts.rvdata (425.24 KB, 下载次数: 9)
作者: OCTSJimmy    时间: 2013-3-3 11:40
找到该死的问题了……我太阳啊。。。。
首先是这个:
RUBY 代码复制
  1. initialize_old(viewport, battler)

而不是这个:
RUBY 代码复制
  1. initialize_old


其次,按照你给的工程文件,还有一处需要修改:
脚本ATB的第1555行也需要做出类似处理:
这里贴出来的是从第1539行开始的代码,已经改好了

RUBY 代码复制
  1. #==============================================================================
  2. # ■ Sprite_MoveAnime
  3. #------------------------------------------------------------------------------
  4. #  ATBゲージ用のスプライトです。
  5. #==============================================================================
  6. class Sprite_ATB < Sprite_Base
  7.   #--------------------------------------------------------------------------
  8.   # ● 公開インスタンス変数
  9.   #--------------------------------------------------------------------------
  10.   attr_accessor :battler
  11.   attr_accessor :count            # 更新カウント
  12.   #--------------------------------------------------------------------------
  13.   # ● オブジェクト初期化
  14.   #--------------------------------------------------------------------------
  15.   alias initialize_ATB initialize
  16.   def initialize(viewport,battler = nil)
  17.     initialize_ATB(viewport)

作者: yangjunyin2002    时间: 2013-3-3 11:48
OCTSJimmy 发表于 2013-3-3 11:40
找到该死的问题了……我太阳啊。。。。
首先是这个:
initialize_old(viewport, battler)[/pre]

依然有错-%>_<%哭



我是把你那脚本修改的加到了ATB的那一行替换。然后我把┣ Sideview 1的initialize_old改成了那个(如下图):

Spriteset_Battle脚本也改成这样:

作者: OCTSJimmy    时间: 2013-3-3 12:02
yangjunyin2002 发表于 2013-3-3 11:48
依然有错-%>_

ATB脚本,直接从1539行用我给的东西替换掉吧。。。
从1539行直接替换至包括
RUBY 代码复制
  1. def initialize(viewport,battler = nil)

的这行即可
作者: yangjunyin2002    时间: 2013-3-3 14:01
本帖最后由 yangjunyin2002 于 2013-3-3 14:05 编辑
OCTSJimmy 发表于 2013-3-3 12:02
ATB脚本,直接从1539行用我给的东西替换掉吧。。。
从1539行直接替换至包括
  def initialize(viewport,b ...


结果Spriteset_Battle的14行又出错了。
那Spriteset_Battle脚本的12和14行数字怎么加?

然后我只好把那个脚本改回了开始你让我改的(就是不加数字也不加什么的那种)
  1. alias initialize_old initialize
  2.   def initialize
  3.     initialize_old
复制代码
接着又重新测试事件的指令“战斗处理”,结果┣ Sideview 1脚本486行有出错(我要疯了!!!)
  1.     @target_battler = @battler.force_target[1]
复制代码

作者: OCTSJimmy    时间: 2013-3-3 14:53
本帖最后由 OCTSJimmy 于 2013-3-3 15:55 编辑
yangjunyin2002 发表于 2013-3-3 14:01
结果Spriteset_Battle的14行又出错了。
那Spriteset_Battle脚本的12和14行数字怎么加?


我总结一下吧,依次修改:

1、ATB中,出错的那个第1521行上面添加,这里可以搜索“ATB_NEWGAME_SPEED”来定位,Game_Party类中:
RUBY 代码复制
  1. if @atb_custom.nil?
  2.    @atb_control = []
  3.    @atb_custom = [N02::ATB_NEWGAME_MODE, N02::ATB_NEWGAME_SPEED - 1]
  4. end


如此试试看,感觉有点像那个1521附近的初始化出了问题。。。。

2、Sideview1 中,这个在Sideview1的Sprite_Battler类中。
第10行上面,插入:
RUBY 代码复制
  1. alias initialize_old initialize

原来的第10行下面插入,注意这里有参数
RUBY 代码复制
  1. initialize_old(viewport, battler)


3、ATB中
第1539行开始,至
RUBY 代码复制
  1. def initialize(viewport,battler = nil)
替换为:
RUBY 代码复制
  1. #==============================================================================
  2. # ■ Sprite_MoveAnime
  3. #------------------------------------------------------------------------------
  4. #  ATBゲージ用のスプライトです。
  5. #==============================================================================
  6. class Sprite_ATB < Sprite_Base
  7.   #--------------------------------------------------------------------------
  8.   # ● 公開インスタンス変数
  9.   #--------------------------------------------------------------------------
  10.   attr_accessor :battler
  11.   attr_accessor :count            # 更新カウント
  12.   #--------------------------------------------------------------------------
  13.   # ● オブジェクト初期化
  14.   #--------------------------------------------------------------------------
  15.   alias initialize_ATB initialize
  16.   def initialize(viewport,battler = nil)
  17.     initialize_ATB(viewport)


如此三处,改完后试试。
作者: yangjunyin2002    时间: 2013-3-3 15:22
OCTSJimmy 发表于 2013-3-3 14:53
我总结一下吧,依次修改:

1、出错的那个第1521行上面添加,这里可以搜索“ATB_NEWGAME_SPEED”来定位: ...

我按你说的重改。

如果Spriteset_Battle脚本改成
RUBY 代码复制
  1. alias initialize_old initialize
  2.   def initialize
  3.     initialize_old

┣ Sideview 1脚本486行会出错。

如果按原始的Spriteset_Battle脚本的话。。。
依然┣ Sideview 1脚本486行会出错!!!!!
作者: yangjunyin2002    时间: 2013-3-3 16:02
本帖最后由 yangjunyin2002 于 2013-3-3 16:50 编辑
OCTSJimmy 发表于 2013-3-3 14:53
我总结一下吧,依次修改:

1、ATB中,出错的那个第1521行上面添加,这里可以搜索“ATB_NEWGAME_SPEED” ...


事件的指令战斗是不会出错了。但是如果敌人攻击,会出现错误(不管是什么招式什么的)而数据库的“战斗测试”不会出现这种情况,这又是怎么回事?
ATB脚本依旧见那贴
(好吧,战斗测试时会同脚本227行出错)




现在事件指令的战斗处理会出错。这次是1554行出错。出错提示就deek level什么的。

作者: LBQ    时间: 2013-3-7 05:29
LZ不要再这样了!
一般私用版的Sideview臼井版都不是能照搬的!
如果要做好看的就自己去找到Kaduki Sideview之后找大神修改!这种东西经不起LZ的“提问”!
作者: OCTSJimmy    时间: 2013-3-8 08:09
我等你完整的工程文件等到今天也没见你发……
你用的脚本太多了,到处都有各自需求的图片,图片齐全,我还可以帮你一个个调试,一个个修理BUG……
前面的回答,有两处都是经过屏蔽脚本后得出的结论……我真的不知道需要放哪些图片进去啊……
我实在无奈了……




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