Project1

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

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

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

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




至于这里的脚本我没动,和新工程是一样的
RUBY 代码复制
  1. #==============================================================================
  2. # ■ Game_Actors
  3. #------------------------------------------------------------------------------
  4. #  处理角色排列的类。本类的实例请参考
  5. #  $game_actors。
  6. #==============================================================================
  7.  
  8. class Game_Actors
  9.   #--------------------------------------------------------------------------
  10.   # ● 初始化对像
  11.   #--------------------------------------------------------------------------
  12.   def initialize
  13.     @data = []
  14.   end
  15.   #--------------------------------------------------------------------------
  16.   # ● 获取角色
  17.   #     actor_id : 角色 ID
  18.   #--------------------------------------------------------------------------
  19.   def [](actor_id)
  20.     if actor_id > 999 or $data_actors[actor_id] == nil
  21.       return nil
  22.     end
  23.     if @data[actor_id] == nil
  24.       @data[actor_id] = Game_Actor.new(actor_id)
  25.     end
  26.     return @data[actor_id]
  27.   end
  28. end

作者: 真·可乐    时间: 2018-8-2 19:00
[] (actor_id)这个方法被传入了nil参数,在19和20行之间加上
RUBY 代码复制
  1. return if actor_id.nil?

试试
作者: 阮声悠悠    时间: 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! X3.1