仄暗いレートの底から

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【Em乱数】フロンティア戦闘乱数(仮)

まだ調査途中なので、メモ程度に。
フロンティア施設内では、野生・トレーナー戦に関わらず、戦闘中の画面描画による乱数消費が停止します。
わかりやすく言えば、4世代みたいな乱数の動きになるってことです。何もしなければ乱数は動きません。
つまり、(仕組みと現在位置さえ割り出せば)戦闘の動きをコントロールすることができます。夢のようですね!
ラッキーが先制の爪を発動させて指を振ったら絶対零度が出て相手に当てたけどきあいのハチマキで耐えられた、みたいなこともできるかもしれません。

現在わかっていること。
・乱数消費が止まるタイミングは、戦闘突入アニメの後。引いた個体の107Fもしくは108F後で止まる。(ただし、細い線が左右にスライドするアニメの場合。白線が重なるようなアニメの場合は170Fもしくは171F、野生ポケモンより初手のレベルが低い場合はこちらになる)

・乱数が止まった後、爪判定、相手の行動決定で2消費され、自分の行動選択になる。

・爪判定は乱数値(seed上位16bit、以下Rと略) < 0x3333

・行動決定は R % 4. (野生ポケモンの技構成は2号館跡地を漁ってください)

・技を出す際の消費は命中判定、急所判定、ダメージ乱数、追加効果の順。

・攻撃技は基本的に上記4つ全て判定される。倒した場合の追加効果判定は無し?

・必中技は命中判定無し、固定ダメージ技は急所判定とダメージ乱数無し。ただしバニラ技でも追加効果判定はされる。

・命中判定はR % 100と命中率を比較。

・急所判定はR % 16で、0ならば急所。

・ダメージ幅はR % 16。算出されたダメージに(100 - R %16)パーセントの補正を加える。

・算出された最大ダメージが残りHPより大きい場合かつきあいのハチマキを持っていた場合、急所判定のあとに鉢巻判定が入る。R % 10 == 0なら耐える。

・補助技は必要の無い判定はなされない。例えば毒々や電磁波は命中判定のみ、手助けは消費無し。

・指を振るは R % 0x200 + 1の技番号の技を出す。ただし技番号は353までしかないので、354以上が出たら再判定。

ざくっと書くと、
■LID決定
↓(この間107F~108F)
■乱数停止

■爪判定
■相手の行動決定

■行動選択
↓(普通の攻撃技を使った場合)
■命中判定
■急所判定
■ダメージ乱数
■追加効果判定
↓(後攻の番)
■命中判定
■急所判定
■ダメージ乱数
■追加効果判定

■爪判定
■行動決定

■2ターン目の行動選択

以下略

トレーナーはもうちょっとややこしくなりそうですが、そのうち調べます。

【逆1位ローテ】猫の手真似っこルーレット

参加してくださった方々、ありがとうございました。
思っていたより闇のゲームじゃなかったですね。

ささっとパーティ紹介だけ。
1対1で戦うローテなので、猫の手でにゃんにゃんしてみようって軽いノリで組んだパーティです。
湿り気が来ても詰まないように猫の手命がけ、猫の手置き土産、相手の後手爆発を真似っことかギミックを詰め込んでみましたが、あんまり上手く機能しませんでした…。やっぱり猫の手パは動きづらくなるのが欠点ですね…。

■ヌケニン
陽気 S252 @くっつきバリ
守る

動きやすいように敢えて命がけを外しました。
後で知ったんですけど、黒いヘドロのほうが先に判定されるんですね…。

■エルフーン
臆病 S252 @メンタルハーブ
置き土産

守るはあっても良かったかもしれないです。
ヌケニンとエルフミラーが怖くてそこまで強すぎるって感じはしませんでした。

■レパルダス
せっかち H調整、S252 @毒々玉
猫の手、守る、真似っこ、トリック

いつもの猫。エルフーンより速かったらめちゃくちゃ強かったのに。

■ニャオニクス
せっかち H調整、S252 @拘りスカーフ
猫の手、守る、トリック、横取り

いつものじゃない猫。遅い、硬い、真似っこできない。マジル貼らない。

■マルマイン
せっかち S252 @防塵ゴーグル
自爆、守る

爆弾。胞子無効にしたところで対抗手段ないから防塵ゴーグル完全に腐ってますね。

■リオル
せっかち S252 @黒いヘドロ
まねっこ、守る、命がけ、(この指止まれ)

