Project1

标题: 经验槽99级满经验 会报错 怎么解决? [打印本页]

作者: 魏玉龙    时间: 2009-11-4 10:16
标题: 经验槽99级满经验 会报错 怎么解决?
class Game_Actor < Game_Battler
  def now_exp
    return @exp - @exp_list[@level]
  end
  def next_exp
    return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0
  end
end

class Window_Base < Window
  def EXP(actor,x,y,w=125)
  self.contents.fill_rect(x-2,y+20,w+4,11,Color.new(255,255,255,255))
  self.contents.fill_rect(x-1,y+21,w+2,9,Color.new(0,0,0,255))
    w1 = w * actor.now_exp / actor.next_exp
  self.contents.fill_rect(x-1,y+21,w1,1,Color.new(0,120,210,255))
  self.contents.fill_rect(x-1,y+22,w1,1,Color.new(0,120,230,255))
  self.contents.fill_rect(x-1,y+23,w1,1,Color.new(0,120,250,255))
  self.contents.fill_rect(x-1,y+24,w1,1,Color.new(0,120,270,255))
  self.contents.fill_rect(x-1,y+25,w1,1,Color.new(0,125,290,255))
  self.contents.fill_rect(x-1,y+26,w1,1,Color.new(0,120,270,255))
  self.contents.fill_rect(x-1,y+27,w1,1,Color.new(0,120,250,255))
  self.contents.fill_rect(x-1,y+28,w1,1,Color.new(0,120,230,255))
  self.contents.fill_rect(x-1,y+29,w1,1,Color.new(0,120,210,255))
end

只要一满级 在打开界面就会报错
谁来帮忙加个判定什么的
作者: Tabris_Air    时间: 2009-11-4 10:35
return @exp_list[@level+1] > 0 ? @exp_list[@level+1] - @exp_list[@level] : 0

w1 = w * actor.now_exp / actor.next_exp

问题在这两句,当满级后.next_exp返回的是0,
下一句就会出现分母为0的情况。

一个简单的解决办法是把第二句改成
w1 = w
w1 = w * actor.now_exp / actor.next_exp if actor.next_exp != 0
作者: 魏玉龙    时间: 2009-11-4 11:27
报错解决了
但为什么 经验值满级后
顶不到头?
作者: 魏玉龙    时间: 2009-11-4 11:33
OK ~!自己解决了~!
w1 = w+2




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