ページ 11

【解決!】VXAce/Aキーを押してコモン呼び出し→再びAキーを押してコモンキャンセルするには

Posted: 2017年6月05日(月) 13:41
by サワラ
お世話になります。

Aキーを押すとセーブ画面が開くコモンイベントをつくっていて、
画面自体はAキーで開くことが出来ても キャンセルはXキーで共通…というのが
少しもやもやしています…
Baidu IME_2017-6-5_13-24-45.png
Baidu IME_2017-6-5_13-24-45.png (4.29 KiB) 閲覧された回数 3761 回
Aキーを押してセーブ画面の表示→セーブ画面の表示中に再びAキーを押すとキャンセル扱いになりセーブ画面が閉じる
…という具合に作るには、どうすればよいでしょうか?
(セーブ画面以外にも終了画面など各キーで表示させるコモンイベントが複数あります)

Re: VXAce/Aキーを押してコモン呼び出し→再びAキーを押してコモンキャンセルするには

Posted: 2017年6月06日(火) 03:27
by ショウ
セーブ画面を閉じるボタンを変更したい場合
Scene_Fileの
def update_savefile_selection
return on_savefile_ok if Input.trigger?(:C)
return on_savefile_cancel if Input.trigger?(:B)
update_cursor
end
って所のInput.trigger?(:B)のBの所を好きなボタンに変更すればいいかと

Re: VXAce/Aキーを押してコモン呼び出し→再びAキーを押してコモンキャンセルするには

Posted: 2017年6月06日(火) 19:57
by faida
なんとなくこんな感じかなというものを作ってみました。

コード: 全て選択

=begin
◆概要
別のボタンで元のシーンに戻れます。

◆機能
・イベントコマンドで「$game_system.set_rsk(key)」と入力すると、keyが戻るボタンに
なります。keyはシンボルで指定してください。(Xボタンなら「:X」)

◆仕様
・セーブデータに保存されます。

◆使用上の注意
・○……新規定義 ★……エイリアス

◆作者:faida @faida3983

=end

module FAI_RSK
  # 設定項目:デフォルトの戻るボタン(共通) 推奨:nil
  DEFAULT_RETURN_SCENE_KEY = nil
  # 設定項目:戻るボタンを押したらボタンをデフォルトに戻す 推奨:true
  RETURN_SCENE_AND_DEFAULT_RSK = true
end

#==============================================================================
# ■ Game_System
#==============================================================================

class Game_System
  #--------------------------------------------------------------------------
  # ○ 公開インスタンス変数
  #--------------------------------------------------------------------------
  attr_accessor :return_scene_key            # 元のシーンに戻るボタン
  #--------------------------------------------------------------------------
  # ★ オブジェクト初期化
  #--------------------------------------------------------------------------
  alias fai_rsk_initialize initialize
  def initialize
    fai_rsk_initialize
    initialize_rsk
  end
  def initialize_rsk
    @return_scene_key = FAI_RSK::DEFAULT_RETURN_SCENE_KEY
  end
  #--------------------------------------------------------------------------
  # ○ 入力判定
  #--------------------------------------------------------------------------
  def input_trigger_return_scene_key?
    @return_scene_key && Input.trigger?(@return_scene_key)
  end
  #--------------------------------------------------------------------------
  # ○ イベントコマンド用
  #--------------------------------------------------------------------------
  def set_rsk(key)
    @return_scene_key = key
  end
end

#==============================================================================
# ■ Scene_Base
#==============================================================================

class Scene_Base
  #--------------------------------------------------------------------------
  # ★ フレーム更新(基本)
  #--------------------------------------------------------------------------
  alias fai_rsk_update_basic update_basic
  def update_basic
    fai_rsk_update_basic
    return_scene_by_rsk if $game_system.input_trigger_return_scene_key?
  end
  #--------------------------------------------------------------------------
  # ○ 呼び出し元のシーンへ戻る(戻るボタン)
  #--------------------------------------------------------------------------
  def return_scene_by_rsk
    Sound.play_cancel
    $game_system.initialize_rsk if FAI_RSK::RETURN_SCENE_AND_DEFAULT_RSK
    return_scene
  end
end

Re: VXAce/Aキーを押してコモン呼び出し→再びAキーを押してコモンキャンセルするには

Posted: 2017年6月07日(水) 21:10
by サワラ
>>ショウ 様
教えていただいた方法を試してみたのですがどうにもうまくいかず…
ひょっとして何か変な打ち方をしていたのか、:Bの部分を:Xに変えたのですが だめなようでした。
トピックへの返信 ありがとうございます。

>>faida 様
スクリプトのご製作とても恐縮です、助かりました!
やりたかった動作が実現できて嬉しいです…
ご対応していただき、ありがとうございます。