查看: 1765|回复: 4

[已经解决] 请问这个循环的问题在哪里?

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

开拓者

发表于 2017-2-12 16:24:31 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 jianyulei 于 2017-2-12 16:38 编辑

为什么队伍人数越多最后得出的数的倍率就越高?1个人的时候计算得到的数是正常算法的3倍,2人是4倍,3人5倍。
[pre lang="ruby"]class Game_Battler < Game_BattlerBase
$fangyu_shuzu = Array.new(3,0)
alias fangyu_on_turn_end on_turn_end
  def on_turn_end
      fangyu_on_turn_end      
      (0..2).each do |i|
         if $game_party.members
           $fangyu_shuzu += ($game_party.members.element_rate(27)*10).to_i
         end
      end
  end
end
[/pre]
尝试过其他写法,但都没用,唯有写进公共事件然后放到on_turn_end里面才正常

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2017-2-12 17:02:04 | 显示全部楼层
因为队伍里每个角色都要执行一遍 Game_Battler#on_turn_end

点评

这么说来以前一直手动让人物的回合结束用的都是$game_actors[1].on_turn_end,居然给忘记了……  发表于 2017-2-12 17:33

评分

参与人数 2星屑 +220 收起 理由
RaidenInfinity + 200 认可答案
jianyulei + 20 认可答案

查看全部评分

回复

使用道具 举报

梦石
0
星屑
644
在线时间
830 小时
注册时间
2016-7-24
回帖
644

开拓者

发表于 2017-2-12 17:12:45 | 显示全部楼层
順帶一提 因為敵人也要執行

所以你會看到多2是因為史萊姆兩隻吧(通靈)

点评

通灵师!现在加了判定self ==$game_actors[1] 之后就好了  发表于 2017-2-12 17:34

评分

参与人数 1星屑 +200 收起 理由
RaidenInfinity + 200 认可答案

查看全部评分

2016/07/17 加入RPG製作,勿忘初衷!
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部