doc drawn up: 2004-02-14 .. 2015-04-01

Game Hacks: EB (Endless Battle)

覚醒の真相

「覚醒」という隠し性格パラメータは、EBSをプレイする上でもっとも基本的で重要なテクニックである。各能力パラーメータが2倍になる。

性格に関するアルゴリズムは ebs_sub4.cgi の462行目関数 BATTLE2 の内部にあり、config.cgi の中にある $NT_START と $NT_END という2つの定数で覚醒条件と覚醒終了条件をそれぞれ別々に設定するようになっている。

非覚醒時における覚醒条件がデフォルト設定の場合「【通常】で攻撃をすること」が必要条件となり、覚醒時における覚醒終了条件がデフォルト設定の場合「【通常】で攻撃しないこと」が必要条件となる。

デフォルト設定以外の場合は、「【通常】かどうか」は関係がない。ただ単純にランダム確率で「覚醒し」、ランダム確率で「相手の性格が感染する」。このランダム確率の場合は、2通りの設定があって、コード中のコメント文によると「低確率」と「超低確率」ということらしい。

覚醒が終了するという現象が、実際には「覚醒が終了するかどうか」によるものではなくて「相手の性格が感染するかどうか」によるものというのが、重要なポイント。一旦覚醒してしまえば、覚醒している相手とだけ戦い続ければ、【通常】以外の【作戦】を選んだ場合でも覚醒が解除されることがない。デフォルト設定であろうが、「低確率」「超低確率」のランダム確率設定であろうが、この作戦は通用する。

確率の具体的な数字がどうなっているかというと、覚醒確率は「デフォルト設定=2/255(【通常】が必要条件)」「ランダム低確率=4/255」「ランダム超低確率=1/500」と、作者はしたかったようだが、コードの記述に誤りがあり、実際には「ランダム超低確率=1/∞」となっている(rand()関数が返す値は実数値なのに整数値と勘違いしてコードが記述されているのが原因のバグ。本来の意図する通りに動くようにするには、int()関数で整数化する必要がある)。覚醒終了確率(相手の性格の感染確率)は、「デフォルト設定=55/255(【通常】でないことが必要条件)」「ランダム低確率=4/255」「ランダム超低確率=1/500(実際は1/∞)」となっている。

ともかく、プレイヤーにとっては、覚醒の秘訣は「覚醒するまではひたすら【通常】で攻撃して頑張る(設定によっては【通常】でなくともただ戦闘を繰り返せば覚醒する設定の場合もある)」「一旦覚醒したら、覚醒が解けないように、覚醒している相手を選んで戦うようにする」ということに尽きる。また、覚醒終了条件がデフォルト設定のサイトであれば「【通常】で攻撃する限り、非覚醒の相手でも覚醒は解けない」ということも役に立つだろう。そのサイトがどの設定かは、以上のアルゴリズムを理解した上でプレイしてみれば、推察することはそれほど難しくない。

また一方、EB サイト運営者にとっては、「ランダム超低確率」のバグには留意する必要がある。int()関数を使って整数化してバグを解消するか、それとも「ランダム超低確率」の設定自体を使わずに避けるか、どちらかの対策をとらなければ、「覚醒できないサイト」になってしまうという現象が発生してしまうことになる。

スピード低下

体力が 54999 を超過する“重量級”のキャラクターは、スピードが低下(すなわち回避能力が低下)し、その分敵の攻撃が当りやすくなるというデメリットが発生する。このアルゴリズムは、ebs_sub4.cgi の 237 ~ 238 行目関数 BATTLE2 の内部にある。50000 を超過した分(体力値-50000)を 5000 で割った数の分(小数点以下は切り捨てなので、4999 までの超過分は結果的に無視される)だけ、スピードが低下することになる。たとえば、55000 のときはスピードが 1 低下する計算になる。体力 200000(デフォルト設定の最大値)で 30 低下することになる(ステータスの最大値は 50 なので、20 になってしまう)。

回避能力(スピード)を優先するか、体力を多くして打たれ強さを優先するかはプレイヤーの好み次第だが、攻撃優先なら回避能力重視、防御優先なら体力重視ということになる。たとえば国の総帥などは、内乱されないように生き残る確率を少しでも上げるためにできるだけ体力を多くした方がいい。一方、戦争で要塞破壊を目標にするなら、回避を優先することになる(要塞と真っ向から体力勝負をしても無駄なので回避しやすさと回復の早さに特化する)。

EB サイト運営者は、この「スピード低下」のフィーチャーについて知っていないと、単に体力の上限を改造して、例えば 1000000 とかの体力に達することができるようにする一方、スピード低下アルゴリズムがそのまま放置されていた場合、190 もスピードが低下するので、スピードが低下していない体力 55000 未満の中・軽量級キャラクターのいいサンドバックとなる現象を招き、キャラクター成長に矛盾をきたすことになるので、注意が必要である。

成長限界とカスタム数

能力値の成長限界は、カスタム回数によって決定される。このアルゴリズムは、ebs_sub4.cgi の 424 ~ 425 行目関数 BATTLE2 の内部にある。カスタム回数 0 で能力値 20(B) まで、カスタム回数 1 で能力値 30(S) まで、カスタム回数 2 で能力値 35(SS) まで、カスタム回数 3 で能力値 40(SSS) まで、カスタム回数 4 以上で能力値 50(NT) までとなる。

すなわち、最低 4 回カスタムすれば ok ということになる。5 回以上カスタムしてもあとは同じ。


EB 武器名鑑(@一休)