Project1

标题: 如何讓玩家腳色和敵人等級差距越多 經驗越少 [打印本页]

作者: 小叮鈴    时间: 2015-12-14 22:03
标题: 如何讓玩家腳色和敵人等級差距越多 經驗越少
如提~很多RPG遊戲都有這種設定 差距等級太多就完全沒經驗了 不過這邊好像都是等量的
作者: 枫の叶    时间: 2015-12-14 22:12
你是指单个角色的等级还是队伍的平均等级?
作者: 小叮鈴    时间: 2015-12-14 22:13
枫の叶 发表于 2015-12-14 22:12
你是指单个角色的等级还是队伍的平均等级?

都行吧~兩個都問問看~{:8_457:}
作者: 猪衰衰    时间: 2015-12-14 22:42
本帖最后由 猪衰衰 于 2015-12-14 22:47 编辑

首先RM默认中是没有敌人等级这个设定的,于是不如用一个变量来设定敌人的等级(至于这个变量你可以在一个地图中或者一场战斗前事先代入)

然后打开脚本,找到game Enemy关于经验值一栏,改成这样.
总之详细你看范例吧
[attach]297957[/attach]

QQ截图20151214224036.png (38.81 KB, 下载次数: 25)

QQ截图20151214224036.png

Project6.rar

1.42 MB, 下载次数: 55


作者: 枫の叶    时间: 2015-12-14 22:52
下面这个是队伍平均等级来算。
敌人的名字后面加一个 ★ 号,再写上这个敌人的等级。 史莱姆★10   表示 史莱姆 等级是10级。
  1. module Fy
  2.   Lv_limit = 10    #队伍平均等级与敌人等级差,大于这个数值开始减少EXP。
  3.   Exp_rate = 10    #满足上面的条件后,等级差每大一级,EXP减少的百分比。
  4. end
  5. class RPG::Enemy < RPG::BaseItem
  6.   def name
  7.     return @name.split(/★/)[0].nil? ? "" : @name.split(/★/)[0]
  8.   end
  9.   def level
  10.     return @name.split(/★/)[1].nil? ? 1 : @name.split(/★/)[1].to_i
  11.   end
  12. end
  13. class Game_Party < Game_Unit
  14.   def average_level
  15.     data = 0
  16.     members.each{|a| data += a.level}
  17.     return (data / members.size)
  18.   end
  19. end
  20. class Game_Enemy < Game_Battler
  21.   alias fy_exp exp
  22.   def exp
  23.     old_exp = fy_exp
  24.     if ($game_party.average_level - enemy.level) > Fy::Lv_limit
  25.       n = $game_party.average_level - enemy.level - Fy::Lv_limit
  26.       n.times{old_exp -= old_exp * Fy::Exp_rate / 100}
  27.       old_exp = [old_exp, 1].max  #最低1经验。
  28.     end
  29.     return old_exp
  30.   end
  31. end
复制代码

作者: 小叮鈴    时间: 2015-12-14 23:02
枫の叶 发表于 2015-12-14 22:52
下面这个是队伍平均等级来算。
敌人的名字后面加一个 ★ 号,再写上这个敌人的等级。 史莱姆★10   表示 史 ...

所以所有敵人都要改★號嗎?

另外問問把這文字丟到腳本裡面就好了?




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1