素のSが遅いせいで満足に命がけを打てる相手がいないことに気づき、選出されなかった。


結果は3章2敗で3位。途中までニャオとレパの持ち物逆だと勘違いしてたのが痛かったです。
たぶん逆1位ローテは次回は無いと思います。

【Emフロンティア攻略】Emファクトリー乱数のススメ

フロンティアの金シンボルが揃わない。
というかそもそも銀ダツラにすら会ってない。
エメラルドのバトルファクトリーに何度も挑み、そして散って行った人に……。


Emバトルファクトリー乱数用ツールがついに完成しました!
https://www.dropbox.com/sh/uu5f3g3cg8e0d6g/AABOclLp_skbEhUB_P92j1YRa?dl=0

詳しい解説とかは金シンボル取ってから書きます。 (その後彼の姿を見たものはいなかった……)
おおまかな説明はツール内に書いてありますのでご安心ください。

■追記
2016 3/13 無事6周目の2戦目で負けました。やる気ゲージがたまったら金シンボルへの挑戦再開するつもりです。

【ヌオーでもわかる乱数調整】RSにおけるID生成について【番外編】

ヌオーでもわかる(?)3gen乱数調整のコーナー、第0回目にして番外編です! いえーいぱちぱち。
今回はRSのID生成処理において、違うseedから同じIDの組み合わせが生成される条件について考えてみようと思います。

(約半月間、授業をまったく聞かずに考え続けた成果をメモ程度にでも残しておきたかっただけです…。)

■注意
・乱数調整のやり方については一切触れません。
・というか「乱数調整」の記事なのかすら怪しいです。3genの生成処理についての考察記事です。
・これを知っても、乱数調整をする上でなんのプラスにもならないと思います。

■始めに : RSにおけるIDの生成
SID,TIDの順に生成。

生成開始seedをr[n]とすると、
SID : r[n] >> 16
TID : r[n+1] >> 16
で生成。要するに16進数で表したときの上4桁。

データ上はPIDみたいな形で一緒になって格納されてるみたいです。

■ほんへ : 同じIDの組み合わせになるseed(上記r[n])の組についての考察

生成されるIDが同じとき、少なくとも生成に使われる2つのseedの値の差は0x0000FFFF以下である

上位16bitが一致するんですから当たり前ですね。
とりあえずこれを頼りに考えてみます。

あるseed R[n]に対し、seedの値がR[n] + dとなるseedをR[m]とおきます。
このとき、R[n+1]とR[m+1]の関係について考えてみましょう。

3genのLCGはX[n+1] = (A * X[n] + B) mod Mと書けるので (※A=0x41C64E6D,B=0x00006073,M=0x100000000。mod M はMで割った余りを示す)
R[n+1] = (A * R[n] + B) mod M
R[m+1] = (A * R[m] + B) mod M

R[m] = R[n] + dなので、これを代入します。

R[m+1] = {A * (R[n] + d) + B} mod M
= {(A * R[n] + B) + A * d} mod M
= R[n+1] + (A * d) mod M

R[n+1]とR[m+1]の差は(A * d) mod Mと表せることがわかりました。

TIDが一致するとき、R[n+1]とR[m+1]の差も、少なくとも0x0000FFFF以下になるはずです。

なので、
0 ≦ d ≦ 0xFFFF かつ 0 ≦ A*d mod M ≦ 0xFFFF
を満たすdを探してみたところ、d = 0, 0x67D3, 0xCFA6の3つが該当しました。
ただし、d = 0の場合、R[n] = R[m]となるので不適で、0xCFA6 = 2 * 0x67D3なので、d = 0x67D3とすれば良いでしょう。

では2つの生成開始seedの差が0x67D3ならいつでもTIDとSIDは一致するのでしょうか?

R[n]の下位16bitとdを足したとき、それが0x10000より大きくなると、桁上がりが生じてR[m]の上位16bitは(R[n]の上位16bit + 1)の値を取ることになってしまいます。
例)0x00003333 に 0x000067D3 を足すと 0x00009B06 ですが、0x0000FFFF に 0x000067D3を足すと0x000167D2となり、上位16bitが一致しません。
つまりR[n]の下位16bitが 0x10000 - 0x67D3 = 0x982Dより小さい、というのが条件の1つとなるようです。

また、R[n+1]とR[m+1]についても同じことを考えないといけません。
A * d mod M = 0x00007ED7なので、R[n+1]の下位16bitが 0x10000 - 0x7ED7 = 0x8129より小さくないといけません。

