Project1

标题: Game_Actors报错请教! [打印本页]

作者: 阮声悠悠    时间: 2018-8-2 18:15
标题: Game_Actors报错请教!
本帖最后由 阮声悠悠 于 2018-8-2 19:13 编辑

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

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

(, 下载次数: 83)


至于这里的脚本我没动,和新工程是一样的
[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]
作者: 真·可乐    时间: 2018-8-2 19:00
[] (actor_id)这个方法被传入了nil参数,在19和20行之间加上
[pre lang="ruby"]return if actor_id.nil?
[/pre]
试试
作者: 阮声悠悠    时间: 2018-8-2 19:12
真·可乐 发表于 2018-8-2 19:00
[] (actor_id)这个方法被传入了nil参数,在19和20行之间加上
return if actor_id.nil?
[/pre]

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

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

不知道应该搜索什么内容呢
作者: 芯☆淡茹水    时间: 2018-8-2 20:04
本帖最后由 芯☆淡茹水 于 2018-8-3 11:14 编辑

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




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