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
所以當他進入存檔開始檢查成就狀態時, 他將解鎖每個成就!
由於日後可能因遊戲更新而有所改變, 大家還是要自己研究一下原理唷