doc drawn up: 2004-02-14 .. 2004-04-08
Game Hacks:
(Endless Battle Satellite)
※警告※
このページの情報はネタバレ情報を含んでいますので、ゲーム内容を自分で解き明かす面白さを求める人にとっては、知りたくないものである可能性があります。ネタバレ承知の場合だけ、これより下の情報を閲覧するようにして下さい。
「覚醒」という隠し性格パラメータは、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/∞)」となっている。
ともかく、プレイヤーにとっては、覚醒の秘訣は「覚醒するまではひたすら【通常】で攻撃して頑張る(設定によっては【通常】でなくともただ戦闘を繰り返せば覚醒する設定の場合もある)」「一旦覚醒したら、覚醒が解けないように、覚醒している相手を選んで戦うようにする」ということに尽きる。また、覚醒終了条件がデフォルト設定のサイトであれば「【通常】で攻撃する限り、非覚醒の相手でも覚醒は解けない」ということも役に立つだろう。そのサイトがどの設定かは、以上のアルゴリズムを理解した上でプレイしてみれば、推察することはそれほど難しくない。
また一方、EBSサイト運営者にとっては、「ランダム超低確率」のバグには留意する必要がある。int()関数を使って整数化してバグを解消するか、それとも「ランダム超低確率」の設定自体を使わずに避けるか、どちらかの対策をとらなければ、「覚醒できないサイト」になってしまうという現象が発生してしまうことになる。
体力が50000を超過する(50000ジャストまではOK)“重量級”のキャラクターは、スピードが低下(すなわち回避能力が低下)し、敵の攻撃が若干当りやすくなるというデメリットが発生する。このアルゴリズムは、ebs_sub4.cgi の237~238行目関数 BATTLE2 の内部にある。50000を超過した分(体力値-50000)を5000で割った数の分だけ、スピードが低下することになる。たとえば、55000のときはスピードが1低下する計算になる。体力100000で10低下する。
回避能力を優先するか、体力を多くして打たれ強さを優先するかはプレイヤーの好み次第だが、攻撃優先なら回避能力重視、防御優先なら体力重視ということになる。たとえば国の総帥などは、内乱されないように生き残る確率を少しでも上げるためにできるだけ体力を多くした方がいい。一方、戦争で要塞破壊を目標にするなら、回避を優先することになる(要塞と真っ向から体力勝負をしても無駄なので回避に徹する)。
EBSサイト運営者は、この「スピード低下」のフィーチャについて知っていないと、単に体力の上限をカスタマイズしたりして、たとえば1000000とかの体力に達することができるようにしてしまって、スピード低下アルゴリズムがそのまま放置されていた場合、190ポイントもスピードが低下するので、体力50000以下の中量級キャラクターのいいサンドバックとなる現象を招くので、注意が必要である。
能力値の成長限界は、カスタム数によって決定される。このアルゴリズムは、ebs_sub4.cgi の424~425行目関数 BATTLE2 の内部にある。カスタム数0で能力値20(B)まで、カスタム数1で能力値30(S)まで、カスタム数2で能力値35(SS)まで、カスタム数3で能力値40(SSS)まで、カスタム数4以上で能力値50(NT)までとなる。
すなわち、最低4回カスタムすればokということになる。5回以上カスタムしてもあとは同じ。