Last updated on

Hader 全成就一秒全獲得 All Achievements


首先找到遊戲所在位置,可至steam右鍵遊戲找到遊戲目錄, 並且找到Hades/Content/Scripts這個目錄

在Scripts裡面有許多遊戲資料可自由修改, 修改後僅需重新讀檔即可生效 不須重開遊戲

我們找到AchievementLogic.lua這個文件

我們可以在裡面看到CheckProgressAchievements這個func

其中我們可以看到這段原始代碼

for achievementName, achievementData in pairs( GameData.AchievementData ) do

        if not achievementData.DebugOnly and not SessionAchivementUnlocks[achievementName] then

            —DebugPrint({ Text=“CHECK ACHIEVEMENT: “..achievementName })

            if achievementData.CompleteGameStateRequirements ~= nil and IsGameStateEligible( CurrentRun, achievementData, achievementData.CompleteGameStateRequirements ) then

                — Completed

                UnlockAchievement({ Name = achievementName })

                —DebugPrint({ Text=“ACHIEVEMENT UNLOCKED: “..achievementName })

                SessionAchivementUnlocks[achievementName] = true

                wait( 0.5, threadName )

            else

                wait( 0.02, threadName ) — Distribute workload over frames

            end

        end

    end

讓我們改成以下內容並存檔

for achievementName, achievementData in pairs( GameData.AchievementData ) do

        if not achievementData.DebugOnly and not SessionAchivementUnlocks[achievementName] then

            —DebugPrint({ Text=“CHECK ACHIEVEMENT: “..achievementName })

            — Completed

            UnlockAchievement({ Name = achievementName })

            DebugPrint({ Text=“ACHIEVEMENT UNLOCKED: “..achievementName })

            —SivessionAchementUnlocks[achievementName] = true

            wait( 0.5, threadName )

        end

    end

簡單來說只是把其中的判定式給刪除了而已 

 if achievementData.CompleteGameStateRequirements ~= nil and IsGameStateEligible( CurrentRun, achievementData, achievementData.CompleteGameStateRequirements ) then

所以當他進入存檔開始檢查成就狀態時, 他將解鎖每個成就!

由於日後可能因遊戲更新而有所改變, 大家還是要自己研究一下原理唷