Project1

标题: 有沒有辦法實現經驗值隊伍平分? [打印本页]

作者: a0936459772    时间: 2013-8-4 20:16
标题: 有沒有辦法實現經驗值隊伍平分?
本帖最后由 a0936459772 于 2013-8-5 15:49 编辑

當隊伍中只有1人,獲得全部經驗值
隊伍中有n人,則每個隊員獲得經驗值/n
當n大於出戰人數(預設為4),則每個隊員獲得經驗值/4

且隊友死亡時,經驗值會分給存活的隊員

例如:
史萊姆的經驗值為30
隊中有A、B、C三個成員
A已經死亡,則BC分別獲得15經驗值

我嘗試改了下腳本

RUBY 代码复制
  1. #--------------------------------------------------------------------------
  2.   # ● 獲得經驗值(判斷經驗獲取加成)
  3.   #--------------------------------------------------------------------------
  4.   def gain_exp(exp)
  5.     n = $game_party.members.size
  6.     (n = 4) if $game_party.members.size > 4
  7.     change_exp((self.exp + (exp * final_exp_rate)/n).to_i, true)
  8.     #change_exp(self.exp + (exp * final_exp_rate).to_i, true)
  9.   end


但是沒把隊友死亡給考慮進去
而且這段不知道是不是不包括事件中的"經驗值增減"

有沒有人可以完美實現經驗值均分呢?
作者: scottyfan    时间: 2013-8-5 01:52
本帖最后由 scottyfan 于 2013-8-5 16:00 编辑

你到battleManager改这段
  def self.gain_exp
    count = 0
    $game_party.battle_members.each do |actor|
      count += 1 if actor.alive?
    end
    $game_party.battle_members.each do |actor|
      next if actor.dead?
      actor.gain_exp($game_troop.exp_total.to_f / count)
    end
    wait_for_message
  end
如果用战斗显示结果脚本的话可能就无效了,脚本里会重写这个方法。
作者: xggzga117    时间: 2013-8-5 15:48
这个功能也是我想要的,呵呵。
和LZ一起坐等求解。




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