乱数調整

バトルステージ乱数概要

今更の4thバトルフロンティア。
バトルタワーとバトルファクトリーについてはあるけど他見ないなぁと思って調べてみた。
調べるのに使ったROMはSS。
細かい仕様は確認してないので大雑把に。

動画作りました。
http://blog.livedoor.jp/x_x_saki_x_x/archives/55574221.html


●仕組み
各対戦ごとにタイプ選択後、トレーナー→ポケモンの順に決まる模様。
乱数は通常のLCGを使っているよう。

・トレーナー
トレーナーの肩書きを乱数1つで決めた後そのトレーナーの名前を乱数1つ決めているっぽい。
肩書きはタイプやランクによって変わっていそうだけどどこかにデータか何かないのかしら。
トレーナーの名前はmod 300した値を用い、バトルタワーと同じ表で該当するまで+1をする感じに見えた。
これ明らかに偏るよね。
ケイトの時は乱数1つのみ消費される。
重複時の処理は確認してない。

・ポケモン
こちらもタイプを無視し、該当する合計種族値のポケモンを乱数1つ用いてmod nで決めた後、タイプ条件を満たすまで+1を繰り返している模様。
これも偏るとかひどくね?
この決め方の通り相手トレーナーのポケモンはトレーナー依存ではない模様。
重複時は+1継続。
重複等により条件を満たすポケモンがいない場合は一時的に重複判定を切ってるっぽい。
その後乱数2つ消費(バトルファクトリーの記述見る限り表裏IDかしら)した後、該当する性格になるよう恒例の性格値決定。
性格は予めポケモンごとに決まっている。
色違いの場合は再決定?
その後乱数4つ消費、何に使っているかは不明。

重複時の+1だが、mod (該当する合計種族値のポケモンの数-1)で計算されているようで、範囲内最大のIndexは最初からそのものの値でない限り選ばれないというバグ仕様があるよう。
これが原因の1つであると思われる、特定条件下で処理が無限ループに入り操作が利かなくなるバグが存在する。
バグの詳しい(?)説明について纏めた記事はこちら


ということでトレーナー無視して1周分の出されるポケモンの予測を行って実際に出来たわけだが、相手ポケモンの性別が予想と違ったりしたので手元の処理含めどこかがおかしい。
ただポケモンの種類の予測はできたので、消費数とか大まかな部分は合ってそう。

特性、色違いに対する処理、相手がケイトの時の処理は確認してない。


レベル決定方法とかは調べてません。
一応、Lv100の時の場合は調べれば出てくるかと。
そのうちLv100以外の場合も調べてみたいが、さて。


~余談~
建物内の動くNPCは参加ポケモンを選ぶ所で乱数消費することにより影響の排除が可能。

タイプ選択時にステータスを見ることができ、ペラップ選択時には任意の乱数消費ができる。
つまり、中断せずに各対戦前に相手ポケモンを任意に調整できるのはペラップだけ!

日替わり乱数を使ってるバトルタワーはともかく、通常乱数を使ってるバトルファクトリーとかは必勝法探すの面白そうだなーと。
そのうちやってみる、かは知らない。


あ、後日これ使ってアンノーンで170連勝しました。

DPtコイントス初期シード検索ツール

作ってみた。
http://www1.axfc.net/u/3209269?key=cointoss
追加データ(CoinTossData.bin):Googleドライブ

Microsoft .NET Framework 4をインストールする必要あり。
追加データは1.5GBあるのでそのつもりで。


●仕組み
第4世代ID調整用初期シード検索ツールみたいのをやってみたかっただけ。
CoinTossData.binに65535Fまでの初期シードをコイントスの結果が昇順になるように並べ替えたデータを入れて、あとは似たような感じ。
ついでに条件により参照しない検索方法も付けてみた。
でも絶対後者のが使われる。


●機能
画像は面倒なので省略。

起動後からコイントス以外でコイントス完了までにMTを消費していない場合のみに対応。
フレーム数も65535Fまで。それより先はコイントス出来る状況でやる人いないでしょ。
そのままでも使えるが、オプションとしてCoinTossData.binを.exeと同じフォルダに置けば、検索範囲がある程度広いコイントス8回以上のものに対しCoinTossData.binを参照して検索するようになる。
8回とかの基準はだいたい適当。

