赞 | 11 |
VIP | 94 |
好人卡 | 57 |
积分 | 39 |
经验 | 47770 |
最后登录 | 2024-11-12 |
在线时间 | 1582 小时 |
Lv3.寻梦者
- 梦石
- 0
- 星屑
- 3852
- 在线时间
- 1582 小时
- 注册时间
- 2006-5-5
- 帖子
- 2743
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
最近看到不少人问如何在战斗中换装备。以前站上有这样的脚本,可是后来被删除了。
现在好不容易找到了,把它发布出来,希望站上恢复。
- #==============================================================================
- # 本脚本来自www.66RPG.com,使用和转载请保留此信息
- #============================================================================== # 「戦闘中に装備」スクリプト Ver1.00
- #
- #
- #戦闘中に装備が出来るようになります。以下のスクリプトをmainの上にでも挿入
- #して下さい。アクターコマンドの一番下に装備コマンドが出ると思います。
- #
- #なお、このスクリプトは通常時の装備画面を直接呼び出しておりますので、
- #画面のデザインは考慮しておりません。レイアウトの変更は各自でお願い致します。
- #つまり、装備画面の変更が大前提となります。一応、そのままでも動作は問題あり
- #ませんが・・・。
- #なお、呼び出している画面は「装備中のアイテム欄」と
- #「装備できるアイテム欄」です。
- #
- #
- #画面レイアウトの変更はRGSSの初歩の技術ですので、
- #それが出来ない方は、親切な方に教えて頂くか諦めて下さい(ぇ
- #勉強と思ってがんばりましょう(^^;)
- #※ヒント
- #●Window_EquipLeft
- #●Window_EquipRight
- #●Window_EquipItem
- #が変更場所です・・・・・。
- #==============================================================================
- # ■ Scene_Battle (分割定義 3)
- #------------------------------------------------------------------------------
- # バトル画面の処理を行うクラスです。
- #==============================================================================
- class Scene_Battle
- #--------------------------------------------------------------------------
- # ● メイン処理
- #--------------------------------------------------------------------------
- def main
- # 戦闘用の各種一時データを初期化
- $game_temp.in_battle = true
- $game_temp.battle_turn = 0
- $game_temp.battle_event_flags.clear
- $game_temp.battle_abort = false
- $game_temp.battle_main_phase = false
- $game_temp.battleback_name = $game_map.battleback_name
- $game_temp.forcing_battler = nil
- # バトルイベント用インタプリタを初期化
- $game_system.battle_interpreter.setup(nil, 0)
- # トループを準備
- @troop_id = $game_temp.battle_troop_id
- $game_troop.setup(@troop_id)
- # アクターコマンドウィンドウを作成
- s1 = $data_system.words.attack
- s2 = $data_system.words.skill
- s3 = $data_system.words.guard
- s4 = $data_system.words.item
- s5 = $data_system.words.equip #ーーー●●装備
- @actor_command_window = Window_Command.new(128, [s1, s2, s3, s4, s5])
- #@actor_command_window = Window_Command.new(160, [s1, s2, s3, s4])
- @actor_command_window.y = 128 #160
- @actor_command_window.back_opacity = 160
- @actor_command_window.active = false
- @actor_command_window.visible = false
- # その他のウィンドウを作成
- @party_command_window = Window_PartyCommand.new
- @help_window = Window_Help.new
- @help_window.back_opacity = 160
- @help_window.visible = false
- @status_window = Window_BattleStatus.new
- @message_window = Window_Message.new
- # スプライトセットを作成
- @spriteset = Spriteset_Battle.new
- # ウェイトカウントを初期化
- @wait_count = 0
- # トランジション実行
- if $data_system.battle_transition == ""
- Graphics.transition(20)
- else
- Graphics.transition(40, "Graphics/Transitions/" +
- $data_system.battle_transition)
- end
- # プレバトルフェーズ開始
- start_phase1
- # メインループ
- loop do
- # ゲーム画面を更新
- Graphics.update
- # 入力情報を更新
- Input.update
- # フレーム更新
- update
- # 画面が切り替わったらループを中断
- if $scene != self
- break
- end
- end
- # マップをリフレッシュ
- $game_map.refresh
- # トランジション準備
- Graphics.freeze
- # ウィンドウを解放
- @actor_command_window.dispose
- @party_command_window.dispose
- @help_window.dispose
- @status_window.dispose
- @message_window.dispose
- if @skill_window != nil
- @skill_window.dispose
- end
- if @item_window != nil
- @item_window.dispose
- end
- if @result_window != nil
- @result_window.dispose
- end
- # スプライトセットを解放
- @spriteset.dispose
- # タイトル画面に切り替え中の場合
- if $scene.is_a?(Scene_Title)
- # 画面をフェードアウト
- Graphics.transition
- Graphics.freeze
- end
- # 戦闘テストからゲームオーバー画面以外に切り替え中の場合
- if $BTEST and not $scene.is_a?(Scene_Gameover)
- $scene = nil
- end
- end
- #--------------------------------------------------------------------------
- # ● フレーム更新 (アクターコマンドフェーズ)
- #--------------------------------------------------------------------------
- def update_phase3
- # エネミーアローが有効の場合
- if @enemy_arrow != nil
- update_phase3_enemy_select
- # アクターアローが有効の場合
- elsif @actor_arrow != nil
- update_phase3_actor_select
- # スキルウィンドウが有効の場合
- elsif @skill_window != nil
- update_phase3_skill_select
- # アイテムウィンドウが有効の場合
- elsif @item_window != nil
- update_phase3_item_select
- # ★追加 装備変更ウィンドウが有効の場合
- elsif @right_window != nil
- update_phase3_equip_select
- # アクターコマンドウィンドウが有効の場合
- elsif @actor_command_window.active
- update_phase3_basic_command
- end
- end
- #--------------------------------------------------------------------------
- # ● フレーム更新 (アクターコマンドフェーズ : 基本コマンド)
- #--------------------------------------------------------------------------
- def update_phase3_basic_command
- # B ボタンが押された場合
- if Input.trigger?(Input::B)
- # キャンセル SE を演奏
- $game_system.se_play($data_system.cancel_se)
- # 前のアクターのコマンド入力へ
- phase3_prior_actor
- return
- end
- # C ボタンが押された場合
- if Input.trigger?(Input::C)
- # アクターコマンドウィンドウのカーソル位置で分岐
- case @actor_command_window.index
- when 0 # 攻撃
- # 決定 SE を演奏
- $game_system.se_play($data_system.decision_se)
- # アクションを設定
- @active_battler.current_action.kind = 0
- @active_battler.current_action.basic = 0
- # エネミーの選択を開始
- start_enemy_select
- when 1 # スキル
- # 決定 SE を演奏
- $game_system.se_play($data_system.decision_se)
- # アクションを設定
- @active_battler.current_action.kind = 1
- # スキルの選択を開始
- start_skill_select
- when 2 # 防御
- # 決定 SE を演奏
- $game_system.se_play($data_system.decision_se)
- # アクションを設定
- @active_battler.current_action.kind = 0
- @active_battler.current_action.basic = 1
- # 次のアクターのコマンド入力へ
- phase3_next_actor
- when 3 # アイテム
- # 決定 SE を演奏
- $game_system.se_play($data_system.decision_se)
- # アクションを設定
- @active_battler.current_action.kind = 2
- # アイテムの選択を開始
- start_item_select
- when 4 # 装備
- # 決定 SE を演奏
- $game_system.se_play($data_system.decision_se)
- # アクションを設定
- #@active_battler.current_action.kind = 0
- # アイテムの選択を開始
- start_equip_select
- end
- return
- end
- end
- #--------------------------------------------------------------------------
- # ★● 追加 フレーム更新 (アクターコマンドフェーズ : 変更装備選択)
- #--------------------------------------------------------------------------
- def update_phase3_equip_select
- # スキルウィンドウを可視状態にする
- @right_window.visible = true
- # ウィンドウを更新
- @right_window.update
- if @right_window.index != @now_right_window
- @now_right_window =@right_window.index
- if @equip_item_window.index == -1
- @equip_item_window.index = 0
- @equip_item_window.refresh
- @equip_item_window.index = -1
- end
- end
- # ウィンドウを更新
- @equip_item_window.update
- equip_item_window_select
-
- # アイテムウィンドウがアクティブの場合
- if @equip_item_window.active
- update_phase3_equip_i_select
- return
- end
-
- # B ボタンが押された場合
- if Input.trigger?(Input::B)
- # キャンセル SE を演奏
- $game_system.se_play($data_system.cancel_se)
- # 装備選択を終了
- end_equip_select
- return
- end
- # C ボタンが押された場合
- if Input.trigger?(Input::C)
- # 装備固定の場合
- if @active_battler.equip_fix?(@right_window.index)
- # ブザー SE を演奏
- $game_system.se_play($data_system.buzzer_se)
- return
- end
- # 決定 SE を演奏
- $game_system.se_play($data_system.decision_se)
- # アイテムウィンドウをアクティブ化
- @right_window.active = false
- @equip_item_window.active = true
- @equip_item_window.index = 0
- @now_right_window = -1
- return
- end
- end
- #--------------------------------------------------------------------------
- # ★● 追加 フレーム更新 (アクターコマンドフェーズ : 装備アイテム選択)
- #--------------------------------------------------------------------------
- def update_phase3_equip_i_select
- # B ボタンが押された場合
- if Input.trigger?(Input::B)
- # キャンセル SE を演奏
- $game_system.se_play($data_system.cancel_se)
- # 装備アイテム選択を終了
- @now_item_window = -1
-
- @right_window.active = true
- @equip_item_window.active = false
- @equip_item_window.index = -1
- return
- end
- # C ボタンが押された場合
- if Input.trigger?(Input::C)
- $game_system.se_play($data_system.equip_se)
- # アイテムウィンドウで現在選択されているデータを取得
- item = @equip_item_window.item
- # 装備を変更
- @active_battler.equip(@right_window.index, item == nil ? 0 : item.id)
- # ライトウィンドウをアクティブ化
- @right_window.active = true
- @equip_item_window.active = false
- @equip_item_window.index = -1
- # ライトウィンドウ、アイテムウィンドウの内容を再作成
- @right_window.refresh
- @equip_item_window.refresh
- return
- end
- end
- #--------------------------------------------------------------------------
- # ★● 追加 装備選択開始
- #--------------------------------------------------------------------------
- def start_equip_select
- # 装備ウィンドウを作成
- #パラメータを呼び出したい時は注釈消す
- #@left_window = Window_EquipLeft.new(@active_battler)
- @right_window = Window_EquipRight.new(@active_battler)
- @item_window1 = Window_EquipItem.new(@active_battler, 0)
- @item_window2 = Window_EquipItem.new(@active_battler, 1)
- @item_window3 = Window_EquipItem.new(@active_battler, 2)
- @item_window4 = Window_EquipItem.new(@active_battler, 3)
- @item_window5 = Window_EquipItem.new(@active_battler, 4)
- # ヘルプウィンドウを関連付け
- @right_window.help_window = @help_window
- @item_window1.help_window = @help_window
- @item_window2.help_window = @help_window
- @item_window3.help_window = @help_window
- @item_window4.help_window = @help_window
- @item_window5.help_window = @help_window
-
- @now_right_window = -1
- @right_window.index = 0
- equip_item_window_select
- # アクターコマンドウィンドウを無効化
- @actor_command_window.active = false
- @actor_command_window.visible = false
- end
- #--------------------------------------------------------------------------
- # ★● 追加 装備選択終了
- #--------------------------------------------------------------------------
- def end_equip_select
- # アイテムウィンドウを解放
- #パラメータを呼び出したい時は注釈消す
- #@left_window.dispose
- @right_window.dispose
- @item_window1.dispose
- @item_window2.dispose
- @item_window3.dispose
- @item_window4.dispose
- @item_window5.dispose
- @right_window= nil
- @item_window1= nil
- @item_window2= nil
- @item_window3= nil
- @item_window4= nil
- @item_window5= nil
- # ヘルプウィンドウを隠す
- @help_window.visible = false
- # アクターコマンドウィンドウを有効化
- @actor_command_window.active = true
- @actor_command_window.visible = true
- end
- #--------------------------------------------------------------------------
- # ★● 追加 装備アイテムウインドウのチェック
- #--------------------------------------------------------------------------
- def equip_item_window_select
- # アイテムウィンドウの可視状態設定
- @item_window1.visible = (@right_window.index == 0)
- @item_window2.visible = (@right_window.index == 1)
- @item_window3.visible = (@right_window.index == 2)
- @item_window4.visible = (@right_window.index == 3)
- @item_window5.visible = (@right_window.index == 4)
- # ーーー★追加(注釈消すとアクセサリ1つ増加)
- #@item_window5.visible = (@right_window.index == 4) || (@right_window.index == 5)
- # ーーー終わり
- # 現在のアイテムウィンドウを @item_window に設定
- case @right_window.index
- when 0
- @equip_item_window = @item_window1
- when 1
- @equip_item_window = @item_window2
- when 2
- @equip_item_window = @item_window3
- when 3
- @equip_item_window = @item_window4
- when 4
- @equip_item_window = @item_window5
- # ーーー★追加(注釈消すとアクセサリ1つ増加)
- #when 5
- # @equip_item_window = @item_window5
- end
- end
- end
- #==============================================================================
- # 本脚本来自www.66RPG.com,使用和转载请保留此信息
- #==============================================================================
复制代码 |
|