Rechercher sur le blog

Recettes des artisanats

dimanche 23 juin 2013

[Mod] Tutoriel #1 : créer une nouvelle recette d'artisanat


Mise à jour le 04/08/13 : l'article n'est plus à jour car le système de codage a été totalement modifié. Je travail à sa modification.

A mesure que Don't Starve se met à jour au fil des patchs, il devient de plus en plus facile de créer des mods. De plus, Klei permet de quasiment modifier le jeu en son intégralité et même de créer des animations et des nouveaux modèles.

C'est pourquoi, je vous propose un premier tutoriel pour vous apprendre à créer votre propre mod ou simplement modifier un mod déjà existant.


Pour ce premier chapitre, nous allons voir comment créer une nouvelle recette d'artisanat et l'ajouter à un des onglets. Cependant, pour cette initiation, je me contenterai d'utiliser un objet déjà présent en jeu mais qui n'est pas accessible via l'artisanat. En effet, créer un nouvel objet nécessite l'élaboration d'une icône et d'un modèle animé ce qui est déjà plus complexe.

Voici les principales étapes :
  • Choisir un objet.
  • Lui assigner une description textuelle.
  • Définir les matières premières nécessaires à sa fabrication.
  • Définir son emplacement au sein des différents onglets.
  • Définir son tiers (nécessite rien, une Science Machine, Alchemy Engine, etc.)
L'avantage de prendre un objet préexistant est que vous disposez déjà d'une icône et d'un modèle. De plus, ses statistiques et autres mécaniques sont déjà implantés en jeu. Nous verrons dans un autre tutoriel comment réaliser une recette à partir d'un objet inédit.

Etape 1 : choisir son logiciel

Ici nul besoin de logiciels coûteux, il suffit d'avoir un éditeur de texte brut comme le Bloc Notes. Evitez les logiciels de traitement de texte comme Word ou Wordpad qui ont tendance à enrichir le texte inutilement.

Personnellement, j'utilise Notepad++ qui met en surbrillance les différents éléments du script facilitant la modification de ce dernier.



Etape 2 : choisir un objet

Pour l'exemple, je vais choisir le [Sac de Krampus] qui est un sac à dos donné par Krampus quand vous le tuez (1% de chance).



Une fois que vous avez choisi votre objet, il va falloir trouvé son nom de code au sein des fichiers du jeu. Pour vous faciliter la tache, voici une liste exhaustive (issu du mod Test Tool) de tous les objets du jeu comportant la correspondance nom en jeu / nom de code.

Voici un échantillon :

{text = "Flint", data = "flint"},
{text = "Gears", data = "gears"},
{text = "Gold Nugget", data = "goldnugget"},
{text = "Honeycomb", data = "honeycomb"},
{text = "Hounds Tooth", data = "houndstooth"},
{text = "Krampus Sack", data = "krampus_sack"},
{text = "Living Log", data = "livinglog"},
{text = "Log", data = "log"},
{text = "Marble", data = "marble"},

Le nom affiché en jeu est celui indiqué par text="".

Le nom de code dont vous avez besoin est celui indiqué par data="".

En outre, cette liste étant en anglais vous pouvez avoir des difficultés à trouver l'objet que vous cherchez si vous utilisez le patch FR. Dans ce cas, voici comment procéder :

1. Ouvrez le fichier "french.po" avec un éditeur de texte.

2. Cliquez sur "Editions" -> "Rechercher..." et saisissez le nom de l'objet que vous cherchez. Attention, celui-ci doit être IDENTIQUE à celui affiché en jeu, sinon la recherche n'aboutira pas.

3. Dans mon exemple, j'ai saisi "Sac de Krampus", voici le résultat :

msgctxt "STRINGS.NAMES.KRAMPUS_SACK"
msgid "Krampus Sack"
msgstr "Sac de Krampus"

C'est la deuxième ligne qui va vous donner le nom en anglais. Une fois celui-ci trouvé, retournez dans la liste des objets, et lancez une recherche. J'obtiens :

{text = "Krampus Sack", data = "krampus_sack"},

La donnée qui m'intéresse pour le mod est "krampus_sack" qui est le nom de code de l'objet.


Etape 3 : création du fichier

Maintenant, que nous avons choisi notre objet, nous allons pouvoir créer notre fichier du mod. Pour ce faire, créer un nouveau fichier avec votre éditeur de texte et copiez/collez ce script en-tête :

STRINGS = GLOBAL.STRINGS
RECIPETABS = GLOBAL.RECIPETABS
Recipe = GLOBAL.Recipe
Ingredient = GLOBAL.Ingredient

Ces lignes de codes sont la base invariable de votre mod et elles ne doivent figurer qu'une fois au sein du fichier et ce quel que soit le nombre d'objets que vous voulez ajouter.

