CoSearchのID調整タブ「範囲を指定して検索」の条件の書き方
基本的な用語の定義
オブジェクト
オブジェクトの定義と意味
オブジェクトとは、1個以上のフィールドを,区切りにし、{と}で囲んだフォーマットの構造のことを言う。
フィールドとはフィールド名とフィールド値を:で繋いだ形式の文字列。
フィールドの例…name:yatsuna
フィールドを持たない空のオブジェクト{}は認められない。
オブジェクトの例…{name:yatsuna,id:sub_827}
オブジェクトはその種類ごとに持てるフィールドが定義されている(後述)。
同一のフィールド名を持つフィールドを複数持つことはできない。
たとえば{ name: 回転焼き, name: 今川焼き }はnameフィールドが重複しているので認められない。
オブジェクトはAND条件を表現する構造である。
たとえば{name:yatsuna,id:sub_827}は『nameがyatsunaかつidがsub_827である』条件を表現する。
各フィールドに条件を課さない場合はフィールドを省略することで表現する。
ただし少なくとも1個はフィールドを持つ必要がある。
オブジェクト・フィールドの文法補足
{、}、,、:の前後に半角スペースおよび改行が入っていても良い。
たとえば{ name: yatsuna, id: sub_827 }など。(改行の例は上手く表示できないので省略)
最後のフィールドの後ろには,が入っていても良い。ただし,が連続することは認められない。
たとえば{name: yatsuna}と{name: yatsuna,}は同じ条件を表すリストになる。
{name: yatsuna,,}や{,name: yatsuna,}は文法違反になる。
リスト
リストの定義と意味
リストとは、1個以上の特定の形式の値を,区切りにし、[と]で囲んだフォーマットの構造のことを言う。
たとえば[1,2,4,-2,999,827]は「数字のリスト」。
『1個以上の』なので、空のリスト[]は認められない。
リストに含まれる各値のことを、リストの要素という。
リストは基本的にOR条件を表現する構造である。すなわち、『リストの中のいずれか1つに一致する』条件を表現する。
たとえばage: [10,12,21]は『10歳か12歳か21歳』を表現するフィールドになる。
リストの文法補足
[、]、,の前後に半角スペースおよび改行が入っていても良い。
たとえば[ 1,2]や[1, 2, 5]など。(改行の例は上手く表示できないので省略)
リストの最後の値の後ろには,が入っていても良い。ただし,が連続することは認められない。
たとえば[1,2]と[1,2,]は同じ条件を表すリストになる。
[1,2,]は良いが[1,2,,]や[1,,2]や[,1,2]は文法違反になる。
ただ1つの要素からなるリストに限り、[と]を省略することができる。
[827]と書いてもいいし、単に827と書いてもよい。
オブジェクトの種類
検索条件オブジェクト
検索条件オブジェクトはID調整の結果に対する条件を表すトップレベルのオブジェクト。
検索条件オブジェクトは以下のフィールドを持つ。
ID条件オブジェクトのリストを値に持つidフィールド
IDに関する条件を表現する。
個体条件オブジェクトのリストを値に持つumbreonフィールド
ブラッキーの個体に関する条件を表現する。
個体条件オブジェクトのリストを値に持つespeonフィールド
エーフィの個体に関する条件を表現する。
ID条件オブジェクト
ID条件オブジェクトはIDに関する条件を表すオブジェクト。
ID条件オブジェクトは以下のフィールドをただ1つ持つ。
0から65535までの整数のリストを値に持つtidフィールド
「TIDがリストに含まれる値のいずれかである」という条件を表す。
16進数表記の32bit整数のリストを値に持つshinyフィールド
16進数表記の32bit整数のリストを値に持つsquareフィールド
16進数表記の32bit整数のリストを値に持つstarフィールド
16進数表記であることを表す0xは付けない。
「リストに含まれるPIDのいずれかが 色違い / 菱形色違い / 星型色違い になるIDである」という条件を表す。
補足
『ただ1つ』となっているのは「0xBEEFCAFEが色違いになり、かつ0xDEADFACEが菱形になるようなID」のような条件を表現する意味が無いため。
「特定のTIDで尚且つ指定したPIDが色違いになるようなもの」という条件は非常に厳しく、範囲指定検索には適さないため、tidフィールドとshinyフィールドの組み合わせも同時には指定できないようになっている。
TIDを指定しつつ特定のPIDが色違いになるようなseedを狙う場合は『seedを逆算』タブを利用するべき。
個体条件オブジェクト
個体条件オブジェクトはエーフィ・ブラッキーの個体に関する条件を表すオブジェクト。
個体条件オブジェクトは以下のフィールドを持つ。
個体値リストを値に持つivsフィールド
性格のリストを値に持つnatureフィールド
めざパ条件オブジェクトのリストを値に持つhpフィールド
ポケモンコロシアムで始めから手持ちにいるエーフィとブラッキーの性別と特性は固定であり、色違いにもならないため、性別・特性・色違いは指定可能な条件に含んでいない。
個体値リスト
6個の個体値指定子を,区切りにし、[と]で囲んだフォーマットの構造。
前から順に[HP,こうげき,ぼうぎょ,とくこう,とくぼう,すばやさ]の個体値の条件を表す。
個体値指定子は以下のいずれか。
0から31までの整数
「個体値がその値である」という条件を表す。
0から31までの整数2つを-で繋いだもの
「個体値がその範囲に含まれる」という条件を表す。
たとえば0-5は「個体値が0以上5以下であること」を表す。
整数と-の間に半角スペースや改行を入れてはならない。
_
ワイルドカード。その能力の個体値に条件を指定しないことを表す。
0-31と同じ意味を持つ。
たとえば[_,0-2,_,31,_,31]は「こうげきが0以上2以下、とくこうとすばやさが31である」という条件を表す。
半角スペース・改行および末尾の,の挿入に関するルールはリストと同様。
リストと似たフォーマットを持つが、リストではないため、[]の省略は不可。
性格
ポケモンのせいかくを表す文字列。
ひらがな表記と英語表記に対応しており、英語は「全て小文字」「全て大文字」「頭だけ大文字」のいずれも受け付ける。
リスト内に異なる表記方法が混在していても良い。
たとえば[おくびょう, Adamant, bold, HARDY,]
めざパ条件オブジェクト
めざパ条件オブジェクトはめざめるパワーに関する条件を表すオブジェクト。
めざパ条件オブジェクトは以下のフィールドを持つ。
タイプのリストを値に持つtypeフィールド
30以上70以下の整数を値に持つpowerフィールド
めざめるパワーの威力の下限を表す。
タイプ
めざめるパワーのタイプを表す文字列。
ひらがな表記と漢字1文字表記と英語表記に対応しており、英語は「全て小文字」「全て大文字」「頭だけ大文字」のいずれも受け付ける。ひらがなと漢字の対応は以下の表を参照。
リスト内に異なる表記方法が混在していても良い。
table:type
ほのお 炎
みず 水
くさ 草
でんき 電
こおり 氷
かくとう 闘
どく 毒
じめん 地
ひこう 飛
エスパー 超
むし 虫
いわ 岩
ゴースト 霊
ドラゴン 竜 / 龍
あく 悪
はがね 鋼
ドラゴンに限り、竜・龍の2通りの表記ができる。
条件の書き方
上で定義した用語を用いて一言で言うなら、『範囲を指定して検索』タブの条件は、「検索条件オブジェクトのリスト」によって指定する。
以下に例を示す。
code:sample
[
{
id: [
{ star: DEADFACE },
],
umbreon: [
{
},
{
}
],
espeon: {
nature: ひかえめ,
hp: [
]
}
},
{
id: { tid: 01234 }
}
]
サンプルは2つの要素からなる検索条件オブジェクトのリストである。
1個目の検索条件オブジェクトは以下のような条件になっている。
IDが
性格値0xBEEFBEEFか0xBADFACEが菱形色違いになる
または
性格値0xDEADFACEが星型色違いになる
または
性格値0x1234567か0xABABABABか0x0が色違いになる
または
TIDが00827か00000
ブラッキーは
個体値が6V
または
HP・ぼうぎょ・とくぼうの個体値が30~31であり、
性格がおだやかかずぶといであり、
めざめるパワーの威力70、タイプはこおりかくさかほのお
エーフィは
HP・ぼうぎょ・とくぼうの個体値が20~31かつとくこう・すばやさの個体値が31
性格がひかえめ
めざめるパワーが
威力70かつタイプはこおりかくさかほのお
または
タイプがあくかむし
2個目の検索条件オブジェクトは「TIDが01234である」というだけの条件を表す。
このサンプルを打ち込んだ場合、TIDが01234であるか、もしくは1個目の複雑な条件を満たすseedがフィルタされて表示される。