#============================================================================== # ■ RGSS3 ステートターン加算 Ver1.01 by 星潟 #------------------------------------------------------------------------------ # ステートを上書きした際、ステートターンを再設定するのではなく # 現在の残りステートターン数に加算します。 # 加算しないようにする設定や、加算上限も設定できます。 #============================================================================== # ステートのメモ欄に記述 #------------------------------------------------------------------------------ # <ステートターン最大値:10> # # このステートのターン数最大値は10となります。 #------------------------------------------------------------------------------ # <ステートターン加算禁止> # # このステートの残りターン数は上書き時に加算されなくなります。 #============================================================================== module StateTurnPlus #デフォルトの最大ターン数を指定。 D_Max = 999 #ステートターン最大値設定用キーワードを指定します。 Word1 = "ステートターン最大値" #ステートターン加算禁止設定用キーワードを指定します。 Word2 = "ステートターン加算禁止" end class Game_Battler < Game_BattlerBase #-------------------------------------------------------------------------- # ステートターンリセット #-------------------------------------------------------------------------- alias reset_state_counts_plus reset_state_counts def reset_state_counts(state_id) s = $data_states[state_id] f = s.state_turn_plus_seal a = @state_turns[state_id] ? @state_turns[state_id] : 0 unless f reset_state_counts_plus(state_id) return if f m = s.state_turn_max @state_turns[state_id] = @state_turns[state_id] + a @state_turns[state_id] = m if m < @state_turns[state_id] end end class RPG::State < RPG::BaseItem #-------------------------------------------------------------------------- # ステートターン最大値 #-------------------------------------------------------------------------- def state_turn_max @state_turn_max ||= /<#{StateTurnPlus::Word1}[::](\S+)>/ =~ note ? $1.to_i : StateTurnPlus::D_Max end #-------------------------------------------------------------------------- # ステートターン加算禁止 #-------------------------------------------------------------------------- def state_turn_plus_seal (@state_turn_plus_seal ||= /<#{StateTurnPlus::Word2}>/ =~ note ? 1 : 0) == 1 end end