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嘛。。。
与上一级升到当前级的所需经验做个差就好~
简单的说就是要做成显示升级所需经验而不是累计经验。- class Game_Actor
- def now_exp
- return @exp_list[@level+1] > 0 ? (@exp - @exp_list[@level]).to_s : "-------"
- end
- def nextlevel_exp
- return @exp_list[@level+1] > 0 ? (@exp_list[@level+1] - @exp_list[@level]).to_s : "-------"
- end
- end
- class Window_Base
- #--------------------------------------------------------------------------
- # ● 描画 EXP
- # actor : 角色
- # x : 描画目标 X 坐标
- # y : 描画目标 Y 坐标
- #--------------------------------------------------------------------------
- def draw_actor_exp(actor, x, y)
- self.contents.font.color = system_color
- self.contents.draw_text(x, y, 24, 32, "E")
- self.contents.font.color = normal_color
- self.contents.draw_text(x + 24, y, 84, 32, actor.now_exp, 2)
- self.contents.draw_text(x + 108, y, 12, 32, "/", 1)
- self.contents.draw_text(x + 120, y, 84, 32, actor.nextlevel_exp)
- end
- end
复制代码