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: RGSS2, RPGツクールVX, Ruby, TYPE74RX-T
Comments are closed here.