ろいしんぶろぐ

乱数調整とか

Lv.1ギャラドスの乱数調整

最初に

こんなことせずにbwpidseed使ったほうが楽ですよ~

 

 

原理的な説明

泡釣りでの処理スキームはシンクロ→出現ポケモン決定→レベル決定→性格値決定→性格決定

釣り成否判定が入らないのでシンクロが効くか効かないかは目的の個体のシンクロ成否で確認できる。 

 

 

まずSSS4で目的の個体値を検索する。個体値乱数消費は2~2で検索。このとき、現実的な消費数でLv.1ギャラドスが出現する確率は色違いの確率より低いので初期SEEDは多めに検索したほうが無難。実際に見つかった初期SEEDも30年検索して1つというぐらい。

 

次に出てきた初期SEEDを1つずつbwseedlist1.05に入れていく。消費数は自分で頑張れる数ぐらいまで。自分は0~3000で出力した。出力する際「生の乱数値を表示」にチェックして野生リストを出力。

 

出現ポケモン決定は(r(n)*100)>>32の値で決まる。

0-39 0

40-79 1

80-94 2

95-98 3

99 4

Lv.1ギャラドスが出現しうるのは4のテーブルで、bwseedlistのポケモン11に該当する。 

 

 

 

 

次にレベルの確認。詳しいことは割愛するが目的個体の2つ下の乱数が0x028F5C28以下のとき、レベル1が出現する。

 

 

 

まとめると条件は以下の3つ

・目的個体のシンクロ成否(性格を気にする場合)

・目的個体のエンカウントテーブル

・目的個体のレベル決定の乱数が0x028F5C28以下

 

この条件を全て満たしたときにLv.1ギャラドスが出現するが、この乱数の組み合わせが出る確率は1/2*1/100*1/100=1/20000と非常に低いのでSEEDを見つけるには多少努力がいる。

 

次に運良く目的のSEEDが見つかってからの作業。

 

揺れ草、砂煙、水泡が出る条件は起動から20歩ごとに((乱数)*10)>>32==0のとき。具体的にいうとリストで出た乱数が0x19999999以下のとき。起動後19歩歩いてからペラップ消費で調整すれば20歩目で出せる。

 

今回使った初期SEEDでは72のところに0x19999999以下の乱数があったのでペラップで71まで消費してから1歩歩くとちゃんと揺れてくれた。揺れの場所については外野席さんのYahooボックス参照。もし揺れなかったら主人公の場所を変えてみると揺れるかもしれない。

 

泡が出たあとは泡の手前まで行ってペラップで乱数を消費する。このとき揺れ場所決定とエンカウント床を歩いたことによる乱数消費があるので注意する。

 

今回目的の個体は85の位置にいたのでペラップで84まで消費して泡釣りをすればLv.1のギャラドスが出てくるはずである。

 

 

 

 

質問あればコメントかTwitter:Blastoise_Xまで

 

追記:

詳しいこと

レベル決定式は

BW:(r(n)*0xFFFF/0x290)>>32 mod (maxLv-minLv+1) + minLv

BW2: (r(n)*100)>>32 mod (maxLv-minLv+1) + minLv

なのでレベル100とかレベル49とか狙いたい人は自力で計算

 

 

通常の釣りはシンクロ効かないとか某所で書かれてますけど大嘘です

釣り成否の判定とシンクロ成否の判定が同じ計算方法で行われているので、説明を単純にするためにシンクロ欄で釣り成否を見ているだけです

なのでシンクロ成否と釣り成否には全く関係がないので誤解しないように