・検索列:コイントスの結果をスペース等を入れずに入力
表:o、O、o、O、○
裏:x、X、x、X、×
に対応。
64文字まで。

・他
見りゃ分かる。分からん奴とかおらんやろ。
条件が緩すぎるまま検索しようとするとアラートが出るようにしてある。
検索結果は初期シードだけですが今後もフレーム数等を表示する予定は全くありません。


~おまけ~


DPtコイントスの結果はMTの最下位1bitだけを取ってるということで、不要な部分の計算省けそうだなーとか考えてた時のメモ。
更新後のテーブルの値の各bitに適当な文字を割り当てて、それらで最下位bitがどう表せるのか計算した結果、見ての通りの6箇所のbitのxorを取れば良いという結論になった。
で、これを.bin作成時にもツール内部にも組み込んでみた。

という訳で、正解は「MT最下位bitの計算」でした。

第5世代個体値乱数列初期シードリスト

消費数固定で個体値条件が厳しい場合等にいちいち個体値乱数列計算するのが無駄な気がしたので。
個体値乱数列の消費が面倒なBWとか特に。
あとは消費数固定時の個体値の偏りをちょっと調べてみたかった。
初期シード2^32種類に対し個体値は2^30種類なので、消費数固定のとき各個体値に対し初期シードは平均4種類。
1差でも見つかりやすさが結構変わるかと。
一応、半日あれば計算できた。
検索した個体値は思いついたものをいくつか適当に。


●BW標準(消費0)
・6V(5種類)
14B11BA6、8A30480D、9E02B0AE、ADFA2178、FC4AA3AC

・5VA0(3種類)
4BD26FC3、C59A441A、DFE7EBF2

・V0VVV0(2種類)
0B5A81F0、5D6F6D1D

・V2UVVVめざ氷(7種類)
01117891、2277228B、A38FBAAF、A49FDC53、AF3FFBBF、F0EE8F20、F62667EE

●BW徘徊(消費なし)
・6V(5種類)
35652A5F、4707F449、7541AAD0、BEE598A7、EAA27A05

・V2UVVVめざ氷(6種類)
5F3DE7EF、7F1983D4、B8500799、C18AA384、C899E66E、D8BFC637

・U2UUUVめざ飛(5種類)
4A28CBE0、5B41C530、A359C930、C8175B8B、DAFA8540

●BW2(消費2)
・6V(6種類)
31C26DE4、519A0C07、C28A882E、DFE7EBF2、E34372AE、ED01C9C2

・5VA0(10種類)
14719922、634CC2B0、71AFC896、88EFDEC2、AA333835、ABD93E44、ADD877C4、B32B6B02、C31DDEF7、D286653C

・V0VVV0(4種類)
54F39E0F、6338DDED、7BF8CD77、F9C432EB

・V2UVVVめざ氷(8種類)
03730F34、2C9D32BF、3F37A9B9、440CB317、6728FDBF、7240A4AE、9BFB3D33、FF1DF7DC


偏り怖い…。
 

A連打で行こう

動画投稿しました。
http://blog.livedoor.jp/x_x_saki_x_x/archives/54505026.html

ダブル勝ちパターン考察しました。
http://blog.livedoor.jp/x_x_saki_x_x/archives/55568704.html



バトルサブウェイ乱数の1つの目標であったA連打で勝てるシードが見つかったのでその報告。
当然スーパーシングルの8週目以降(5、6週目もだが)の奴。


初期シード:B5254DF459A02E4A
消費数:53(+レポートの針)

1人目
●ポケモンレンジャーのカメノゾキ (No.223,個体値:31) 62-75
ナッシー♂(ようりょくそ)@たつじんのおび (No.685)
    リーフストーム/サイコキネシス/ヘドロばくだん/げんしのちから
        202-103-105-194-85-75
リーフィア♂(リーフガード)@あついいわ (No.695)
    にほんばれ/リーフブレード/シザークロス/こうごうせい
        140-178-182-72-85-115
カイリュー♂(せいしんりょく)@こだわりハチマキ (No.727)
    げきりん/じしん/ギガインパクト/ばかぢから
        166-204-115-108-152-100

