K3の住民

最近はレア社のゲームについては書いていませんが、一応レア社のゲームが一番好きな人です。『雪圀』で"圀"は"国"とほぼ同義ですが、国ではありませんって当たり前か(笑)。

【夢をみる島】アイテムドロップバグ

皆さん、こんにちは。雪圀です。

最近プログラミングに関する記事を投稿しすぎだなーと思ったので今回はゲームの
記事を書こうと思います。


さて、夢をみる島、Switchでリメイクされることが発表されましたね。
実は僕が一番初めにクリアしたのがこの夢をみる島で、時オカを食わず嫌いせずに
プレイするまでは「ゼルダは2Dじゃないとありえない!」と思っていた理由はこれ
にあるといっても過言ではありません。

今回、そんな夢をみる島で、ドロップアイテムに関するバグがあるのでそれを紹介
していこうと思います。

アイテムのドロップについて

実をいうと、夢をみる島のアイテムドロップには乱数が使われておりません。という
のは、ドロップするアイテムは時間経過により変化したりしないということです。
では、ドロップするアイテムは固定されているのか?というと、そうでも無く、
無くしたスプライトの数と、描画されたスプライトの順番かつリンクの現在の座標
によってドロップするアイテムは変化しております。但し、今回はリンクの現在の
座標は関係ありません。

因みに、まもりのきのみ、ちからのかけらに関しては少し特殊な仕様になって
いるので、こちらもリンクの現在の座標は関係ありません。

アイテムドロップバグで重要となってくるのは、無くしたスプライトの数です。

無くしたスプライトによる値の参照

夢をみる島では、敵を倒すもしくは浮いているアイテムを取ったら無くした
スプライトの数を増やすことが出来ます。
厳密には無くしたスプライトの数を増やすのでは無く、スプライトを一つ無くすこと
で、無くしたスプライトを一定の間出さなくしたり参照する値を変更したりまもりの
きのみ、ちからのかけらを出す為のカウンタをインクリメントしたりしています。

今回は参照する値の変更について解説します。

分かりづらいと思いますが、アイテムをドロップするとき、参照されている値から
テーブルを呼び出し、ドロップするアイテムを探して取り出すといった感じになって
います。
アイテムをドロップした後は、参照した値から一つ先の値を参照します。
以上のことを図にまとめると、こういうことです。

f:id:ryoryoau24:20190303141624p:plain
アイテムをドロップするときの処理

但し、アイテムドロップ後の処理は一つ先の値を参照するだけです。ということは、
ドロップするアイテムとは違うものを呼び出す可能性があるということです。

これを利用したのが、写真屋フラグバグ服変更バグです(両方ともDXのみ)

写真屋フラグバグ

DXにある写真屋で1度写真を撮ってフラグをONにしない限り写真イベントが起こら
ないわけですが、このフラグをONに出来るバグがあります。

その方法は、87回スプライトを無くすだけです。但し、条件が必要です。

服変更バグ

DXでは赤い服、青い服が追加されていて、通常であればあるダンジョンで服を
変更することが出来ます。
但し、そのダンジョンに行かずに服を変更するバグがあります。

その方法は、90回スプライトを無くします。変更する服は写真屋フラグバグ同様
条件によって変わります。

敵や浮いているアイテムの描画される順番について

敵や浮いているアイテムといった消すとしばらく出てこないスプライトの描画
には順番があります。
例えば、全て同じ種類のスプライトを5つ描画する場合、スプライトを上から順
に左から描画をしていきます。
例を挙げるとこのような感じです。

f:id:ryoryoau24:20190303145208p:plain
描画されるスプライトの順番(同じ種類の場合)

描画されるスプライトが2種類以上の場合、先に描画されたスプライトから描画
を行い、その後に別のスプライトを描画していきます。
例を挙げるとこのような感じです。

f:id:ryoryoau24:20190303150052p:plain
描画されるスプライトの順番(2種類以上の場合)

写真屋フラグバグと服変更バグはこのスプライト描画番号によって効果が変化
します。

写真屋フラグバグは87回目に無くすスプライトを2つ目のスプライトにすることで
フラグをONに出来ます。その他は要検証。

服変更バグは90回目に無くすスプライトを以下のスプライトにすれば望み通りの効果
を得ます。

  • 1つ目:緑の服
  • 2つ目:赤の服
  • 3つ目:青の服
  • 4つ目:バグ赤の服*1
  • 5つ目:バグ青の服*2

まとめ

今回のまとめです。

  • 敵を倒したり、浮いているアイテムを取ったりを繰り返していると、ドロップする
    アイテムとは別のものを呼び出してしまう
  • 87回目に2つめの描画された敵を倒すまたは浮いているアイテムを取ることで
    写真屋で一回写真を撮ったことになる
  • 90回目にこれらの描画された敵を倒すまたは浮いているアイテムを取ることで服に
    変化が起こる
    • 1つ目:緑の服
    • 2つ目:赤の服
    • 3つ目:青の服
    • 4つ目:バグ赤の服
    • 5つ目:バグ青の服


以上です。正直僕でも分かっているか怪しい部分があるので、分かりづらいかも
しれません。本当にすいません。

今回はこれくらいにしときます。

追記

書き忘れていましたが、ダンジョンに入ったりすると無くしたスプライトの回数
が元に戻るので、注意。

*1:攻撃2倍、但し敵は吹っ飛ばない

*2:効果無し