查看: 2651|回复: 13

[已经解决] Game_Actors报错请教!

[复制链接]
梦石
0
星屑
4017
在线时间
604 小时
注册时间
2017-4-21
回帖
177
发表于 2018-8-2 18:15:57 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 阮声悠悠 于 2018-8-2 19:13 编辑

队伍第一个角色使用普通攻击有概率触发这个报错,有点操蛋!
触发的点在显示伤害之前

不方便传脚本上来,所以想请教下大神,这可能是什么原因导致的
告诉我debug的思路。很感谢哈

QQ截图20180802180348.png


至于这里的脚本我没动,和新工程是一样的
[pre lang="ruby"]#==============================================================================
# ■ Game_Actors
#------------------------------------------------------------------------------
#  处理角色排列的类。本类的实例请参考
#  $game_actors。
#==============================================================================

class Game_Actors
  #--------------------------------------------------------------------------
  # ● 初始化对像
  #--------------------------------------------------------------------------
  def initialize
    @data = []
  end
  #--------------------------------------------------------------------------
  # ● 获取角色
  #     actor_id : 角色 ID
  #--------------------------------------------------------------------------
  def [](actor_id)
    if actor_id > 999 or $data_actors[actor_id] == nil
      return nil
    end
    if @data[actor_id] == nil
      @data[actor_id] = Game_Actor.new(actor_id)
    end
    return @data[actor_id]
  end
end
[/pre]
梦石
2
星屑
13779
在线时间
2319 小时
注册时间
2011-6-4
回帖
586
发表于 2018-8-2 19:00:02 | 显示全部楼层
[] (actor_id)这个方法被传入了nil参数,在19和20行之间加上
[pre lang="ruby"]return if actor_id.nil?
[/pre]
试试

评分

参与人数 1星屑 +50 收起 理由
RyanBern + 50 认可答案

查看全部评分

BUG反馈请加QQ 529283039
水友群 917854767

回复

使用道具 举报

梦石
0
星屑
4017
在线时间
604 小时
注册时间
2017-4-21
回帖
177
 楼主| 发表于 2018-8-2 19:12:46 | 显示全部楼层
真·可乐 发表于 2018-8-2 19:00
[] (actor_id)这个方法被传入了nil参数,在19和20行之间加上
return if actor_id.nil?
[/pre]

插入后测试了20多场,应该是没问题了。非常感谢!!

额外学习一下,如果我想搜索使用这个方法的位置,逐一判断有没有可能传入nil参数

不知道应该搜索什么内容呢

点评

所以叫只看外源脚本啊,主要看于战斗相关的外源脚本  发表于 2018-8-3 14:56
调用这个的多成山..你想找到怕男上加男..  发表于 2018-8-3 13:43
。。好的。  发表于 2018-8-2 20:34
搜索$game_actors[试试,看看那个外源脚本里调用了这个方法  发表于 2018-8-2 20:08
回复

使用道具 举报

梦石
0
星屑
34459
在线时间
5096 小时
注册时间
2012-11-19
回帖
4715

开拓者

发表于 2018-8-2 20:04:18 | 显示全部楼层
本帖最后由 芯☆淡茹水 于 2018-8-3 11:14 编辑

直接写成 : return nil if !actor_id || !$data_actors[actor_id]

点评

思路?这哪有什么思路!非要说思路的话,那么就是先甄选和截断并返回不合格的。  发表于 2018-8-3 17:55
能解说下2楼的解决思路和你的解决思路吗,有点看不懂,哈哈 然后,你的这段也是在19~20行插入吗  发表于 2018-8-3 13:50
觉得二楼最好也加一个判断 $data_actor ,万一超出范围,也是返 nil  发表于 2018-8-3 11:17
嘛,最近js写多了,顺带就带到这里了,,,,。现在已改。  发表于 2018-8-3 11:13
$data_actors是Array,不能用nil索引,在actor_id为nil的时候会报错吧  发表于 2018-8-2 21:16
xp vx va mv  va mz 各类型脚本/插件定制
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部