以上から、R[n] < R[m]である2つのseedが
1.R[m] - R[n] = 0x000067D3
2.R[n] mod 0x10000 ≦ 0x982C
3.R[n+1] mod 0x10000 ≦ 0x8129
を満たすとき、生成されるTID,SIDが一致すると言えます。

■あとがき
半月かけて考えた割りにまとめがお粗末ですね…すみません。。。
だからなんだって感じの内容ですが、欲しかった結論は「RSでは存在しないIDの組み合わせがある」ってことです。
調べてる途中で、「0x67D3の存在の時点で同じIDの組み合わせが存在してるから存在しない組み合わせもあるって証明できたんじゃ…」って思いましたが、気にせず続けました。
IDは乱数値をそのまま使っているので、個体値の組み合わせなんかにも応用が利くと思います。(あとがきを書きながら気づいた)

間違ってる箇所、わかりにくい箇所等あればご指摘ください。
2つの乱数とそれらを進めた乱数の関係については、oupoさんのブログを、穴が空くほど参考にさせていただきました。ありがとうございました。

3世代の低レベルぽけもん

高まった3世代乱数モチベを有効活用するために、3世代で手に入る進化レベル未満の進化後ポケモンをまとめてみました。進化レベル未満の個体が複数ある場合はもっとも低いものだけを記載しています。
4世代5世代でもっと低いレベルで出てくるポケモンも含んでますが、ものまねとかの限定技で差別化できます。できます。できてます。

【RSE】
トウカの森
・カラサリス(Lv.5) RSE
・マユルド(Lv.5) RSE
ともに進化レベルは7。

ニューキンセツ奥
・レアコイル(Lv.26) RSE
進化レベルは30。ちなみに、進化させることで手に入るジバコイルも最低レベル。

サファリゾーンマッハエリア
・ドードリオ(Lv.29) RSE
進化レベルは31。そういえば最近ポロック有りサファリ乱数が開拓されたらしいですね(すっとぼけ)。
・ゴルダック(Lv.25) RSE
水上で出現。進化レベルは33。

129番水道
・ホエルオー(Lv.25) SE
水上で出現。進化レベルは40。RではLv.35までしか出てこないので注意。

すてられ船
・ドククラゲ(LV.20) RSE
凄い釣竿で釣れる。進化レベルは30。

ルネシティ
・ギャラドス(Lv.5)
凄い釣竿で釣れる。進化レベルは20。
スロット5(1%)に加えてレベル5~45なので、出現率はものすごく低い。理想個体を出すにはプレッシャーが必要かも。

【FRLG】
トキワの森
・トランセル(Lv.5) FRLG
・コクーン(Lv.5) FRLG
ともに進化レベルは7。

ポケモンタワー 3F-5F
・ゴースト(Lv.20) FRLG
進化レベルは25。3Fと4、5Fでは出現スロットが違うので注意。

ポケモン屋敷1F-3F
・マタドガス(Lv.32) FR
進化レベルは35。
・ベトベトン(Lv.32) LG
進化レベルは38。

ふたごじまB2、B3、B4
・ジュゴン(Lv.32) FR
進化レベルは34。それぞれの階で出現スロットが違う。
LGではこのスロットでヤドランが出てくるが、ヤドランは後述のLv.25がいる。

ほてりの道
・ギャロップ(Lv.37) FRLG
進化レベルは40。

19,20,21番水道他
・シードラ(Lv.25) FR
凄い釣竿で釣れる。進化レベルは32。
・キングラー(Lv.25) LG
凄い釣竿で釣れる。進化レベルは28。

セキチク,サファリ他
・アズマオウ(Lv.20) FRLG
凄い釣竿で釣れる。進化レベルは33。

サファリ
・ハクリュー(Lv.25) FRLG
凄い釣竿で釣れる。進化レベルは30。

グレン島
・ヤドラン(Lv.25) LG
凄い釣竿で釣れる。進化レベルは37。
・マルマイン(Lv.3) FRLG
トキワの森で捕まえたLv.3のピカチュウを進化させて交換すると手に入る。
トレーナータワー最速記録を出すのに必要だとか。

ともしび山
・マグカルゴ(Lv.25) FRLG
いわくだきで出現。進化レベルは38。



たぶんこれで全部だと思いますが、抜けがあれば教えてください。
書いてる途中でルネのLv.5ギャラを見つけて書き直したのは内緒。(それまでFRLGのギャラが最低だと思ってた)

Powered By FC2ブログ
Template By oresamachan
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。