Project1

标题: 升级经验 [打印本页]

作者: 黑米馒头    时间: 2015-2-3 10:01
标题: 升级经验
XP默认的经验显示是,总共获得的经验+当前获得的经验/总共获得的经验+升级所需的经验,
如何改成 当前获得的经验/升级所需的经验。
作者: RyanBern    时间: 2015-2-3 10:11
黑掉这两个方法即可:
RUBY 代码复制
  1. class Game_Actor
  2.   #--------------------------------------------------------------------------
  3.   # ● 获取 EXP 字符串
  4.   #--------------------------------------------------------------------------
  5.   def exp_s
  6.     return @exp_list[@level+1] > 0 ? (@exp - @exp_list[@level]).to_s : "-------"
  7.   end
  8.   #--------------------------------------------------------------------------
  9.   # ● 获取下一等级的 EXP 字符串
  10.   #--------------------------------------------------------------------------
  11.   def next_exp_s
  12.     return @exp_list[@level+1] > 0 ? (@exp_list[@level+1] - @exp_list[@level]).to_s : "-------"
  13.   end
  14. end

作者: 黑米馒头    时间: 2015-2-3 11:30
RyanBern 发表于 2015-2-3 10:11
黑掉这两个方法即可:
class Game_Actor
  #----------------------------------------------------------- ...

帮我看下这要怎么改
  1. class JD_DL < Window_Base
  2.   def initialize(actor)
  3.   #=====================================================================
  4.   # 释放经验条
  5.   def dispose
  6.     super
  7.     dispose_exp
  8.   end
  9.   def dispose_exp
  10.     if !@exp_b.nil? and !@exp_b.disposed?
  11.       @exp_b.bitmap.dispose
  12.       @exp_b.dispose
  13.       @exp_b = nil
  14.       @exp_c.bitmap.dispose
  15.       @exp_c.dispose
  16.       @exp_c = nil
  17.   end
  18.   #=====================================================================
  19.   end  
  20.     super(320, 0, 330, 360)
  21.     self.contents = Bitmap.new(width - 32, height - 32)
  22.     self.contents.font.size = 16
  23.     @actor = actor
  24.     # ** 文字高
  25.     # ** 可以放在refresh里 实时控制
  26.     @sh = 32
  27.     self.opacity = 0
  28.     refresh
  29.   end
  30.   #--------------------------------------------------------------------------
  31.   # ● 刷新
  32.   #--------------------------------------------------------------------------
  33.   def refresh
  34.     self.contents.clear

  35.     # 经验数值
  36.     self.contents.draw_text(-189, 254, 300, 32, @actor.exp_s,2)
  37.     self.contents.draw_text(-33, 254, 300, 32, "/", 1)
  38.     self.contents.draw_text(123, 254, 300, 32, @actor.next_exp_s)
  39.    
  40.     # 经验条显示
  41.     dispose_exp
  42.     @exp_b = nil
  43.     @exp_c = nil   
  44.     @exp_b = Sprite.new
  45.     @exp_c = Sprite.new  

  46.     @exp_b.bitmap = Bitmap.new(168,10)   # 经验条1宽度,第高度
  47.     @exp_c.bitmap = Bitmap.new(168,5)    # 经验条2宽度,第高度
  48.     # 经验条颜色
  49.     color2 = Color.new(111,172,115,255)  # 经验条1颜色
  50.     color3 = Color.new(49,159,51,255)    # 经验条2颜色
  51.     # 经验值增幅度
  52.     next_exp = @actor.next_exp_s.to_i == 0 ? @actor.exp : @actor.next_exp_s.to_i
  53.     @exp_d = 168*@actor.exp/next_exp
  54.     # 经验条增幅条1
  55.     @exp_b.x = 61+310
  56.     @exp_b.y = 250+49
  57.     @exp_b.z = 10001
  58.     @exp_b.bitmap.fill_rect(0,0,@exp_d,32,color2)
  59.     # 经验条增幅条2
  60.     @exp_c.x = 61+310
  61.     @exp_c.y = 253+49  
  62.     @exp_c.z = 10001
  63.     @exp_c.bitmap.fill_rect(0,0,@exp_d,32,color3)
  64.     end
  65.   end
复制代码

作者: RyanBern    时间: 2015-2-3 12:09
黑米馒头 发表于 2015-2-3 11:30
帮我看下这要怎么改

54~55行替换成
next_exp = @actor.next_exp_s.to_i
@exp_d = next_exp == 0 ? 168 : 168 * @actor.exp_s.to_i / next_exp
然后再插入我给出的脚本即可

作者: 小传子    时间: 2015-2-3 13:06
黑米馒头 发表于 2015-2-3 11:30
帮我看下这要怎么改

仔细读懂代码就懂自己改了。




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