本帖最后由 H·H·Y 于 2014-11-19 13:42 编辑
刚刚弄错了。
Game_Actor的458行更改exp的方法改为
def exp=(exp) @exp = [[exp, 9999999].min, 0].max @level_remember = @level # 升级 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 if $level_switch != true @level = @level_remember else $level_switch = false end end
def exp=(exp)
@exp = [[exp, 9999999].min, 0].max
@level_remember = @level
# 升级
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
if $level_switch != true
@level = @level_remember
else
$level_switch = false
end
end
Interpreter 6的198行增减等级方法改为
def command_316 $level_switch = true # 获取操作值 value = operate_value(@parameters[1], @parameters[2], @parameters[3]) # 处理重复 iterate_actor(@parameters[0]) do |actor| # 更改角色的等级 actor.level += value end # 继续 return true end
def command_316
$level_switch = true
# 获取操作值
value = operate_value(@parameters[1], @parameters[2], @parameters[3])
# 处理重复
iterate_actor(@parameters[0]) do |actor|
# 更改角色的等级
actor.level += value
end
# 继续
return true
end
这样可以做到即便经验值已经到达升级需求也不会升级的效果。
不过我这改的有点问题,使用事件增减等级需要分开增加,不能“全体成员”,否则只会给第一位角色加等级,暂时不知道解决方法。
还有要做到完全剃掉默认的exp要搞很多工作呢。
@夕仔
|