设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 1753|回复: 3
打印 上一主题 下一主题

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

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1179
在线时间
209 小时
注册时间
2013-6-19
帖子
138
跳转到指定楼层
1
发表于 2013-8-4 20:16:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 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


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

有沒有人可以完美實現經驗值均分呢?

Lv1.梦旅人

梦石
0
星屑
50
在线时间
256 小时
注册时间
2013-5-27
帖子
196
来自 2楼
发表于 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 感谢帮忙

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
170
在线时间
227 小时
注册时间
2011-5-19
帖子
736
3
发表于 2013-8-5 15:48:37 | 只看该作者
这个功能也是我想要的,呵呵。
和LZ一起坐等求解。
休息中……
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-17 20:52

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表