查看: 1972|回复: 2

[已经解决] 请问如何让人物不会因事件以外的方式升级

[复制链接]
梦石
0
星屑
2920
在线时间
713 小时
注册时间
2010-7-25
回帖
659

开拓者

发表于 2016-6-3 16:05:54 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
也就是类似黑魂那种效果,累计的经验一直保存,直到手动消耗经验提高等级,请问如何修改原始脚本来达到这个目的?
我修改过next_level_exp,让其等级需要的经验+9999999,这样虽然可以让人物不升级,但是事件的升级指令也会失效。还有就是只要使用了事件的升级指令之后,人物的经验也会被重置。

梦石
1
星屑
23246
在线时间
9564 小时
注册时间
2012-6-19
回帖
7018

开拓者短篇九导演组冠军

发表于 2016-6-3 17:27:12 | 显示全部楼层
战斗结束后不获取经验值而是将经验值保存到 99 号变量中
  1. class << BattleManager
  2.   def gain_exp
  3.     $game_variables[99] += $game_troop.exp_total
  4.   end
  5. end
复制代码

点评

RPG游戏人物很多,变量不好用,还要判断哪个上场哪个没上场  发表于 2016-6-3 17:49
回复

使用道具 举报

梦石
0
星屑
166
在线时间
454 小时
注册时间
2015-2-25
回帖
358
发表于 2016-6-4 10:35:50 | 显示全部楼层
本帖最后由 howhow1314 于 2016-6-4 11:06 编辑

[pre lang="ruby"]class Game_Actor
  def change_exp(exp, show)
    @exp[@class_id] = [exp, 0].max
  end
  def change_level(level, show)
    last_level = @level
    last_skills = skills
    (level - @level).times {|i| level_up if !max_level?}
    display_level_up(skills - last_skills) if show && @level > last_level
  end
  def py_level_up(show = true)
    last_level = @level
    last_skills = skills
    temp = next_level_exp - current_level_exp
    if @exp[@class_id] >= temp && !max_level?
      @exp[@class_id] -= temp
      level_up
    end
    display_level_up(skills - last_skills) if show && @level > last_level
  end
end[/pre]

用事件指令增加等級的話經驗不會變動, 用py_level_up升級=消耗經驗+升級

点评

这样啊,我的经验消耗是用变量来计算再手动升级的,估计用不上了。原版的经验需求满足不了我,用变量的话可以进行更多修改  发表于 2016-6-4 13:04
比如$game_actors[1].py_level_up這樣...1號角色經驗足夠升級的話,就會消耗經驗升1級  发表于 2016-6-4 12:39
很好用,经验没上限且不自动升级,升级和降级也不会重置现有经验。不过py_level_up是什么意思啊?它是怎么用的?  发表于 2016-6-4 11:40

评分

参与人数 2星屑 +30 梦石 +1 收起 理由
VIPArcher + 1 认可答案
jianyulei + 30 认可答案

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部