ページ 11

ショップの専門店化

Posted: 2018年3月29日(木) 20:33
by ヒヨコのおじさん
買取専門店を作るついでに
デフォルトでの購入のみの処理に不満があったので作ってみました
(仕方ないとはいえ選択できないより非表示にならんかったか……
 言ってしまうとキリがないですな)

挿入箇所はスクリプトエディタの
( ここに追加 ) 以下、 ▼ メイン 以上
の位置でお願いします

コード: 全て選択

################################################################################
#
#   ショップ専門店化
#   作者:ヒヨコのおじさん
#
#     任意のスイッチをオンにした後に実行する[ショップの処理]で
#     購入の選択肢を消すだけのスクリプトです
#
#   利用時のお願い
#   ・「read me」「取扱説明書」などに必ず作者名を入れて下さい
#   ・デフォルトのショップを基礎にしたものです
#     他所のショップ系のスクリプトによっては旨く動作しない可能性もあります
#
################################################################################
#
#   使い方
#   ① 下の「BUY_SHOP」で設定した変数を設定する
#    (0 いつものショップ
#      1 購入専門ショップ
#      2 売却専門ショップ
#   ② ショップを呼び出す
#    (ツクールの仕様上アイテムなしの設定ができないので
#      ポーション一個だけでもいいので設定してあげてください)
#
#   ショップ画面から離れた後は自動的に変数が 0 になります
#
################################################################################
#
#   設定箇所
#
#   ショップを買取専門(売却のみ)にする変数の番号

    BUY_SHOP = 1

#
################################################################################
#
#   以下本文
#
################################################################################

class Window_ShopCommand < Window_HorzCommand
  def col_max
    if $game_variables[BUY_SHOP] > 0
    return 2
    else
    return 3
    end
  end
  def make_command_list
    case $game_variables[BUY_SHOP]
    when 0
      add_command(Vocab::ShopBuy,    :buy)
      add_command(Vocab::ShopSell,   :sell)
      add_command(Vocab::ShopCancel, :cancel)
    when 1
      add_command(Vocab::ShopBuy,    :buy)
      add_command(Vocab::ShopCancel, :cancel)
    when 2
      add_command(Vocab::ShopSell,   :sell)
      add_command(Vocab::ShopCancel, :cancel)
    end
  end
end

class Scene_Shop < Scene_MenuBase
  def create_command_window
    @command_window = Window_ShopCommand.new(@gold_window.x, @purchase_only)
    @command_window.viewport = @viewport
    @command_window.y = @help_window.height
    case $game_variables[BUY_SHOP]
    when 0
      @command_window.set_handler(:buy,    method(:command_buy))
      @command_window.set_handler(:sell,   method(:command_sell))
      @command_window.set_handler(:cancel, method(:return_scene))
    when 1
      @command_window.set_handler(:buy,    method(:command_buy))
      @command_window.set_handler(:cancel, method(:return_scene))
    when 2
      @command_window.set_handler(:sell,   method(:command_sell))
      @command_window.set_handler(:cancel, method(:return_scene))
    end
  end
end

class Scene_Base
  def return_scene
    SceneManager.return
    if $game_variables[BUY_SHOP] > 0
      $game_variables[BUY_SHOP] = 0
    end
  end
end


画像 単純に利用者が知りたい&宣伝
画像 既存スクリプトの流用
画像 画像 画像 元々改変ものなので
画像 暗号化は必須で願います

画像 スクリプトもRTPでい筈