Mod MelonLoader pour Dave the Diver permettant de supprimer l'augmentation du coût des améliorations de recettes. C'est le premier mod MelonLoader pour Dave the Diver à ma connaissance !
Dans le style de ce mod : https://www.nexusmods.com/davethediver/mods/19
Le jeu calcule normalement le nombre d'ingrédients nécessaires pour améliorer une recette en fonction de son niveau.
Ce mod intercepte ce calcul et force un coût fixe basé sur la quantité d'ingrédients d'origine de la recette.
Dans l'idée :
| Niveau | Jeu vanilla | Avec le mod |
|---|---|---|
| 1 → 2 | 1 | 1 |
| 2 → 3 | 2 | 1 |
| 3 → 4 | 4 | 1 |
| 4 → 5 | 8 | 1 |
| 5 → 6 | 16 | 1 |
- Dave the Diver
J'ai testé uniquement avec Steam sous Linux.
Sous Linux avec Steam, il faut backup /steamapps/compatdata/1868140/pfx/
Pour plus de détails, voir https://www.pcgamingwiki.com/wiki/Dave_the_Diver
Il existe un guide très complet ici : https://github.com/TLD-Mods/Linux_Proton_Guide
En résumé :
Téléchargez la version Linux de MelonLoader :
https://melonwiki.xyz/#/?id=automated-installation
Donnez les droits d'exécution au MelonLoader.Installer.Linux et lancez le.
Il détecte automatiquement les jeux Unity même s'ils tournent dans Proton donc il devrait lister Dave The Diver.
Il faut aussi ajouter les paramètres de lancement Steam qui sont fournis par MelonLoader : WINEDLLOVERRIDES="version=n,b" %command%
Lancez le jeu une première fois.
MelonLoader créera automatiquement plusieurs dossiers :
Dave The Diver/
├── MelonLoader/
├── Mods/
└── UserData/
Copiez :
FixedRecipeCost.dll
dans :
Dave The Diver/Mods/
Au démarrage, ouvrez :
MelonLoader/Latest.log
Vous devriez voir :
[Fixed Recipe Cost] Fixed Recipe Cost loaded
Supprimez simplement :
Dave The Diver/Mods/FixedRecipeCost.dll
Le but de cette section est de servir de tuto pour créer des mods MelonLoader. N'hésitez pas à fork et créer des PR !
Installez .NET depuis https://dotnet.microsoft.com/fr-fr/
Tout ce qui suit a été fait sous Windows.
$env:DOTNET_CLI_TELEMETRY_OPTOUT=1
dotnet new classlib -n FixedRecipeCost
cd FixedRecipeCost <TargetFramework>net472</TargetFramework>dotnet add package HarmonyXRécupérez MelonLoader.dll dans MelonLoader.x64.zip dans la release de MelonLoader.
Voir https://github.com/LavaGang/MelonLoader/releases
Ajouter
MelonLoader.dll
Dans :
Libs/
<Reference Include="MelonLoader">
<HintPath>.\Libs\MelonLoader.dll</HintPath>
</Reference>dotnet build -c ReleaseDes DLL seront générés dans :
bin/Release/net472/
Il n'y a que FixedRecipeCost.dll qui nous intéresse.
Le mod cible actuellement :
GameFormulaManager.RequiredIngredientsCount(
int level,
int originCount)La méthode qui est responsable du calcul du nombre d'ingrédients requis pour les améliorations de recettes.
Le patch Harmony remplace le calcul du coût par :
originCountafin de conserver un coût fixe pour tous les niveaux d'amélioration.
Les logs MelonLoader sont disponibles dans :
MelonLoader/Latest.log
Pour vérifier les patches Harmony :
MelonLoader/Logs/
Les travaux actuels reposent sur les classes identifiées dans le dump IL2CPP :
GameFormulaManager
CookStudyFormula
CookStudyFormulaData
FormulaContext.CookStudy
Pour obtenir un dump, il faut récupérer GameAssembly.dll et global-metadata.dat dans les fichiers du jeu.
On peut utiliser Il2CppDumper qui est opensource : https://github.com/Perfare/Il2CppDumper
Il existe aussi une version web Il2CppDumper en ligne ici https://il2cppdumper.com/
Le fichier produit le plus intéressant est dump.cs
Il contient les définitions des classes et méthodes à patcher.