「プレゼント」には重大なバグがあって、ダメージ計算に使用される数値が以下のように入れ替わっています。

    自分の攻撃力 → 相手ポケモンとノーマル攻撃の相性×10 (0Ahか05h)
    相手の防御力 → 自分の2番目のタイプ (00h〜1Bh)
    自分のレベル → 相手の2番目のタイプ (00h〜1Bh)

現場は0D:****です。
ここでサブルーチンがよばれるまではB=攻撃力 C=防御力 D=レベルです。
サブルーチンで技と相手のタイプをチェックして、相性=00(効かない)ならば処理を抜けるようになっているのですが、
この際レジスタの数値を待避し忘れており、サブルーチン中で上書きしまくってしまいます^^;

結果として、この技は場合によって異常な威力を発揮します。
例えば、ピィがブラッキーにプレゼントを出したとすると、攻撃力=0Ah,防御力=00h,レベル=1Bhを
ダメージ計算式に当てはめると、 (注:除数が0になる場合は1とする)威力40,80,120の順に、
147,291,435(×85〜100%)ものダメージになります。

このように、非常に弱いポケモンでも分不相応な攻撃を出すことができてしまうので、
この情報の一般公開は対戦に悪影響を及ぼす危険性があります。


ということでしたが、このバグはクリスタル版、ポケスタ金銀で修正されたようなので、
公開してましょう。売り物ソフトにしては、ちょっと恥ずかしいプログラムミスでしたね

「プレゼント」の仕組み

「プレゼント」はダメージ計算のさいに攻撃力や防御力の代わりにほかの数値を使って計算することにより
ほかの技とはかなり違った結果がでます。


お願い! この技はしってる人と知らない人では差がついてしまう技です。
この技によりアンフェアな戦いがおこなわれるのをあみにしは望んでいません。
その理由と、もうひとつ、拙者の調べに自信がもてないことから、
このこと、そしてこのページを人に伝えるのはできる限り遠慮していただけるとうれしいです。
確証が得れれば時期をみての公開を考えます。
そして、その確証を得るために実験に協力していただけると幸いです。(適当にあみにしを捕まえるか、メールかでご連絡ください)
また、ある程度自分でも間違いのないよう調べたつもりですが、内容がまったくデタラメだったということもありうるので、心しておいてください。

「プレゼント」のダメージ計算式:
(((相手の二番目の属性の番号×2÷5)+2)×(40,80,120のどれか)×10÷(自分の二番目の属性の番号)÷50)+2

注1:)×10は相手がノーマル属性のダメージを半減する属性の時、つまり鋼か岩属性を持ってるとき、×5となります。
    もし、岩/鋼タイプのポケモンがいれば2.5になります。
注2:)相手、もしくは自分に二番目の属性がない場合、一番目の属性を使います。
注3:)計算により0で割らなければならないとき1でわるものとしてあつかいます。
注4:)わり算の結果の小数は計算の結果がでた時点で除外されます

属性の番号

物理攻撃
  • ノーマル 0
  • かくとう 1
  • ひこう  2
  • どく   3
  • じめん  4
  • いわ   5
  • むし   7
  • ゴースト 8
  • はがね  9
 
特殊攻撃
  • ほのお 20
  • みず  21
  • くさ  22
  • でんき 23
  • エスパー24
  • こおり 25
  • ドラゴン26
  • あく  27
 
例:ブラッキーにピクシーがプレゼントを使った場合
(((27×2÷5)+2)×40×10÷1÷50)+2=98(威力40の場合)
→プレゼントは属性の一致によるダメージ1.5倍化もあるようなのでダメージは147となります。
・威力 80の場合→196(1.5倍されると294)
・威力120の場合→294(1.5倍されると441)

例:ラッタにプクリンがプレゼントを使った場合
((( 1×2÷5)+2)×40×10÷1÷50)+2=18(威力40の場合)(1.5倍されると27)
・威力 80の場合→ 36(1.5倍されると 54)
・威力120の場合→ 54(1.5倍されると 80)

例:バンギラスにハピナスがプレゼントを使った場合
(((27×2÷5)+2)×40× 5÷1÷50)+2=50(威力40の場合)(1.5倍されると75)
→さらに「効果はイマイチ」で半減することが予測されます
・威力 80の場合→100(1.5倍されると150)
・威力120の場合→150(1.5倍されると235)


by #z80 mit teamPA