Sautez une ligne et ajoutez cette ligne de code :

STRINGS.RECIPE_DESC.KRAMPUS_SACK = "A Legendary backpack."

Le texte en gris est la partie invariable alors que le texte en rouge est la variable que vous modifiez en fonction de votre objet. Le nom "KRAMPUS_SACK" est le nom de code de l'objet qui doit être ici inscrit en majuscule.

Le texte entre guillemets est la description textuelle de l'objet qui apparaît dans la fenêtre.


Vous pouvez utiliser le français pour la description mais certains accents ne sont pas pris en charge. De plus, votre fichier doit être enregistré avec l'encodage ANSI (cf. plus bas).

STRINGS.RECIPE_DESC.KRAMPUS_SACK = "Un sac légendaire."



Voici à quoi doit ressembler votre fichier à ce stade :




Etape 4 : création de la recette

Maintenant, nous allons créer la recette et l'intégrer dans un des onglets d'artisanat.

1. On commence par déclarer la recette :

Recipe( "krampus_sack", 

2. Maintenant, nous allons ajouter les ingrédients. Pour l'exemple, j'ai choisi cette recette :

     

3. A l'instar de l'objet que nous voulons créer, nous devons à nouveau trouver les noms de code de chaque ingrédient. Pour ce faire, procédez de la même manière qu'à l'étape 2.

En outre, si comme moi votre recette comporte des objets issus de l'artisanat, son nom de code devra être déniché dans le fichier "recipes.lua" (utilisez l'explorateur de Windows dans le dossier Don't Starve). Ce fichier peut être ouvert avec un éditeur de texte.

4. Voici donc la retranscription de ma recette :

{ Ingredient("sewing_kit", 1), Ingredient("rope", 1), Ingredient("papyrus", 4) }, 

Le chiffre que vous voyez est la quantité pour chaque ingrédient. Les parties en rouge sont les variables que vous modifiez.

5. Maintenant, nous allons placer notre recette dans un onglet, voici le script :

RECIPETABS.SURVIVAL

Comme pour les objets, les onglets ont des noms de code, voici la correspondance :

 = TOOLS
= LIGHT
= SURVIVAL
 = FARM
 = SCIENCE
= WAR
= TOWN
= REFINE
= MAGIC
= DRESS


Enfin, nous définissons la machine requise pour l'élaboration du prototype :

TECH.SCIENCE_TWO)

Voici les correspondance :

TECH.NONE = pas de machine requise.
TECH.SCIENCE_ONE = requiert une Science Machine.
TECH.SCIENCE_TWO = requiert un Alchemy Engine
TECH.MAGIC_ONE = requiert un Prestihatitator
TECH.MAGIC_TWO = requiert un Shadow Manipulator


Le chiffre correspond au tiers de la recette. Il existe cinq tiers allant de 0 à 4. Pour plus d'informations, consultez cet article.

6. La ligne de code finale donne donc :

Recipe( "krampus_sack", { Ingredient("sewing_kit", 1), Ingredient("rope", 1), Ingredient("papyrus", 4) }, RECIPETABS.SURVIVAL2)

7. Voici à quoi doit ressembler votre fichier :

STRINGS = GLOBAL.STRINGS
RECIPETABS = GLOBAL.RECIPETABS
Recipe = GLOBAL.Recipe
Ingredient = GLOBAL.Ingredient

STRINGS.RECIPE_DESC.KRAMPUS_SACK = "A Legendary backpack."

Recipe( "krampus_sack", { Ingredient("sewing_kit", 1), Ingredient("rope", 1), Ingredient("papyrus", 4) }, RECIPETABS.SURVIVALTECH.SCIENCE_TWO)


Etape 5 : finaliser le mod

Le script est désormais terminé, nous allons finaliser le mod.

1. Enregistrez votre fichier sous ce nom "modmain.lua". Si vous utilisez le Bloc Notes, dans la section "Type", choisissez "Tous les fichiers". Egalement, choisissez l'encodage ANSI.

2. Créer un nouveau dossier et nommez-le avec le nom de votre mod. Pour l'exemple, je vais choisir "SacKrampus".

3. Copiez/coller votre fichier "modmain.lua" dans le dossier que vous venez de créer. Voilà votre mod est terminé.


Etape 6 : tester son mod

Comme tout bon moddeur qui se respecte, vous devez tester votre mod. Voici comment procéder :

1. Copiez/coller votre dossier du mod dans ce répertoire :

Windows XP :

C:\Program Files\Steam\SteamApps\common\dont_starve\mods

Windows Vista/7 :

C:\Program Files (x86)\Steam\SteamApps\common\dont_starve\mods

2. Ouvrez le fichier "modsettings.lua" et ajoutez cette ligne de code :

ModManager:AddMod("SacKrampus")

