discordで話が挙がっていたやつが面白かったメモ
実行結果
![](http://stanly.starfree.jp/wp-content/uploads/2023/02/ランダム陳列イベント:実行結果-1024x234.png)
楽しい~~~~~~
変数
宣言する変数は以下。
店舗在庫 (配列) | ショップに並ぶ可能性があるアイテムの一覧。 出したい商品のIDをここにあらかじめ入れておく。 |
本日の商品 (配列) | ショップに並ぶアイテムの一覧。 これが最終的な品揃えになる。 |
店舗更新日 | 今日の日付。日替わりなので日付。 |
今回は全てグローバル変数。
クエストならパーティ変数で、パブリックとかでキャラクターによって品揃えを変えたい場合などはキャラクター変数で。
配列変数「店舗在庫」にはショップに並べたいアイテム全てのベースIDをあらかじめ入れておく(アイテムデータベースを右クリック→IDのコピー)。
多いほうが多分楽しい。
イベント
![](http://stanly.starfree.jp/wp-content/uploads/2023/02/ランダム陳列イベント.png)
- 条件分岐 変数「店舗更新日」が今日の日付(特殊変数)ではない場合
- 配列変数の操作「店舗在庫」をシャッフル
配列変数内の並びをランダムにする。 - 配列変数の操作「本日の商品」をクリア
場所を空けるため白紙に。これがないと実質更新されない。 - 繰り返し処理(タイプ:回数)
回数は並べたい品の種類と同じ。3つ陳列なら3。- 配列変数の操作 変数ID「本日の商品」 タイプ:追加
値: \v[店舗在庫][\e.Argument]
- 配列変数の操作 変数ID「本日の商品」 タイプ:追加
- 変数の操作「店舗更新日」に今日の日付(特殊変数)を代入
同日に同イベントを読み込んでも無駄な更新がされなくなる。
- 配列変数の操作「店舗在庫」をシャッフル
- ショップの表示 リストタイプ:配列変数参照 配列変数ID:本日の商品
品揃えに配列変数を参照する。
で完了!
+α
- 「日替わりでランダムな商品をランダムな個数で発売」にするときは、繰り返し処理の回数指定を変数で。
\random[10]とかを直接入力だと少ないときに少なすぎそう。2+\random[5]を代入とかが丸そう。