Project1
标题:
脚本新手的提问, Undefined method ‘[]’
[打印本页]
作者:
andyho777
时间:
2014-1-17 18:08
标题:
脚本新手的提问, Undefined method ‘[]’
本帖最后由 andyho777 于 2014-1-17 18:40 编辑
话说小弟尝试制作当 $game_variables[51] == 2时,角色的攻击力会上升30。
于是我就到Game_Actor 修改 def base_atk:
#--------------------------------------------------------------------------
# ● 获取基本攻击力
#--------------------------------------------------------------------------
def base_atk
atk1 = 0
atk1 = 30 if $game_variables[51] == 2
weapon = $data_weapons[@weapon_id]
return weapon != nil ? weapon.atk : 0
return weapon + atk1
end
而测时则时发生了错误「Undefined method ‘[]’ for nil:NilClass」,
请问即是要重新定义「[]」吗?
这问题应如何解决?
作者:
恐惧剑刃
时间:
2014-1-17 18:17
本帖最后由 恋′挂机 于 2014-1-17 18:38 编辑
把 return weapon + atk1
改为 return weapon.atk + atk1
你 p 一下 $game_variables 看看是不是nil (不会是nil吧。。。)
你 p 一下 $data_weapons 看看是不是nil (不会是nil吧。。。)
想问,你是怎样用的才报错(比如你点了战斗测试然后报错)
#--------------------------------------------------------------------------
# ● 获取基本攻击力
#--------------------------------------------------------------------------
def base_atk
weapon = $data_weapons[@weapon_id]
return weapon != nil ? weapon.atk : 0 if $game_variables[51] != 2
return weapon != nil ? weapon.atk + 30 : 0
end
复制代码
作者:
andyho777
时间:
2014-1-17 18:42
我把内容修改成这样后就解决了… =0=
虽然不知甚么原因, 但还是谢谢大大的帮忙
#--------------------------------------------------------------------------
# ● 获取基本攻击力
#--------------------------------------------------------------------------
def base_atk
#=====================================^口^
weapon = $data_weapons[@weapon_id]
atk0 = weapon != nil ? weapon.atk : 0#
atk1 = 0
atk1 = 30 if $game_variables[53] == 2
#return weapon != nil ? weapon.atk : 0
return atk0 + atk1#
end
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1