2人目
●ベーカリーのノノミヤ (No.260,個体値:31) 76-89
ダーテング♂(ようりょくそ)@くろいてっきゅう (No.252)
    なげつける/はっぱカッター/かわらわり/つるぎのまい
        186-155-80-110-101-90
ラフレシア♀(ようりょくそ)@おおきなねっこ (No.598)
    かげぶんしん/ねをはる/どくどく/ギガドレイン
        182-90-105-167-110-70
モジャンボ♂(リーフガード)@ヤチェのみ (No.536)
    しぼりとる/くすぐる/パワーウィップ/じならし
        175-167-145-130-63-102

3人目
●けんきゅういんのツヤコ (No.208,個体値:31) 90-103
ロズレイド♀(しぜんかいふく)@くろいヘドロ (No.841)
    どくどく/まもる/やどりぎのタネ/ギガドレイン
        167-81-117-145-125-110
ワルビアル♂(じしんかじょう)@チイラのみ (No.846)
    じしん/おいうち/ローキック/いわなだれ
        170-169-90-76-90-158
オノノクス♂(かたやぶり)@ヤチェのみ (No.897)
    りゅうのまい/ドラゴンクロー/ドラゴンテール/じしん
        151-199-110-72-90-163

4人目
●メイドのフェザン (No.264,個体値:31) 104-117
フシギバナ♂(しんりょく)@くろいヘドロ (No.734)
    やどりぎのタネ/みがわり/ヘドロばくだん/まもる
        187-91-113-120-152-100
ジャローダ♂(しんりょく)@こだわりメガネ (No.746)
    リーフストーム
        150-85-115-139-115-165
バシャーモ♂(もうか)@こだわりハチマキ (No.566)
    フレアドライブ/シャドークロー/かみなりパンチ/じしん
        155-172-90-130-90-132

5人目
●つりびとのハンフリー (No.251,個体値:31) 118-131
ガマゲロゲ♀(すいすい)@カゴのみ (No.295)
    りんしょう/ねむる/みずのはどう/ヘドロウェーブ
        180-105-116-138-104-94
ニョロトノ♂(ちょすい)@まんぷくおこう (No.301)
    たきのぼり/アンコール/いばる/とびはねる
        165-85-95-156-120-122
バイバニラ♀(アイスボディ)@とけないこおり (No.363)
    れいとうビーム/こおりのいぶき/ミラーコート/こごえるかぜ
        167-103-105-151-149-99

6人目
●ビジネスマンのスギカツ (No.278,個体値:31) 132-145
トゲキッス♂(てんのめぐみ)@こうかくレンズ (No.723)
    でんじは/エアスラッシュ/ねっぷう/みずのはどう
        160-63-115-189-135-132
カイリュー♀(せいしんりょく)@こだわりハチマキ (No.727)
    げきりん/じしん/ギガインパクト/ばかぢから
        166-204-115-108-152-100
ヘルガー♀(はやおき)@ふうせん (No.656)
    かえんほうしゃ/シャドーボール/ヘドロばくだん/おにび
        150-99-70-162-100-161

7人目
●ポケモンブリーダーのショウ (No.293,個体値:31) 146-159
ホエルオー♀(みずのベール)@フォーカスレンズ (No.833)
    ハイドロポンプ/ふぶき/じわれ/はかいこうせん
        277-99-65-156-65-80
ポリゴンZ(ダウンロード)@オボンのみ (No.887)
    トライアタック/10まんボルト/シャドーボール/じこさいせい
        160-90-90-187-95-156
ナッシー♂(ようりょくそ)@ラムのみ (No.860)
    ウッドハンマー/しねんのずつき/だいばくはつ/トリックルーム
        202-161-105-145-85-67

これに対する全抜きポケモンは以下。
ようきASぶっぱムクホーク(すてみ)@鉢巻のブレイブバード
Hが低いと7人目でホエルオーとナッシー倒した後反動で死ぬ。

(以上反転)

ポリゴンZのさわぐでいければA押す回数も少なくていいと思ったのだが、火力足りないせいで確率的にシードが存在するか怪しいレベルだった。
なので諦めて上から高火力連発できるポケモン探したらこいつになった。
火力おかしい。
ちなみに検索にかかった時間は確か3日くらい。
まあ現実的、かな。


