设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2275|回复: 13
打印 上一主题 下一主题

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

[复制链接]

Lv3.寻梦者

梦石
0
星屑
4007
在线时间
604 小时
注册时间
2017-4-21
帖子
229
跳转到指定楼层
1
发表于 2018-8-2 18:15:57 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 阮声悠悠 于 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

Lv4.逐梦者

梦石
2
星屑
13353
在线时间
2299 小时
注册时间
2011-6-4
帖子
618
2
发表于 2018-8-2 19:00:02 | 只看该作者
[] (actor_id)这个方法被传入了nil参数,在19和20行之间加上
RUBY 代码复制
  1. return if actor_id.nil?

试试

评分

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

查看全部评分

BUG反馈请加QQ 529283039
水友群 917854767

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4007
在线时间
604 小时
注册时间
2017-4-21
帖子
229
3
 楼主| 发表于 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
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33414
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

4
发表于 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 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-11 05:23

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表