Project1

标题: 【关于将状态持续时间计算改到回合结束时所遇到的问题】 [打印本页]

作者: huihui99    时间: 2014-1-31 17:44
标题: 【关于将状态持续时间计算改到回合结束时所遇到的问题】
嗯,先前试着问过如何把状态的剩余时间和自然解除的计算放到回合结束时,而不是每个对象行动之后
按照之前的回答,作了如下操作:
将Scene_Battle的746行(“remove_states_auto”)放到了777行和778行,然后将810行开始的状态自然解除的部分代码改为如下:
  def remove_states_auto
    $game_party.members.each do |i|
      last_st = i.states
      i.remove_states_auto
      if i.states != last_st
        wait(5)
        display_state_changes(i)
        wait(30)
        @message_window.clear
      end
    end
  end

但这样之后很快遇到了新问题:这里的改变状态的对象是$game_party.members,因而在实测中发现这样写会导致状态持续时间的计算仅对我方有效,而敌方的所有状态均变成了永不自然解除。我尝试着改动了那里的对象描写,但因为不知道怎么写才是规范的且能够表达所有参与战斗的对象,因而始终以报错告终
所以问题就是,这段代码要如何改写才能支持敌我双方都在回合结束时计算状态的持续时间?
作者: huihui99    时间: 2014-2-3 17:47
嗯,每次问这个问题就要多顶好几次的样子,真难233
作者: 正太君    时间: 2014-2-3 18:41
  1. $game_party.members.each do |i|
复制代码
改成
  1. ($game_party.members + $game_troop.members).each do |i|
复制代码





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