デフォルトでの購入のみの処理に不満があったので作ってみました
(仕方ないとはいえ選択できないより非表示にならんかったか……
言ってしまうとキリがないですな)
挿入箇所はスクリプトエディタの
( ここに追加 ) 以下、 ▼ メイン 以上
の位置でお願いします
コード: 全て選択
################################################################################
#
# ショップ専門店化
# 作者:ヒヨコのおじさん
#
# 任意のスイッチをオンにした後に実行する[ショップの処理]で
# 購入の選択肢を消すだけのスクリプトです
#
# 利用時のお願い
# ・「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






