#============================================================================== # □ 戦闘画面アクターフェイス表示 (for VX Ace) #------------------------------------------------------------------------------ # Version : 1_20121031 # by サリサ・タイクーン # http://www.tycoon812.com/rgss/ #============================================================================== #============================================================================== # □ 素材スイッチ #============================================================================== $rgsslab = {} if $rgsslab == nil $rgsslab["戦闘画面アクターフェイス表示"] = true if $rgsslab["戦闘画面アクターフェイス表示"] #============================================================================== # □ カスタマイズポイント #============================================================================== module RGSSLAB end module RGSSLAB::Scene_Battle_Actor_Face_Display #-------------------------------------------------------------------------- # ○ アクターフェイス表示用のウィンドウの位置と大きさの設定 # アクターフェイスを表示させるウィンドウの設定です。 # # X : 横の位置 # Y : 縦の位置 # WIDTH : 幅 # HEIGHT : 高さ # Z : 奥行き # OPACITY : 不透明度(0で完全消滅) #-------------------------------------------------------------------------- X = 0 Y = 280 WIDTH = 514 HEIGHT = 416 Z = 0 OPACITY = 0 #-------------------------------------------------------------------------- # ○ アクターフェイスの不透明度設定 # 0〜255の間で設定します。(範囲外は自動修正されます) # # 0に近づく程、透明度が強くなり # 0になると、完全消滅します。 #-------------------------------------------------------------------------- ACTOR_FACE_OPACITY = 200 #-------------------------------------------------------------------------- # ○ アクターフェイスの表示設定 # falseにすると、表示されなくなります。 # # ・イベントコマンドのスクリプトでの変更方法 # $game_system.rgsslab010.visible = true/false #-------------------------------------------------------------------------- VISIBLE = true #-------------------------------------------------------------------------- # ○ アクターフェイスの位置設定 # アクターフェイスを描画させる位置を設定します。 # # 実際は、上記のアクターフェイス表示用ウィンドウの位置に依存しますので # テストプレイを行いながら、適度に調整して下さい。 # # 記述方法: # 1 => [1人目の横の位置, 1人目の縦の位置], # 2 => [2人目の横の位置, 2人目の縦の位置], # 3 => [3人目の横の位置, 3人目の縦の位置], # 4 => [4人目の横の位置, 4人目の縦の位置], # (最後だけ、後ろのカンマを省略する事ができます) # # 4人以上戦闘に参加させる事のできる環境であれば # 5人目以降の設定もできます。 #-------------------------------------------------------------------------- FACE_POS = { 1 => [ 5, 0], 2 => [105, 0], 3 => [205, 0], 4 => [305, 0], } end # カスタマイズポイントは、ここまで #============================================================================== # □ RGSSLAB::Scene_Battle_Actor_Face_Display [module] #============================================================================== module RGSSLAB::Scene_Battle_Actor_Face_Display #-------------------------------------------------------------------------- # ○ 素材設定用の定数定義 #-------------------------------------------------------------------------- MATERIAL_NAME = "戦闘画面アクターフェイス表示" VERSION = 1 RELEASE = 20121031 end #============================================================================== # □ Combined_Use_Modules [module] #============================================================================== module Combined_Use_Modules #============================================================================ # □ WHITE-FLUTE Web.(A Crying Ministerさん) #============================================================================ module WHITE_FLUTE #------------------------------------------------------------------------ # ○ イベントスキップスクリプト #------------------------------------------------------------------------ def self.event_skip return true if defined?(WFRGSS_Event_Skip) return false end end end #============================================================================== # ■ Game_System [class] #============================================================================== class Game_System #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :rgsslab010 #-------------------------------------------------------------------------- # ● オブジェクト初期化 [エイリアス] #-------------------------------------------------------------------------- alias scene_battle_actor_face_initialize initialize def initialize scene_battle_actor_face_initialize @rgsslab010 = RgssLab_010.new end end #============================================================================== # □ RgssLab_010 [class] #============================================================================== class RgssLab_010 #-------------------------------------------------------------------------- # ○ モジュールの設定 #-------------------------------------------------------------------------- RGSSLAB_010 = RGSSLAB::Scene_Battle_Actor_Face_Display #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :visible #-------------------------------------------------------------------------- # ○ オブジェクト初期化 #-------------------------------------------------------------------------- def initialize @visible = RGSSLAB_010::VISIBLE end end #============================================================================== # ■ Game_Interpreter [class] #============================================================================== class Game_Interpreter #-------------------------------------------------------------------------- # ● メンバーの入れ替え [再定義] #-------------------------------------------------------------------------- def command_129 actor = $game_actors[@params[0]] if actor if @params[1] == 0 if @params[2] == 1 $game_actors[@params[0]].setup(@params[0]) end $game_party.add_actor(@params[0]) $scene.call_refresh_actor_face_window if $game_party.in_battle else $game_party.remove_actor(@params[0]) $scene.call_refresh_actor_face_window if $game_party.in_battle end end end end #============================================================================== # □ Window_Battle_Actor_Face [class] #============================================================================== class Window_Battle_Actor_Face < Window_Base #-------------------------------------------------------------------------- # ○ モジュールの設定 #-------------------------------------------------------------------------- RGSSLAB_010 = RGSSLAB::Scene_Battle_Actor_Face_Display #-------------------------------------------------------------------------- # ○ オブジェクト初期化 [オーバーライド] #-------------------------------------------------------------------------- def initialize super(RGSSLAB_010::X, RGSSLAB_010::Y, RGSSLAB_010::WIDTH, RGSSLAB_010::HEIGHT) self.opacity = RGSSLAB_010::OPACITY self.contents_opacity = RGSSLAB_010::ACTOR_FACE_OPACITY self.z = RGSSLAB_010::Z refresh end #-------------------------------------------------------------------------- # ○ リフレッシュ #-------------------------------------------------------------------------- def refresh face = RGSSLAB_010::FACE_POS for i in 0...$game_party.battle_members.size draw_actor_face($game_party.battle_members[i], face[i + 1][0], face[i + 1][1], 96) end end end #============================================================================== # ■ Scene_Battle [class] #============================================================================== class Scene_Battle < Scene_Base #-------------------------------------------------------------------------- # ○ モジュールの設定 #-------------------------------------------------------------------------- RGSSLAB_010 = RGSSLAB::Scene_Battle_Actor_Face_Display #-------------------------------------------------------------------------- # ● 開始処理 [再定義] #-------------------------------------------------------------------------- def start super create_spriteset create_all_windows BattleManager.method_wait_for_message = method(:wait_for_message) BattleManager.method_wait_for_escape = method(:wait_for_escape) if $rgsslab["戦闘アニメーション"] @actor_face_window = Window_Battle_Actor_Face.new if $game_system.rgsslab010.visible if $rgsslab["戦闘画面アクターフェイス表示"] if $rgsslab["いちゃもんステート"] for i in $game_party.battle_members do i.no_action_skill = false end end Game_Interpreter.update_basic_set(method(:update_all_windows)) if Combined_Use_Modules::WHITE_FLUTE.event_skip end #-------------------------------------------------------------------------- # ○ アクターフェイスウィンドウのリフレッシュ(イベント呼び出し用) #-------------------------------------------------------------------------- def call_refresh_actor_face_window face = RGSSLAB_010::FACE_POS for i in 0...$game_party.battle_members.size draw_actor_face($game_party.battle_members[i].face, face[i + 1][0], face[i + 1][1]) end end end end