猫様の下僕姉弟の生活

猫様とゲームとコスメ

【Hades 】攻略 ソースコードから読み解くハデスー釣り編ー

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の操作も試してみましたが、こちらはうまくいきませんでした

渡したリスト情報を元にランダムで結果を返す汎用メソッドがあるみたいですが、そこを見つけられなかったのが理由です

f:id:kamiya11:20201018013456j:plain

 

「Scyllascion」をシェフに渡してみたところ、しっかりと3000ジェム貰うことに成功しました

そして本データとはサヨウナラ!

f:id:kamiya11:20201018014639j:plain

 

www.geboku-kyoudai.com