QN日替わりでランダムに商品を並べる

discordで話が挙がっていたやつが面白かったメモ

実行結果

楽しい~~~~~~

変数

宣言する変数は以下。

店舗在庫
(配列)
ショップに並ぶ可能性があるアイテムの一覧。
出したい商品のIDをここにあらかじめ入れておく。
本日の商品
(配列)
ショップに並ぶアイテムの一覧。
これが最終的な品揃えになる。
店舗更新日今日の日付。日替わりなので日付。

今回は全てグローバル変数。
クエストならパーティ変数で、パブリックとかでキャラクターによって品揃えを変えたい場合などはキャラクター変数で。

配列変数「店舗在庫」にはショップに並べたいアイテム全てベースIDをあらかじめ入れておく(アイテムデータベースを右クリック→IDのコピー)。
多いほうが多分楽しい。

イベント

  1. 条件分岐 変数「店舗更新日」が今日の日付(特殊変数)ではない場合
    1. 配列変数の操作「店舗在庫」をシャッフル
      配列変数内の並びをランダムにする。
    2. 配列変数の操作「本日の商品」をクリア
      場所を空けるため白紙に。これがないと実質更新されない。
    3. 繰り返し処理(タイプ:回数)
      回数は並べたい品の種類と同じ。3つ陳列なら3。
      • 配列変数の操作 変数ID「本日の商品」 タイプ:追加
        値: \v[店舗在庫][\e.Argument]
    4. 変数の操作「店舗更新日」に今日の日付(特殊変数)を代入
      同日に同イベントを読み込んでも無駄な更新がされなくなる。
  2. ショップの表示 リストタイプ:配列変数参照 配列変数ID:本日の商品
    品揃えに配列変数を参照する。

で完了!

+α

  • 「日替わりでランダムな商品をランダムな個数で発売」にするときは、繰り返し処理の回数指定を変数で。
    \random[10]とかを直接入力だと少ないときに少なすぎそう。2+\random[5]を代入とかが丸そう。