ランダムエンチャントのアイテム

ランダムアイテムの処理がちょっとできました。

ScreenShot_2016_0201_19_30_24

画像の例でいうと、
【神がかった】(品質)
【ミスリル】(素材)
【アーマー】(アイテム)
をランダムで合成するような処理です。品質だけ反映されてませんがそのうち作ります。

ランダムエンチャントを作るにあたって、すべて同じ確率だとレア感が出ないので、いいやつはあんまり出ないようにしました。どういう処理にしようかいろいろ考えたんですが、
x=1~10
x=1~x
のようにすれば、

1の出る確率=10/55
2の出る確率=9/55

10の出る確率=1/55

のように線形で分布する(と思う)ので、こんな感じにしました。x=1~xを重ねれば10の出る確率がぐっと減って曲線で分布しそうですよね、多分。
3D6などのダイスを振る処理はあるので、正規分布のような出具合はすぐに実装できそう。

ステータス表示を作っていたと思ったら、なぜかアイテムの生成処理を作ってました。次は装備させる処理とかアイテム捨てる処理とかですね。キャラクター関連の処理が終わってからやっとメイン部分の作成。先は長そうです。

ランダムエンチャントで該当の項目を検索する必要が出てきたので、そういうコモンを作りました。

 

検索条件に合わせて専用のDBにリストアップするコモンです。
画像は【素材分類がCSelf18のビットを満たす・かつ価値がCSelf14以下】のデータをUDB27からリストアップして、そのリストのデータ数を返り値としてもらっています。条件は文字列で100個まで自由に設定できるので何にでも使えそう。リストアップさえできれば、あとは【ランダム=1~データ数】とだけ書いてやれば処理完了。条件分岐して一致しなければやり直し……みたいな見づらい処理にならなくて済みます。
トランプとかビンゴの出ていない数字をランダムで出す、ランダムエンカウントの敵グループ決定、などの条件付きランダム処理と相性が良さそう。

細かい処理コモンの組み合わせになってるのでコモン集に公開は難しそうだけど、思った以上に便利だから整理して公開も考えておきます。使う人少なそうだけども。

Tweet about this on TwitterShare on FacebookShare on Google+

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です