コンビニ風買い物

最低限必要なイベントは、店で売るアイテムの種類分のアイテムを選ぶイベントと、お会計のイベントの2種類です。


まずは、アイテムを選ぶイベントから。

◆文章:棚にポーションが並んでいる。
:  :ポーションを買っていきますか?
◆選択肢の表示:はい/いいえ [キャンセルの場合:選択肢2を選択する]
:[はい]の場合
 ◆文章:いくつ買いますか?
 ◆数値入力の処理:2桁, V[0002:ポーション購入個数]
 ◆条件分岐:変数[0002:ポーション購入個数]が0より大きい [条件に当てはまらない場合の処理内容も設定する:×]
  ◆主人公の名前変更:主人公[0010:アイテム1]の名前をポーションに変更
  ◆スイッチの操作:[0001:買い物あり]をONにする
  ◆
 :分岐終了
 ◆
:[いいえ]の場合
 ◆文章:買うのをやめた。
 ◆
:分岐終了



そして、お会計イベント。

◆条件分岐:スイッチ[0001:買い物あり]がON [条件に当てはまらない場合の処理内容も設定する:○]
 ◆変数の操作:[0001:所持金]代入, 所持金
 ◆条件分岐:変数[0002:ポーション購入個数]が0より大きい [条件に当てはまらない場合の処理内容も設定する:×]
  ◆変数の操作:[0003:ポーション購入金額]代入, 変数[0002:ポーション購入個数]の値
  ◆変数の操作:[0003:ポーション購入金額]乗算, 40
  ◆文章:店員
  :  :「\N[10]が\V[2]個で、\V[3]Gになります」
  ◆文章:買って行きますか?
  ◆選択肢の表示:はい/いいえ [キャンセルの場合:選択肢2を選択する]
  :[はい]の場合
   ◆条件分岐:変数[0003:ポーション購入金額]がV[0001:所持金]以下 [条件に当てはまらない場合の処理内容も設定する:○]
    ◆所持金の操作:所持金をV[0003:ポーション購入金額]減らす
    ◆アイテムの増減:アイテム[0001:ポーション]をV[0002:ポーション購入個数]増やす
    ◆変数の操作:[0002:ポーション購入個数〜0003:ポーション購入金額]代入, 0
    ◆文章:店員
    :  :「ありがとうございました
    ◆スイッチの操作:[0001:買い物あり]をOFFにする
    ◆
   :それ以外の場合
    ◆文章:店員
    :  :「お金が足りないぞ!
    ◆
   :分岐終了
   ◆
  :[いいえ]の場合
   ◆文章:店員
   :  :「ごゆっくり買い物をお楽しみ下さい
   ◆
  :分岐終了
  ◆
 :分岐終了
 ◆
:それ以外の場合
 ◆文章:店員
 :  :「何か御用ですか?
 ◆
:分岐終了


※6文字を超えるアイテムの場合は
 ◆主人公の名前変更:主人公[0010:アイテム1]の名前をクロースアーに変更
 ◆主人公の名前変更:主人公[0011:アイテム2]の名前をマーに変更
  
◆文章:店員
  :  :「\N[10]\[11]が\V[2]個で、\V[3]Gになります」



直接品物を増やさずに、お金を払って初めてアイテムを購入するようにしてあるのは万引きを防止する為のものなので、万引きも出来る様にしたい場合は直接アイテムを増やしてしまってOKです。
その場合は、出入り口に変数の初期化や、お好みのイベントを作って置いてください。
うまくやれば、GB版ゼルダの様に万引きをすると、それ以降主人公が「どろぼー」と呼ばれるなんてイベントも作れます(笑)

また、買い物があるかどうかのスイッチは無くても構いません。
が、これを入れておかないと買い物は無いのに「XXがは0個で0Gになります」と表示されてしまうので、入れておいたほうが自然になります。

で、買い物のお会計イベントですが、まずは現在の所持金を変数に代入します。
これをやらないと、所持金が足りないのに買い物が出来てしまうので、絶対に入れましょう。
あとは、適当なアイテムから順にアイテムを選んであるか分岐を入れます。
その後、アイテムの金額を計算する為に選んだ数だけ計算用の変数に代入して、アイテムの単価で乗算すれば買い物の金額が計算されます。
計算用の変数を別個に用意しているのは、「XX個でYYGになります」と表示する為です。
その後、変数と買い物スイッチを全てクリアしてしまいましょう。
これをやらないと、買い物したのにまた買い物のイベントが呼び出されてしまって不自然ですので。

最後は売っているアイテムの種類だけ同じイベントを並べればOKです。

※バグ修正

バグの内容
複数種類のアイテムを選んだ状態で買い物をキャンセルした後、
再び買い物をしなおした時にキャンセルした分の金額がリセットされていない。

修正箇所&修正方法
3:購入処理のイベント
複数種類のアイテムを購入する時の処理で、
キャンセルした場合の店員のセリフと所持金が足らない場合の店員のセリフのそれぞれ前か後ろに、
◆変数の操作:[0100:合計金額]代入, 0
という処理を入れてください。

具体的にはこの辺りです。
-----------------------------------
(略)
0031      ◆スイッチの操作:[0001:買い物棚1〜0002:買い物棚2]をOFFにする
0032      ◆
0033     :それ以外の場合

◆変数の操作:[0100:合計金額]代入, 0

0034      ◆文章:店員
0035      :  :「お金が足りないぞ!
0036      ◆
0037     :分岐終了
0038     ◆
0039    :[やっぱりやめる]の場合

◆変数の操作:[0100:合計金額]代入, 0

0040     ◆文章:店員
0041     :  :「ごゆっくり買い物をお楽しみ下さい
0042     ◆
0043    :分岐終了
0044    ◆
0045   :分岐終了
0046   ◆