Project1

标题: 求教关于一个VX Ace脚本的错误~ [打印本页]

作者: harinlen    时间: 2012-8-18 21:43
标题: 求教关于一个VX Ace脚本的错误~
本帖最后由 harinlen 于 2012-8-20 09:08 编辑

还是。。有错。。貌似

这是一个战斗用脚本,现在出现这样几个问题:
1、如果发动全屏技能(只要动画是全屏的),那么人物的图片就不会消失- -效果很是奇葩- -|||||(什么效果看下就知道了- -)
2、如果设置为在0回合出现文章的话,整个战斗就会卡死(这什么情况?)

就是以上两个问题,希望各位大大能帮帮我啊~~谢谢了DA☆ZE~~
(额,福利?节操算不算- -)

VX Ace工程:
直链(不一定可以啊,如果不行的话请到下载页面下载- -):BattleScripts.rar
下载页面:http://www.vdisk.cn/down/index/10740147
作者: harinlen    时间: 2012-8-19 17:42
@忧雪の伤
@54酱

大大求帮助啊……

作者: harinlen    时间: 2012-8-19 19:52
@Luciffer
再次自连了啊!!T T
作者: harinlen    时间: 2012-8-19 21:05
@R-零
@Luciffer
没办法……4连也认了……召唤大大们啊……
作者: harinlen    时间: 2012-8-19 21:21
@Luciffer@忧雪の伤
这样啊……祈祷雪姐能看到我的召唤吧T T
作者: R-零    时间: 2012-8-20 07:00
本帖最后由 R-零 于 2012-8-20 07:10 编辑
harinlen 发表于 2012-8-19 21:05
@R-零
@Luciffer
没办法……4连也认了……召唤大大们啊……


既然召唤我了我可是一定会帮忙解决问题的哦,占位待编辑


另外 @Luciffer,对提问的自顶是允许的,不过这帖子么貌似错区了咩
作者: harinlen    时间: 2012-8-20 08:08
R-零 发表于 2012-8-20 07:00
既然召唤我了我可是一定会帮忙解决问题的哦,占位待编辑

发。。。错了么。。
作者: R-零    时间: 2012-8-20 09:15
harinlen 发表于 2012-8-20 08:08
发。。。错了么。。

先上一下现在的查找进度
记录:首先再拿到工程后测试了下,果然全体时不会消失而单体会消失。估计是因为单体需要召唤选择指针而全体不需要这样子吧
     因为对脚本不熟悉,所以把脚本翻了一遍。
     
发现战斗大图放在picture这个目录下面,于是判断战斗大图是用picture显示的
那么只要找到脚本里显示picture的指令就可以定位脚本了

根据搜索结果定位到了 MOG_Actor_Picture_CM 这个脚本页
MOG_Actor_Picture_CM < Sprite
也就是说,MOG_Actor_Picture_CM 这个是一个精灵的子类
那么移动精灵的方法极有可能是self.y = ??之类的方法

在这里发现了update_slide这个方法,大概是更新精灵滑动的意思

检查了这也脚本并没有在显示技能动画时移开图形的调用,不过找到了更新精灵滑动这个方法就可以找出什么时候使精灵进行滑动了

发现只有在这个精灵内部调用的这个方法

而且是update调用

在update_slide这个内部发现了移出和移入与@cm_visible有关

进一步调查这个变量,在上面的refresh_battler发现对@cm_visible的操作

查找目标改为对refresh_battler的调用

在本脚本的第212行发现对这个方法调用
调用方法的名称是update_cm_picture,就是对全部图形的刷新
在这个方法也有传入参数 cm_visible

查找目标改为对update_cm_picture的调用
在本脚本238行发现对这个方法调用

  def update_picture_visible
      return if @actor_command_window == nil
      cm_visible = can_cm_picture_visible?      
      cm_id = BattleManager.actor.id rescue -1
      @spriteset.update_cm_picture(cm_visible, cm_id)
  end  

那么, cm_visible 到底还是取决于can_cm_picture_visible?这个方法

目标改为can_cm_picture_visible?

……………………………………

作者: harinlen    时间: 2012-8-20 09:24
R-零 发表于 2012-8-20 09:15
先上一下现在的查找进度

确实是在指针这方面出现了相当的问题,但是查看指针相关的类。。也没有找到问题啊。。


‘‘──harinlen于2012-8-20 09:25补充以下内容:

应该是cm_Visible
’’
作者: R-零    时间: 2012-8-20 09:30
本帖最后由 R-零 于 2012-8-20 09:39 编辑
harinlen 发表于 2012-8-20 09:24
确实是在指针这方面出现了相当的问题,但是查看指针相关的类。。也没有找到问题啊。。


继续,测试下里面三个变量
于是找到这个

def can_cm_picture_visible?
      return false if (@actor_window.active or @enemy_window.active) rescue return
      return false if BattleManager.actor == nil
      return true
  end  
不显示图片满足以下三个条件之一
(@actor_window.active or @enemy_window.active)
BattleManager.actor == nil


通过对这三个变量监视,发现选择单体时@enemy_window.active为true,也就是说,人物移开与这个有关

作者: harinlen    时间: 2012-8-20 09:52
R-零 发表于 2012-8-20 09:30
继续,测试下里面三个变量

这个还真没注意到啊。。。0 0
这个def。。刚才说的时候就略觉得奇怪的说。。
作者: harinlen    时间: 2012-8-20 10:45
R-零 发表于 2012-8-20 09:30
继续,测试下里面三个变量

我已经抑郁三天了T T
作者: harinlen    时间: 2012-8-20 10:51
R-零 发表于 2012-8-20 09:30
继续,测试下里面三个变量

算了,我自己重写一个吧。仿照这个。不看这个蛋疼的代码了。。
作者: R-零    时间: 2012-8-20 10:51
harinlen 发表于 2012-8-20 10:45
我已经抑郁三天了T T

Scripts.7z (189.59 KB, 下载次数: 42)

帮你搞定了啊啊魂淡!!!把你的节操全部拿出来魂淡~~~!!!!

作者: harinlen    时间: 2012-8-20 11:04
R-零 发表于 2012-8-20 10:51
帮你搞定了啊啊魂淡!!!把你的节操全部拿出来魂淡~~~!!!!
...

我用电脑的时候一定还节操!!
作者: harinlen    时间: 2012-8-20 12:09
R-零 发表于 2012-8-20 10:51
帮你搞定了啊啊魂淡!!!把你的节操全部拿出来魂淡~~~!!!!
...

这分怎么转帐啊!!!


‘‘──harinlen于2012-8-20 12:10补充以下内容:

这分怎么转帐啊!!!
’’




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