リスト表示ツール(検索機能はなし)はこちら。
http://blog.livedoor.jp/x_x_saki_x_x/archives/54407511.html

バトルサブウェイ乱数補助ツール

作ってみた。
http://www1.axfc.net/uploader/so/2813696?key=subway
または
Yahoo!ボックス

Microsoft .NET Framework 4をインストールする必要あり。
BWのオフセット表示以外はBW/BW2どちらでも使える(はず)。
仕組みとかはこちら。
http://blog.livedoor.jp/x_x_saki_x_x/archives/54350426.html

トレーナー固定でのサブウェイマスターでマルチのを選択した場合、あるいはダブルバトルにチェックを入れてシングルのを選択した場合フリーズします。

検索機能はなし、シードからのデータ表示のみ。
個体値は上の記事のコメント>>12の通り。
シングルとダブルにのみ対応、マルチについては未検証。
表示形式は割と適当。
必要な情報はあるからきっと大丈夫。
検索機能も付けようと思ったけど既存のあるし面倒だからやめた。

●機能

subway1_with_num

subway2_with_num

上が周の最初からやる場合、下が中断した箇所からやる場合。

1.初期シード(上)
 初期シードを入力。
 一応例に倣ってSSS4と同じく1回更新した奴。
 リスト表示すると右にBWのオフセットが表示される。
 徘徊等の消費は入っていないので注意。
 BW2のオフセットとは異なるので注意。
2.周(上)
 何週目かを選択。
3.表示数(上)
 9に表示するリストの数。
 普通にやる分には気にしなくて良い。
 徘徊、BV保存等での消費が多い場合のみ増やせばよい。
4.消費数(上)
 消費数。
 バトルボックスを使用している場合はその分の消費数も入れること。
 入口から始める場合はレポート時の針での消費もあるので右のレポートの針もカウントにチェック。
 ホームから始める場合はそれがないのでチェックを外す。
5.ダブルバトル(上)
 ダブルバトルの場合はチェックを入れる。
6.トレーナー固定(上)
 周の最初からやる場合はチェックを外す。
 横のn人目からは使わない。
7.リスト表示(上)
 押すとオフセット表示と8~10が更新される。
8.出現トレーナー(上)
 リスト表示を押すと更新。
 左から消費数、使用したシード、出現トレーナー(番号1~300+サブウェイマスター)の順。
 選択箇所を変えると9が変わる。
 再決定が入ると左の消費数が飛ぶことがあるが不具合ではない。
9.出現ポケモン(上)
 8で選択されているトレーナーの最初のポケモンを表示。
 徘徊等での消費がなければ一番上、あればその分だけ下のものになるはず。
 選択箇所を変えるとそれ以降のデータも更新され、10の表示が更新される。
10.出現データ(上)
 設定した初期シードと消費数、入口から始める場合はレポートの針、そして出現トレーナー・ポケモンのデータが表示される。
 こだわりスカーフ持ちだけはSの実数値を3/2倍(切り捨て)して表示している。
 トレーナーの行の一番右は使用したシードの位置。
 トレーナー・ポケモン共に番号は諸事情により1~nで表示している。

1.初期シード(下)
 (上)と同じ
2.周(下)
 使用しない。
3.表示数(下)
 (上)と同じ。
4.消費数(下)
 消費数。
 レポートの針カウントは使わない。
 オフセットを入れるとシアワセになれる。
 BWの場合は計算できるので初期シードの右に表示されたもの、BW2は自分で確認して。
5.ダブルバトル(下)
 (上)と同じ。
6.トレーナー固定(下)
 中断箇所から再開する場合はチェックを入れる。
7.n人目から(下)
 中断箇所が何人目から開始するか。
8.トレーナー設定(下)
 出てくるトレーナーの種類を決めて、右の表示のどれかを押せば9、10が更新される。
 押す個所は9のリスト表示をするトレーナーの種類に影響。
9.出現ポケモン(下)
 (上)と同じ。
10.出現データ(下)
 (上)と同じ。

プロフィール
さき

ポケモンの乱数調整とかツールとか。サンムーン乱数調整できました。
Twitter→@water_blow

広告
最新コメント
記事検索