Hadesの攻略 ソースから読み解くハデスー釣り編ーです。
釣りに関するデータをソースコードから読み解いていきます。
釣りそのものの情報は釣りのやり方と報酬一覧を参照ください。本記事の内容に繋がるものがあるので理解しやすくなります。
※ソースコードはSupergiant Games様の資産ですので載せません。ファイル名なども記載しません。あくまでもゲーム構造を理解するためだけに利用してください
※悪用は禁止です。ゲームバランスの崩壊やデータ破損の原因になります。またどのような問題が発生しても一切の責任を負いかねます
釣りの基本情報
変数名 | 内容 |
---|---|
FishingData | 釣りそのものの設定を決める場所 |
NumFakeDunks |
釣れるまでに何回フェイクを入れるか 最小0回なので即釣れることもある |
FakeDunkInterval |
ウキの浮き沈みのタイミングを設定 NumFakeDunksの値の回数だけランダム値を設定しなおす これにより一定間隔で沈まなくなる |
WarnInterval |
ウキが光るタイミングを設定 NumFakeDunksの回数が終わると成功タイミングになる ランダム値により若干のブレがある |
GoodInterval | 釣りに大成功する猶予
0.34~0.68秒までにボタンを押すと大成功になる |
PerfectInterval |
釣りに超成功する猶予 0~0.33秒までにボタンを押すと超成功になる |
WayLateInterval |
遅すぎて釣りに失敗する時間 0.69~0.99秒までは普通の成功となり、超えると失敗する 上記以外の時間でボタンを押すと早すぎて失敗になる |
GiveUpInterval | 釣りを終了させる時間
3秒経つと釣りが強制終了する |
釣りの成功タイミングが3段階で区切られていることが分かります
しかもPerfect判定を受けるにはウキが光ってから0.33秒と非常に速いスピードで釣りあげなければなりません
釣れる魚の抽選
変数名 | 内容 |
---|---|
Tartarus | タルタロスで釣れる魚の情報 |
Asphodel |
アスフォデルで釣れる魚の情報 |
Elysium |
エリジウムで釣れる魚の情報 |
Styx |
ステュクス神殿で釣れる魚の情報 |
Secrets | カオスで釣れる魚の情報 |
Surface |
地上(ギリシャ)で釣れる魚の情報 |
Good |
大成功した時に釣れる魚の管理名と確率 Weight = 0.05、つまり5%の確率でレア枠の魚が釣れる |
Perfect |
超成功した時に釣れる魚の管理名と確率 Weight = 0.05、つまり5%の確率でレジェンダリー枠の魚が釣れる |
レア枠とレジェンダリー枠は独立していることと、抽選確率が5%と非常に低いことが分かります
特にレジェンダリー枠は報酬がいいだけに絞るのは分かりますが釣ること自体が難しいですね(反射神経も必要になってきますし)
魚の価値とセリフの設定
変数名 | 内容 |
---|---|
Fish_Tartarus_Common_01 |
タルタロスで釣れるコモン枠の魚情報 他の地域も同様に記載 |
Fish_Tartarus_Rare_01 |
タルタロスで釣れるレア枠の魚情報 他の地域も同様に記載 |
Fish_Tartarus_Legendary_01 |
タルタロスで釣れるレジェンダリー枠の魚情報 他の地域も同様に記載 |
InheritFrom |
このコードより上で宣言されている骨組みを呼び出す そこにデータを代入することで汎用している |
Award |
魚の価値を決める場所 交換されるアイテムは下記のようになっている Gems = ジェム LockKeys = スケルトンキー GiftPoints = ネクター MetaPoints = ダークネス SuperGems = ダイアモンド SuperGiftPoints = アンブロシア SuperLockKeys = タイタンブラッド |
FishIdentifiedVoiceLines |
魚を釣った時のボイス 1つの魚につき5種類のボイスが設定されている |
各魚が何と交換してもらえるのかが分かり、地上に近い地域で手に入る魚の方が報酬が良くなるといえます
また魚を釣った時のボイスが5種類と思ったより多かったので力の入ったミニゲームなのだと感じました
応用編
ここからは、上記の説明内容で何ができるのかを解説していきますが、最初にも書いたようゲームプレイに影響を与えるためセーブは行わず、試すだけに留めてください
変更箇所
変数名 | 内容 |
---|---|
NumFakeDunks |
最小0、最大0にすることで必ず最初にウキが光るようになる |
GoodInterval | 釣りに大成功する猶予を0.1秒に変更 |
PerfectInterval |
釣りに超成功する猶予を2.98秒に変更 基本的に超成功するようになる |
WayLateInterval |
遅すぎて釣りに失敗する時間を2.99秒以降に変更 普通に釣れば失敗することはなくなる |
変更箇所
変数名 | 内容 |
---|---|
Tartarus | 今回は試用のためタルタロスで釣れる魚を対象とした |
Perfect |
超成功した時に釣れる魚のレア枠をレジェンダリー枠に差し替えた これにより確率が何%だろうが全てレジェンダリーの魚が釣れるようになる Weightを元に魚テーブルから名前を取得して返す処理になっているが、そもそもレジェンダリーの魚しか渡していないのでレジェンダリー枠が確定するという寸法 別にPerfectになるタイミングとかを変えなくても、ここを変えてしまえば釣れる魚は操作できることになる |
変更箇所
変数名 | 内容 |
---|---|
Award |
シェフに渡した時の報酬を操作 タルタロスで釣れるレジェンダリーの魚「Scyllascion」は30ジェムに交換してもらえる そこをいじって3000ジェムに変えてみた 試してはいないが他のアイテムに差し替えることも可能 |
タルタロスでお試し
釣りを開始して初回に必ず光ることを確認できました
またレジェンダリーの魚である「Scyllascion」を毎回釣ることに成功したので、成功判定がPerfectになっていることが分かります
更にWeightの操作も試してみましたが、こちらはうまくいきませんでした
渡したリスト情報を元にランダムで結果を返す汎用メソッドがあるみたいですが、そこを見つけられなかったのが理由です
「Scyllascion」をシェフに渡してみたところ、しっかりと3000ジェム貰うことに成功しました
そして本データとはサヨウナラ!