Project1
标题: RMXP自动升级修改 [打印本页]
作者: 夕仔 时间: 2014-11-18 23:35
标题: RMXP自动升级修改
RMXP脚本中的自动升级在哪里?
怎么取消自动升级,我重写了个变量,代替了经验,但要防止原来的经验增加(修改器)影响等级,怎么取消?
作者: H·H·Y 时间: 2014-11-19 12:12
本帖最后由 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要搞很多工作呢。
@夕仔
作者: 夕仔 时间: 2014-11-19 12:48
- def level=(level)
- # 检查上下限
- level = [[level, new_final_level].min, 1].max
- if level > @level
- for i in @level...level
- self.exp += @exp_list[i+1]
- end
- else
- @level = level
- end
- end
复制代码 @H·H·Y 这个要怎么改
作者: 恐惧剑刃 时间: 2014-11-19 13:21
本帖最后由 恐惧剑刃 于 2014-11-19 13:33 编辑
范例
手动升级.zip
(228.35 KB, 下载次数: 63)
修正个小问题- class Game_Actor < Game_Battler
- def zan_exp_up_level#升级方法
- return if @exp_list[@level + 1] < 0 or @exp < @exp_list[@level + 1]
- @exp -= @exp_list[@level + 1]
- @level += 1
- @hp = self.maxhp
- @sp = self.maxsp
- # 学会特技
- for j in $data_classes[@class_id].learnings
- if j.level == @level
- learn_skill(j.skill_id)
- end
- end
- end
- def exp=(exp)
- @exp = [[exp, 9999999].min, 0].max
- # 降级
- while @exp < @exp_list[@level]
- @level -= 1
- # 修正当前的 HP 与 SP 超过最大值
- @hp = [@hp, self.maxhp].min
- @sp = [@sp, self.maxsp].min
- end
- end
- end
复制代码
欢迎光临 Project1 (https://rpg.blue/) |
Powered by Discuz! X3.1 |