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

Project1

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

[已经解决] 脚本新手的提问, Undefined method ‘[]’

[复制链接]

Lv1.梦旅人

梦石
0
星屑
109
在线时间
42 小时
注册时间
2007-7-4
帖子
116
跳转到指定楼层
1
发表于 2014-1-17 18:08:16 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 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」,
请问即是要重新定义「[]」吗?
这问题应如何解决?
-==Hovey The Thief==- 制作进度 地图:■■■■■■□□□□ 50% 剧情:■■■■■■■■□□ 80% 任务:■■■□□□□□□□ 30% 素材:■■■■□□□□□□ 40% 系统:■■■■□□□□□□ 40% 不懂得用PS上色……

Lv1.梦旅人

薄凉看客

梦石
0
星屑
50
在线时间
1269 小时
注册时间
2010-6-20
帖子
1316
2
发表于 2014-1-17 18:17:12 | 只看该作者
本帖最后由 恋′挂机 于 2014-1-17 18:38 编辑

把 return weapon + atk1
改为 return weapon.atk + atk1

你 p 一下 $game_variables 看看是不是nil (不会是nil吧。。。)
你 p 一下 $data_weapons 看看是不是nil (不会是nil吧。。。)

想问,你是怎样用的才报错(比如你点了战斗测试然后报错)
  1. #--------------------------------------------------------------------------
  2.   # ● 获取基本攻击力
  3.   #--------------------------------------------------------------------------
  4.   def base_atk
  5.     weapon = $data_weapons[@weapon_id]
  6.     return weapon != nil ? weapon.atk : 0 if $game_variables[51] != 2
  7.     return weapon != nil ? weapon.atk + 30 : 0
  8.   end
复制代码

点评

是在Scene_Equip更換裝備昤報錯的  发表于 2014-1-17 18:34
刚试了但问题仍然存在@@, 仍然是Undefined method ‘[]’, 看来问题是来自$game_variables[51]?  发表于 2014-1-17 18:20
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
109
在线时间
42 小时
注册时间
2007-7-4
帖子
116
3
 楼主| 发表于 2014-1-17 18:42:39 | 只看该作者
我把内容修改成这样后就解决了… =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

点评

他 return weapon + atk1 和 他 return weapon.atk + atk1 是不一样的,错误原因是这里  发表于 2014-1-17 18:43
-==Hovey The Thief==- 制作进度 地图:■■■■■■□□□□ 50% 剧情:■■■■■■■■□□ 80% 任务:■■■□□□□□□□ 30% 素材:■■■■□□□□□□ 40% 系统:■■■■□□□□□□ 40% 不懂得用PS上色……
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-21 11:23

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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