Project1

标题: 关于升级后经验值清零的问题。 [打印本页]

作者: 459974518    时间: 2011-8-24 09:31
提示: 作者被禁止或删除 内容自动屏蔽
作者: f26401004    时间: 2011-8-24 09:42
本帖最后由 f26401004 于 2011-8-24 11:29 编辑

基本上這個滿簡單的,
在空白處貼上下面的腳本試試。



class Game_Actor
  def exp=(exp)
    @exp = exp
    while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
      @exp = @exp - @exp_list[@level+1]
      @level += 1
    end
    for j in $data_classes[@class_id].learnings
      if j.level == @level
        learn_skill(j.skill_id)
      end
    end
    @hp = [@hp, self.maxhp].min
    @sp = [@sp, self.maxsp].min
  end
  def level=(level)
    level = [[level, $data_actors[@actor_id].final_level].min, 1].max
    @exp = 0
  end
end



作者: 亿万星辰    时间: 2011-8-24 14:05
本帖最后由 亿万星辰 于 2011-8-24 14:06 编辑

楼上的思路似乎远了~没必要让exp=0嘛。。。
与上一级升到当前级的所需经验做个差就好~
简单的说就是要做成显示升级所需经验而不是累计经验。
  1. class Game_Actor
  2.   def now_exp
  3.     return @exp_list[@level+1] > 0 ? (@exp - @exp_list[@level]).to_s : "-------"
  4.   end
  5.   def nextlevel_exp
  6.     return @exp_list[@level+1] > 0 ? (@exp_list[@level+1] - @exp_list[@level]).to_s : "-------"
  7.   end
  8. end
  9. class Window_Base
  10.   #--------------------------------------------------------------------------
  11.   # ● 描画 EXP
  12.   #     actor : 角色
  13.   #     x     : 描画目标 X 坐标
  14.   #     y     : 描画目标 Y 坐标
  15.   #--------------------------------------------------------------------------
  16.   def draw_actor_exp(actor, x, y)
  17.     self.contents.font.color = system_color
  18.     self.contents.draw_text(x, y, 24, 32, "E")
  19.     self.contents.font.color = normal_color
  20.     self.contents.draw_text(x + 24, y, 84, 32, actor.now_exp, 2)
  21.     self.contents.draw_text(x + 108, y, 12, 32, "/", 1)
  22.     self.contents.draw_text(x + 120, y, 84, 32, actor.nextlevel_exp)
  23.   end
  24. end
复制代码



亿万星辰于2011-8-24 14:57补充以下内容:
状态栏里直接自行添加调用上面的方法即可即可~




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