HOME
ツクール
RGSS
テクニック
ゲーム紹介
制作中のゲーム
ダウンロード
掲示板
ブログ
EnDREss DREamERブログ
PCパーツ・ソフト通販(仮)
DIYチューンブログ
リンク
手動先制・不意打ち
コンセプト
戦闘で任意に「先制攻撃」や「不意打ち」を設定したい。
挿入位置
「▼ 素材」のすぐ下辺りに。
完成すると
戦闘前にイベントスクリプトを実行すると1回だけ指定通りの戦闘が出来る。
更新履歴
#============================================================================== # ☆VX RGSS2 「手動先制・不意打ち」☆ # EnDlEss DREamER # URL:http://mitsu-evo.6.ql.bz/ # 製作者 mitsu-evo # Last:2009/10/4 # 手動で「先制攻撃」や「不意打ち」を設定する。 # ▼ 「▼ 素材」に近い位置に挿入。 #============================================================================== =begin 使用方法 イベントスクリプトに「$game_troop.manual_pree_surp = x」 と記入すると指定の戦闘を行う。 「x」に記入する値の一覧 0 : 通常 1: 先制 2: 不意打ち =end #============================================================================== # ■ Game_Troop #------------------------------------------------------------------------------ # 敵グループおよび戦闘に関するデータを扱うクラスです。バトルイベントの処理も # 行います。このクラスのインスタンスは $game_troop で参照されます。 #============================================================================== class Game_Troop < Game_Unit #-------------------------------------------------------------------------- # ● 先制攻撃と不意打ちの設定 # 0 : 通常 1: 先制 2: 不意打ち #-------------------------------------------------------------------------- def manual_pree_surp=(value) @manual_pree_surp = 0 if @manual_pree_surp == nil @manual_pree_surp = value @preemptive = value == 1 ? true : false @surprise = value == 2 ? true : false end #-------------------------------------------------------------------------- # ● 先制攻撃と不意打ちの取得 #-------------------------------------------------------------------------- def manual_pree_surp @manual_pree_surp = 0 if @manual_pree_surp == nil return @manual_pree_surp end end #============================================================================== # ■ Scene_Map #------------------------------------------------------------------------------ # マップ画面の処理を行うクラスです。 #============================================================================== class Scene_Map < Scene_Base #-------------------------------------------------------------------------- # ● 先制攻撃と不意打ちの確率判定 #-------------------------------------------------------------------------- def preemptive_or_surprise actors_agi = $game_party.average_agi enemies_agi = $game_troop.average_agi # 既に先制攻撃がONなら処理をしない return $game_troop.preemptive = true if $game_troop.manual_pree_surp == 1 # 既に不意打ちがONなら処理をしない return $game_troop.surprise = true if $game_troop.manual_pree_surp == 2 if actors_agi >= enemies_agi percent_preemptive = 5 percent_surprise = 3 else percent_preemptive = 3 percent_surprise = 5 end if rand(100) < percent_preemptive $game_troop.preemptive = true elsif rand(100) < percent_surprise $game_troop.surprise = true end end #-------------------------------------------------------------------------- # ● バトル画面への切り替え #-------------------------------------------------------------------------- alias manual_pree_surp_call_battle call_battle def call_battle $game_troop.preemptive = true if $game_troop.manual_pree_surp == 1 $game_troop.surprise = true if $game_troop.manual_pree_surp == 2 manual_pree_surp_call_battle end end #============================================================================== # ■ Scene_Battle #------------------------------------------------------------------------------ # バトル画面の処理を行うクラスです。 #============================================================================== class Scene_Battle < Scene_Base #-------------------------------------------------------------------------- # ● 終了処理 #-------------------------------------------------------------------------- alias manual_pree_surp_terminate terminate def terminate $game_troop.manual_pree_surp = 0 manual_pree_surp_terminate end end
Copyright (C)
永遠の夢に向かって
. All Rights Reserved.
テンプレートのpondt
リサーチ