確率行動可能行動不能ステート

2010/01/17 | By KUMA | Filed in: RPGツクールVX.

RPGツクールVXの拡張機能「確率行動可能行動不能ステートVer1.00」を公開します。

■仕様

  • これは戦闘行動時、行動選択後任意の確率で行動がキャンセルされるステートです。
  • ステートのノート欄にキーワード「行動不能率」 さらに続けて数値で1~100を入れます。
    1=1%の確率で行動できない 100=制約:行動できない といった挙動をします。
    本機能を使用する場合、戦闘中設定した制約は自動的に「制約なし」に変更されます。
  • 本スクリプトはTYPE74RX-T氏の特殊効果判定用ベーススクリプトVer1.11に依存しています。

■ライセンス

  • 本スクリプトはCC0として公開します。
    ただし、依存先であるTYPE74RX-T氏のスクリプトは、氏のライセンス条件に従ってください。

■諸注意

  • 本スクリプトはTYPE74RX-T氏とは一切関係がありません。質問などを氏にするのはご迷惑なので絶対にやめてください。
  • 本スクリプトを使用して何らかの損害が発生してもKUMAは一切責任を負いません。
  • 仕様変更、仕様追加のリクエストへの対応、不具合修正、質問に対する回答など、真摯に対応するかもしれませんが、しないかもしれません。
    どうぞご自身のリスクにおいて、勉強して、改造して、ご自身の望む機能を手に入れてください。そのためのCC0ライセンスです。
    あ、もちろんKUMAに対し金銭による契約を結んだ上で、保証やサポートのあるコードを手に入れたいということであれば、歓迎いたしますのでご相談ください。

というわけで、続きにコード公開

#
#    確率行動可能行動不能ステートVer1.00(RGSS2)
#    Jan 17 2010.  Edit by KUMA
#  本スクリプトはTYPE74RX-T氏の特殊効果判定用ベーススクリプトVer1.11に
#    依存しています。この場を借りて氏に感謝の意を表します。
#
#    ステートのノート欄にキーワード「行動不能率」 さらに続けて数値で1~100を入れます。
#    1=1%の確率で行動できない 100=制約:行動できない といった挙動をします。
#    本機能を使用する場合、見た目上制約は自動的に「制約なし」となります。
#    通常は制約なしを選択してください。
#
#

#--------------------------------------------------------------------------
# ★ システムワードの登録:行動不能率
#--------------------------------------------------------------------------
module RPG
  class State
    alias rx_rgss2_kuma_rx_extract_sys_str_from_note rx_extract_sys_str_from_note
    def rx_extract_sys_str_from_note
      rx_get_sys = RX_T.get_system_word_in_note(@note, "行動不能率", true)
      unless rx_get_sys == ""
        @@rx_copy_str += rx_get_sys
        @note = @note.sub(rx_get_sys, "")
        @note = @note.sub("\r\n", "")
      end
      @rx_sys_str = @@rx_copy_str
      # メソッドを呼び戻す
      rx_rgss2_kuma_rx_extract_sys_str_from_note
    end
  end
end

#==============================================================================
# ■ Game_Battler
#------------------------------------------------------------------------------

class Game_Battler
  #--------------------------------------------------------------------------
  # ● 制約の取得
  #--------------------------------------------------------------------------
  alias rx_rgss2_kuma_restriction restriction
  def restriction
    rx_result = 0
    rx_cannot_action_num = 0  # クリティカル率取得値
    # ★ 行動不能率を設定しているステートがあれば、その数値を取得
    #    数値が設定されていれば、その制約を「なし」にする
    for state in states
      rx_cannot_action_num = RX_T.get_numeric_of_system_word_in_sys_str(state, "行動不能率")
      state.restriction = 0 if 0 < rx_cannot_action_num
    end
    # メソッドを呼び戻す
    rx_rgss2_kuma_restriction
  end
end

#==============================================================================
# ■ Game_BattleAction
#------------------------------------------------------------------------------