Respectez les minuscules et majuscules.

3. Lancez le jeu et vérifiez si votre recette figure bien dans la liste. Selon le tiers choisi, il vous faudra peut-être un machine pour pouvoir l'afficher.

4. Personnellement, je vous conseil d'utiliser le mod Test Tool, qui vous permet d'afficher toutes les recettes en faisant CTRL+C et de fabriquer l'objet sans disposer des ressources.

Voici le résultat :


23 commentaires:

  1. Tutoriel #1 plutôt intéressant mais j’attends surtout l'élaboration d'une icône et d'un modèle animé qui comme tu l'as dit sont beaucoup plus complexes à faire et surement à expliquer. ;)
    En tout cas merci pour ce tutoriel.

    RépondreSupprimer
    Réponses
    1. La possibilité de créer des modèles est très récente mais je penche actuellement dessus.

      Supprimer
  2. Super intéressant merci!!
    PS: vous faite vraiment du super travaille sur ce site vous m'aidé beaucoup merci!!

    RépondreSupprimer
    Réponses
    1. Merci pour ton soutien, ça fait plaisir. :)

      Supprimer
  3. Merci, c'est super, comme d'hab :). J'ai d'ailleurs crée une recette, je mettrais le lien demain :D

    RépondreSupprimer
    Réponses
    1. Voilà le lien :http://forums.kleientertainment.com/showthread.php?22464-GearsMod

      Comme il est dit j'aimerai bien ajouté des objet/armure, mais comment faire ?

      Supprimer
  4. Perso j'ai conçu un début de mod avec plusieurs recettes, elles apparaissent manifestement bien dans les onglets pendant le jeu, mais quand je clique sur la flèche pour faire défiler la liste des recettes, le jeu plante. Peukwâ ? Quelqu'un aurait une réponse ?

    RépondreSupprimer
    Réponses
    1. Réponse à moi-même : le mod ne fonctionne pas si on souhaite fabriquer un objet qui ne peut pas figurer dans votre inventaire. Exemple : les décors de la Wooden Thing, les statues de Maxwell (si vous jouez avec the big boss et que vous voulez bâtir un temple à votre effigie, c'est cuit), les plantes des cavernes, les stalagmites, les créatures autres que la mandragore...
      De la même façon, il semble qu'il soit impossible de créer une recette permettant la fabrication d'un item existant déjà dans le même onglet (genre vous avez la recette créant le mur de pierre, vous voulez pondre une recette pour fabriquer le même item mais juste avec un caillou... Ben râpé).

      Dites-moi si je me trompe surtout. ^^

      Supprimer
  5. anonyme moi je ne peut metre aucun mod sur mon pc quand je vais dans programme file je ne trouve pas steam

    RépondreSupprimer
  6. je ne sais pas pour quoi j'ai mit anonyme au debut de mon message

    RépondreSupprimer
  7. mon pc est un windows vista professionel

    RépondreSupprimer
  8. Merci cela m'aide boucoup merci encore vous faite un excellant travaille.

    RépondreSupprimer
  9. Yeah merci beaucoup moi j'aimerais faire des mods donc cet article m'aide beaucoup !! De l'excellent travail comme d'habitude !! :)

    RépondreSupprimer
  10. Super tuto ! Mais au passage, pourquoi ce mod ne fonctionne-t-il pas avec des objets autres que ceux de la liste que tu donnes ?

    RépondreSupprimer
  11. Stupefiant, trés bien et presenté et trés bon site je te(vous) felicite ! :D
    en fait, t'est tout seul a administrer le site ? :)

    RépondreSupprimer
    Réponses
    1. Merci et oui je suis seul même si les commentaires des visiteurs m'aident beaucoup à améliorer le blog.

      Il faut que je mettes à jour le tuto car le système de mod a été modifié. Néanmoins le tuto est encore valable.

      Supprimer
  12. Pourquoi ça me dit que le mod est périmé ?

    RépondreSupprimer
    Réponses
    1. Le tuto n'est plus à jour, il faut que je le corrige intégralement.

      Supprimer
  13. Quand compte tu mettre le tuto a jour ?
    Je sais que tu as beaucoup de travail avec R of G mais cela fait plusieurs mois que je regarde régulièrement et c'est toujours pas à jour .
    Merci d'avance
    Sinon félicitations pour ton site j'adore ton travail continue !

    RépondreSupprimer
  14. Je ne trouve pas le fichier avec les noms. quelqu'un saurait ou chercher ?

    RépondreSupprimer
    Réponses
    1. je trouve meme pas de fichier don't starve le seul que j'ai c'est "DoNotStarve" et dedans y'a :

      save
      UpdaterCache
      log
      settings
      updater.settings

      les seuls que je peux ouvrir sont : save et UpdaterCache
      HELP :(

      Supprimer