exp=方法的定义就在level=上面。很清楚的看出,在修改exp的时候,会逐步修改@level变量,并且添加相应的技能。
像你所做的,提前修改了@level,就会导致这个添加技能的步骤被跳过。
#-------------------------------------------------------------------------- # ● 更改 EXP # exp : 新的 EXP #-------------------------------------------------------------------------- def exp=(exp) @exp = [[exp, 9999999].min, 0].max # 升级 while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0 @level += 1 # 学会特技 for j in $data_classes[@class_id].learnings if j.level == @level learn_skill(j.skill_id) end end end # 降级 while @exp < @exp_list[@level] @level -= 1 end # 修正当前的 HP 与 SP 超过最大值 @hp = [@hp, self.maxhp].min @sp = [@sp, self.maxsp].min end #-------------------------------------------------------------------------- # ● 更改等级 # level : 新的等级 #-------------------------------------------------------------------------- def level=(level) # 检查上下限 level = [[level, $data_actors[@actor_id].final_level].min, 1].max # 更改 EXP self.exp = @exp_list[level] end
#--------------------------------------------------------------------------
# ● 更改 EXP
# exp : 新的 EXP
#--------------------------------------------------------------------------
def exp=(exp)
@exp = [[exp, 9999999].min, 0].max
# 升级
while @exp >= @exp_list[@level+1] and @exp_list[@level+1] > 0
@level += 1
# 学会特技
for j in $data_classes[@class_id].learnings
if j.level == @level
learn_skill(j.skill_id)
end
end
end
# 降级
while @exp < @exp_list[@level]
@level -= 1
end
# 修正当前的 HP 与 SP 超过最大值
@hp = [@hp, self.maxhp].min
@sp = [@sp, self.maxsp].min
end
#--------------------------------------------------------------------------
# ● 更改等级
# level : 新的等级
#--------------------------------------------------------------------------
def level=(level)
# 检查上下限
level = [[level, $data_actors[@actor_id].final_level].min, 1].max
# 更改 EXP
self.exp = @exp_list[level]
end
|