Project1

标题: 某职业脚本的问题 [打印本页]

作者: BQICEX    时间: 2011-3-6 18:19
标题: 某职业脚本的问题
本帖最后由 BQICEX 于 2011-3-6 18:22 编辑

就是下面这段脚本,在变更职业时会出现NoMethodError,找不到parameters。不过当角色变更成已加入队伍的角色的职业时就会没问题。请求修复方法。本人是脚本盲...
  1. class Game_Actor < Game_Battler
  2.   #--------------------------------------------------------------------------
  3.   # * 获取初始HP上限值资讯
  4.   #--------------------------------------------------------------------------
  5.   def base_maxhp
  6.     return $data_actors[self.class.id].parameters[0, @level]
  7.   end
  8.   #--------------------------------------------------------------------------
  9.   # * 获取初始MP上限值资讯
  10.   #--------------------------------------------------------------------------
  11.   def base_maxmp
  12.     return $data_actors[self.class.id].parameters[1, @level]
  13.   end
  14.   #--------------------------------------------------------------------------
  15.   # * 获取初始攻击力资讯
  16.   #--------------------------------------------------------------------------
  17.   def base_atk
  18.     n = $data_actors[self.class.id].parameters[2, @level]
  19.     for item in equips.compact do n += item.atk end
  20.     return n
  21.   end
  22.   #--------------------------------------------------------------------------
  23.   # * 获取初始防御力资讯
  24.   #--------------------------------------------------------------------------
  25.   def base_def
  26.     n = $data_actors[self.class.id].parameters[3, @level]
  27.     for item in equips.compact do n += item.def end
  28.     return n
  29.   end
  30.   #--------------------------------------------------------------------------
  31.   # * 获取初始精神意志力资讯
  32.   #--------------------------------------------------------------------------
  33.   def base_spi
  34.     n = $data_actors[self.class.id].parameters[4, @level]
  35.     for item in equips.compact do n += item.spi end
  36.     return n
  37.   end
  38.   #--------------------------------------------------------------------------
  39.   # * 获取初始机敏性资讯
  40.   #--------------------------------------------------------------------------
  41.   def base_agi
  42.     n = $data_actors[self.class.id].parameters[5, @level]
  43.     for item in equips.compact do n += item.agi end
  44.     return n
  45.   end
  46. end
复制代码
dsu_plus_rewardpost_czw
作者: wsffx13    时间: 2011-3-6 18:58
当然要出错,关键分析一下你这句
$data_actors[self.class.id].parameters[0, @level]
self.class.id 就是指你角色职业的ID
$data_actors[self.class.id] 就是你根据所用角色对应的职业ID所决定的角色……是不是很乱……

脚本出现问题原因无非是 self.class.id 的值,换职业时,它过大或者是nil或0都会导致
$data_actors[self.class.id] == nil
自然不会有其属性parameters的存在了……




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