Project1

标题: tomoaky的【自动附加状态】BUG 【已解决】 [打印本页]

作者: BCJT    时间: 2017-12-9 20:58
标题: tomoaky的【自动附加状态】BUG 【已解决】
本帖最后由 BCJT 于 2017-12-11 08:31 编辑

就是当装备或者职业等设置了自动附加有【战斗后解除】属性的BUFF时,每当结束一场战斗后,如果角色不移动直接再次进入战斗,这些【战斗后解除】的BUFF就会消失。
只有先移动再进入战斗时才会正常自动附加.......
而那些没有【战斗后解除】属性的BUFF则无论何时都是正常自动附加的。
求大神看看能否修复这个BUG,或者推荐一个其它的版本,谢谢啦!
脚本如下:

#==============================================================================
# ★ RGSS3_オートステート Ver1.0
#==============================================================================
=begin

作者:tomoaky

戦闘開始時に自動的に付加されるステートをアクターやエネミーに設定できます、
メモ欄に <オートステート 2, 3> と書けば2番と3番のステートが付加されます。
対応しているのはアクター、職業、武器、防具、エネミーの5つです。

=== 注意点 ===
  ・付加状態を維持する機能は付いていません、
    あくまでも戦闘開始時に付加判定を発生させるだけです

2011.12.15  Ver1.0
  公開

=end

#==============================================================================
# ■ RPG::BaseItem
#==============================================================================
class RPG::BaseItem
  #--------------------------------------------------------------------------
  # ○ オートステートIDの配列を返す
  #--------------------------------------------------------------------------
  def auto_states
    result = []
    if /<オートステート\s+(\d+(?:\s*\,\s*\d+)*)\s*>/ =~ @note
      $1.scan(/\d+/).each do |id|
        result.push(id.to_i)
      end
    end
    result
  end
end

#==============================================================================
# ■ Game_Battler
#==============================================================================
class Game_Battler
  #--------------------------------------------------------------------------
  # ● 戦闘開始処理
  #--------------------------------------------------------------------------
  alias tmatst_game_battler_on_battle_start on_battle_start
  def on_battle_start
    tmatst_game_battler_on_battle_start
    add_auto_states
  end
end

#==============================================================================
# ■ Game_Actor
#==============================================================================
class Game_Actor
  #--------------------------------------------------------------------------
  # ○ オートステートの付加
  #--------------------------------------------------------------------------
  def add_auto_states
    states = self.actor.auto_states + self.class.auto_states
    self.equips.compact.each {|item| states += item.auto_states }
    states.uniq.each {|id| self.add_state(id) }
  end
end

#==============================================================================
# ■ Game_Enemy
#==============================================================================
class Game_Enemy
  #--------------------------------------------------------------------------
  # ○ オートステートの付加
  #--------------------------------------------------------------------------
  def add_auto_states
    self.enemy.auto_states.each {|id| self.add_state(id) }
  end
end





作者: BCJT    时间: 2017-12-10 07:55
不知道是不是跟这里有了冲突啊?求大神帮忙看着修改下:








作者: gforce    时间: 2017-12-10 12:08
腳本Game_Battler 第99行
  1. @result.removed_states.include?(state_id)
复制代码

阻止了剛被消除的狀態的再次附加

目測注釋掉第99行可以解決問題?
作者: BCJT    时间: 2017-12-10 22:37
gforce 发表于 2017-12-10 12:08
腳本Game_Battler 第99行

阻止了剛被消除的狀態的再次附加

哎呀,不行呀。 598  599行各注释了一遍都还是原来的情况。
作者: BCJT    时间: 2017-12-11 00:03
gforce 发表于 2017-12-10 12:08
腳本Game_Battler 第99行

阻止了剛被消除的狀態的再次附加

我这里的99行是个end,可咋办呀?








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