class Game_BattleAction
  #--------------------------------------------------------------------------
  # ● 確率計算
  #--------------------------------------------------------------------------
  def rx_rgss2_kuma_rasio_stan?
    # 正真正銘の行動不能があればそっちを優先する
    if battler.restriction < 4
      rx_result = 0
      rx_cannot_action_num = 0  # 行動不能率取得値
      # ★ 行動不能率を設定しているステートがあれば、その数値を取得
      #    最大値を使用する
      for state in battler.states
        rx_cannot_action_num = RX_T.get_numeric_of_system_word_in_sys_str(state, "行動不能率")
        rx_result = rx_cannot_action_num if rx_result < rx_cannot_action_num
      end
      # 確率を計算して、行動不能ならばfalseにする
      if rx_result > 0
        if rand(100) < rx_result
          return true
        end
      end
    end
    return false
  end

  #--------------------------------------------------------------------------
  # ● 通常攻撃を設定
  #--------------------------------------------------------------------------
  def rx_rgss2_kuma_set_nothing
    @kind = 0
    @basic = -1
  end

  #--------------------------------------------------------------------------
  # ● 行動不能上書き
  #--------------------------------------------------------------------------
  alias rx_rgss2_kuma_prepare prepare
  def prepare
    # メソッドを呼び戻す
    rx_rgss2_kuma_prepare
    if rx_rgss2_kuma_rasio_stan?
      # 行動を何もしないに上書き
      rx_rgss2_kuma_set_nothing
    end
  end
end
#
#    確立行動可能行動不能ステート(RGSS2)
#    Jan 17 2010.  Edit by KUMA
#  本スクリプトはTYPE74RX-T氏の特殊効果判定用ベーススクリプトVer1.11に
#    依存しています。この場を借りて氏に感謝の意を表します。
#
#    ステートのノート欄にキーワード「行動不能率」 さらに続けて数値で1~100を入れます。
#    1=1%の確率で行動できない 100=制約:行動できない と同じ挙動をします。
#    本機能を使用する場合、見た目上制約は自動的に「制約なし」となります。
#    通常は制約なしを選択してください。
#
#

#————————————————————————–
# ★ システムワードの登録:行動不能率
#————————————————————————–
module RPG
class State
alias rx_rgss2_kuma_rx_extract_sys_str_from_note rx_extract_sys_str_from_note
def rx_extract_sys_str_from_note
rx_get_sys = RX_T.get_system_word_in_note(@note, “行動不能率”, true)
unless rx_get_sys == “”
@@rx_copy_str += rx_get_sys
@note = @note.sub(rx_get_sys, “”)
@note = @note.sub(“\r\n”, “”)
end
@rx_sys_str = @@rx_copy_str
# メソッドを呼び戻す
rx_rgss2_kuma_rx_extract_sys_str_from_note
end
end
end

#==============================================================================
# ■ Game_Battler
#——————————————————————————

class Game_Battler
#————————————————————————–
# ● 制約の取得
#————————————————————————–
alias rx_rgss2_kuma_restriction restriction
def restriction
rx_result = 0
rx_cannot_action_num = 0  # クリティカル率取得値
# ★ 行動不能率を設定しているステートがあれば、その数値を取得
#    数値が設定されていれば、その制約を「なし」にする
for state in states
rx_cannot_action_num = RX_T.get_numeric_of_system_word_in_sys_str(state, “行動不能率”)
state.restriction = 0 if 0 < rx_cannot_action_num
end
# メソッドを呼び戻す
rx_rgss2_kuma_restriction
end
end

#==============================================================================
# ■ Game_BattleAction
#——————————————————————————

class Game_BattleAction
#————————————————————————–
# ● 確率計算
#————————————————————————–
def rx_rgss2_kuma_rasio_stan?
# 正真正銘の行動不能があればそっちを優先する
if battler.restriction < 4
rx_result = 0
rx_cannot_action_num = 0  # 行動不能率取得値
# ★ 行動不能率を設定しているステートがあれば、その数値を取得
#    最大値を使用する
for state in battler.states
rx_cannot_action_num = RX_T.get_numeric_of_system_word_in_sys_str(state, “行動不能率”)
rx_result = rx_cannot_action_num if rx_result < rx_cannot_action_num
end
# 確率を計算して、行動不能ならばfalseにする
if rx_result > 0
if rand(100) < rx_result
return true
end
end
end
return false
end

#————————————————————————–
# ● 通常攻撃を設定
#————————————————————————–
def rx_rgss2_kuma_set_nothing
@kind = 0
@basic = -1
end

#————————————————————————–
# ● 行動不能上書き
#————————————————————————–
alias rx_rgss2_kuma_prepare prepare
def prepare
# メソッドを呼び戻す
rx_rgss2_kuma_prepare
if rx_rgss2_kuma_rasio_stan?
# 行動を何もしないに上書き
rx_rgss2_kuma_set_nothing
end
end
end


Tags: , , ,

Comments are closed here.