【解決済】重複しない乱数結果を出したい。

ゼゼゼ

ユーザー
ツクールMVで話しかけるたび、ランダムに台詞を言うみたいなイベントを作っているんですが。
ツクールのデフォルトの乱数だけでは、同じ台詞を何度も繰り返したり、逆に全然言わない台詞があったりと偏りが出てしまいます。
一度言った台詞は言わなくなり、全ての台詞を言い終わったらまたシャッフルするみたいな事がしたいんですが、なにかいい方法はないでしょうか?

一応、スイッチと条件分岐を繰り返せば出来なくもないですが、それだと大量のスイッチを使う上、イベント処理も長くなってしまうので、他になにかいい方法やプラグインなどをご存じのかたがいましたら、教えていただけるとありがたいです。
 

まっつUP

ユーザー
ゼゼゼ様
ランダムにセリフを言うイベントが多いのであればセルフスイッチ(可能であればセルフ変数)を使うのがよいと思います。
数が足りない場合はyanfly様のYEP_SelfSwVar.jsなどで拡張してもよいでしょう。
javascriptの理解がある場合は配列の要素をランダムで取り出す処理を使うと楽です。
理解がない場合は重複しないように再計算するとかでしょうか。
 

ゼゼゼ

ユーザー
>まっつUP様

お答えいただきありがとうございます。ただ、すみません。言っていませんでしたが、マップイベントではなく、コモンイベントを利用した自作システムに使いたいためセルフスイッチは使用できないです。
javascriptについてはほとんど知識がないため、もし難しくないのであれば、例文など出していただけると助かります。


>munokura様

ありがとうございます。早速自サイトが役立っておられますね。まさにこういったプラグインを探しておりました。
これから使えるかどうか実践してみたいと思います。
 

まっつUP

ユーザー
マップイベントでない、あるいは複数のマップに影響する仕組みにしたい場合は
それぞれのマップのイベントに紐ついたセルフスイッチは利用が難しいので
munokura様が紹介しているプラグインを使うとよいと思います。
コモンイベントで共通した処理を作るのが難しいように思えますががんばってください。
 

ゼゼゼ

ユーザー
>munokura様

ありがとうございます。こちらのプラグインを使用してみたところ、無事にやりたい表現ができました。
まっつUP様もありがとうございます。
本件はこれで解決とさせていただきます。またなにかありましたら、よろしくお願いいたします。
 
トップ