查看: 2532|回复: 3

[已经解决] 有沒有辦法實現經驗值隊伍平分?

[复制链接]
梦石
0
星屑
1564
在线时间
209 小时
注册时间
2013-6-19
回帖
123
发表于 2013-8-4 20:16:59 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 a0936459772 于 2013-8-5 15:49 编辑

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

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

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

我嘗試改了下腳本

[pre lang="ruby" line="1"]  #--------------------------------------------------------------------------
  # ● 獲得經驗值(判斷經驗獲取加成)
  #--------------------------------------------------------------------------
  def gain_exp(exp)
    n = $game_party.members.size
    (n = 4) if $game_party.members.size > 4
    change_exp((self.exp + (exp * final_exp_rate)/n).to_i, true)
    #change_exp(self.exp + (exp * final_exp_rate).to_i, true)
  end[/pre]

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

有沒有人可以完美實現經驗值均分呢?
梦石
0
星屑
50
在线时间
256 小时
注册时间
2013-5-27
回帖
187
发表于 2013-8-5 01:52:14 | 显示全部楼层
本帖最后由 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
如果用战斗显示结果脚本的话可能就无效了,脚本里会重写这个方法。

点评

不用了,因为在Game_Actor里的方法自动转为整型了,当然如果你为了保险,自己转一次也无妨。但我现在碰到最大问题是用了战斗显示结果,这个就无...  发表于 2013-8-5 15:47
是不是還要轉成整數型態?  发表于 2013-8-5 11:50

评分

参与人数 1星屑 +150 收起 理由
Sion + 150 感谢帮忙

查看全部评分

回复

使用道具 举报

梦石
0
星屑
196
在线时间
229 小时
注册时间
2011-5-19
回帖
647
发表于 2013-8-5 15:48:37 | 显示全部楼层
这个功能也是我想要的,呵呵。
和LZ一起坐等求解。
休息中……
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部