Cossacks 3 (text)Mod Manager

Discussion in 'Modding' started by Lieutenant-Général, Oct 16, 2016.

  1. Lieutenant-Général

    Lieutenant-Général Active Member

    Dernière version:1.4.1
    Script python pour les curieux

    Avis aux moddder:Ce mod utilise un format spécifique de fichier qui peut être amené à évoluer. Vos mod ne seront donc pas forcément compatible avec toutes les versions de cet utilitaire.
    Bien entendu, je vous communiquerait toute modification.

    Présentation
    Salut!

    Modifier les fichiers de cossacks 3 est très peu pratique; il faut parfois modifier une ligne parmis des centaines, au risque d'oublier laquelle c'est. De plus, il est très grossiers d'écraser un fichier de plusieurs milliers de lignes dans le but d'en remplacer une ou deux, en plus de rendre votre mod incompatible avec tous autre modifiant le même fichier.

    C'est la raison d'être de cet utilitaire. Il vous permet de modifier / remplacer / ajouter / supprimer à loisir partie ou intégralité de fichiers.

    [​IMG]
    Changelogs:
    1.4.1

    -Amélioration de l'apparence
    -Correction d'un bug lors de la détection d'un mod invalide(merci à Vova Dumanskiy de l'avoir signalé)
    -Ajout de feed back en cas de mod invalide.
    -Maintenant, le fichier log.txt sauvegarde uniquement la dernière session
    -Maintenant, le programme vous préviendra si une nouvelle version d'un mod est détecté
    -Maintenant, le programme ne se relancera plus à chaque action

    1.4.0
    -Ajout d'une interface graphique!
    -Suppression de la vérification des fichiers, qui était peu efficace. Maintenant, il est conseillé de supprimer le dossier "c3mm" et de vérifier l'intégrité du cache (option steam) à chaque mise à jour.
    -Il n'est plus possible d'utiliser le programme en mode console.

    1.3.13

    >Oublie d'import, réglé
    >Correction d'un bug lors de l'utilisation de "" dans le nom du mod

    1.3.12

    >If you double-click on c3mm, the window will stay open and you can write in.
    >c3mm is now available in stand-alone version (work without python)

    1.3.11
    >Fix bugs

    1.3.10
    >New commands installs and uninstalls
    >New command install_all, which install all mods of mod folder
    >c3mm.json is most easy to read
    >Fields "remove_file", "add_file", "modify_file", "replace_file", are now optional
    >Fix some bugs

    1.3.9

    >Now program add signature only on .script file

    1.3.8

    >Fix bugs

    1.3.7
    >Fix bugs

    1.3.6
    >New command "info"
    No new features, but a lot of bugs fixed

    1.3.5

    >Change field name. There are now
    -"modify_file" in place of "file"
    -"replace_file" in place of "otherfile"
    -"add_file" in place of "addfile"
    (you can use old name, but isn't recommended)
    >Add a new field "remove_file"
    >Improve error messages.

    Warning : "remove_file" contain a list, not a dic:
    Code:
    "remove_file":[
        "file1",
        "file2",
        "file3"
    ]
    1.3.4

    >Fix some bug
    >You can now add files with field "addfile"

    1.3.3
    >Now, mod file has a field 'otherfile'. Use this to replace a file by an other. Two mods can't replace the same file

    To use :
    Code:
    "otherfile":
    {
        "music/drummer.ogg":"pouet.ogg"
    }
    In this exemple, "pouet.ogg" must be placed in "mod" folder.
    Hint : content of file will be modified but name of file "music/drummer.ogg" don't change

    All 1.3.2 mods and installations are compatible with c3mm.py 1.3.3

    1.3.2

    >Now, mods have a field "author"
    >Now, program check mod format to avoid crash in case of bad-writing mod
    >Add a new command "valid_mod" for modder. Type python c3mm.py valid_mod modname
    >In some case, files aren't saved. It is now fix.

    Hint for modder : Format mod could change in the future (i hope no, but...), so i ask the modder to give c3mm version compatible with her mods.
    Of course, i tell you all format modifications.

    1.3.1
    >Now, if a file has been modified since last c3mm launch, program check if mods are corrupted before uninstall it and not uninstall it by defaut.
    >Add some commentary in modded file to be sure modded lines are uniques.

    1.3.0
    > Re-writing the script, simplify and normalize data use and adding some
    commentary
    > Now mods and configs files are stored in .json files
    > Now mods are check before install
    > Now give just the name of the mod without extension (mod in place of mod.json)
    > Patching file function are modified to save file in case of an unexpected error during patching
    > If the program failed to uninstall a mod, it will restore all corrupted files
    > New command uninstall_all
    > New command giveall, which print all installed mod
    > Now logs are saved in "c3mm/logs.txt"


    Si jamais vous rencontrez un bug, postez ici:
    >Une prise d'écran de la console
    >Une prise d'écran du répertoire de cossacks3
    >Une prise d'écran du répertoire "mod"

    Lien du post original (qui sera mis à jour plus rapidement)
     
    Last edited: Nov 5, 2016
  2. Lieutenant-Général

    Lieutenant-Général Active Member

    Documentation

    A l'usage des joueurs

    Copier le fichier "c3mm.exe" dans votre dossiers cossacks3 (program file/steam/steamapps/common)
    Créez un dossier mod et copiez-y vos mods au format .json
    Pour installer un mod, double-cliquer sur "c3mm.exe" et dans la fenêtre qui s'ouvre écrivez 'install nom_du_mod"

    A l'usage des modders
    Creer un fichier mod.json
    Ouvrir ce fichier, puis écrire dedans:
    Code:
    {
    "name":"le nom de ton mod",
    "version":"numéros de version",
    "info":"ce que tu veux!",
    "author":"ton nom/pseudo...",
    "modify_file":{},
    "add_file":{},
    "replace_file":{},
    "remove_file":[]
    }
    Ensuite, si vous voulez remplacer le texte "blabla" du fichier X par "blablabla", et le texte "truc" par machin, en face de "modify_file", écrivez:
    Code:
    "modify_file":{
        "X":{
             "blabla":blablabla",
              "truc":"machin"
        }
    }
    Vous pouvez mettre du texte de plusieurs lignes à condition de remplacer les sauts à la ligne par "\n".

    Maintenant, si vous voulez ajouter un nouveau fichier que vous appellerez Y à l'emplacement script/lib:
    Code:
    "add_file":{
         "script/lib/Y":"Y'
    }
    
    (En supposant que le fichier Y soit distribué avec le mod)

    Enfin, si vous voulez remplacer le fichier "bidule" par le fichier "megabidule" (megabidule est distribué avec ton mod):
    Code:
    "replace_file":{
         "bidule":"megabidule"
    }
    
    Une fois que vous avez écrit toutes les modifications, copiez ce fichier mod.json dans le dossier "mod" du répertoire de cossacks (il faudra peut-être le créer) avec tous les fichiers liés.
    Retournez dans le répertoire de cossacks et copie le mod manager (gui_c3mm.exe) dedans.

    Structures of mod files
    All mods stored in .json files.
    A strucure of a mod is:
    Code:
    {
       "name":"name of your mod",
       "version":"version of your mod",
       "info":"write what you want!',
       "author":"name of the mod author",
    
       "modify_file":dictionary of (filename => dictionary of (oldtext => newtext)),
       "add_file":dictionary of (paste_location => file_to_past_location),
       "remove_file":list of filename,
       "replace_file":dictionary of (oldfile => newfile),
    }
    Hint: dictionary syntax:
    Code:
    {
       key1:value1,
       key2:value2
    }
    Hint: list syntax
    Code:
    [elem1, elem2, elem3]
    C3mm working:
    Code:
    for file in modify_file do
        for oldtext in modify_file[file] do
            replace oldtext by newtext
        endfor
    endfor
    
    for file in add_file do
        copy file_to_past_location to paste_location
    endfor
    
    for file in replace_file do
        replace oldfile by newfile
    endfor
    
    for file in remove_file do
        remove file
    endfor
     
    Last edited: Nov 3, 2016
  3. Lieutenant-Général

    Lieutenant-Général Active Member

    1.3.13
    >Oublie d'import, réglé
    >Correction d'un bug lors de l'utilisation de "" dans le nom du mod
     
  4. Lieutenant-Général

    Lieutenant-Général Active Member

    Mise à jour de la liste des mods.
     
  5. Lieutenant-Général

    Lieutenant-Général Active Member

    A venir:
    [​IMG]
     
    Foeurdr likes this.
  6. Lieutenant-Général

    Lieutenant-Général Active Member

    1.4.0
    -Ajout d'une interface graphique!
    -Suppression de la vérification des fichiers, qui était peu efficace. Maintenant, il est conseillé de supprimer le dossier "c3mm" et de vérifier l'intégrité du cache (option steam) à chaque mise à jour.
    -Il n'est plus possible d'utiliser le programme en mode console.
     
  7. Lieutenant-Général

    Lieutenant-Général Active Member

    1.4.1
    -Amélioration de l'apparence
    -Correction d'un bug lors de la détection d'un mod invalide(merci à Vova Dumanskiy de l'avoir signalé)
    -Ajout de feed back en cas de mod invalide.
    -Maintenant, le fichier log.txt sauvegarde uniquement la dernière session
    -Maintenant, le programme vous préviendra si une nouvelle version d'un mod est détecté
    -Maintenant, le programme ne se relancera plus à chaque action
     
  8. Fate

    Fate Member

    Je suis le seul chez qui l'ancien Mod Manager (celui de ce topic donc) ne marche pas du tout ?? En fait le programme se lance bien et marque qu'il installe bien les mods, mais une fois le jeu lancé, aucune modification n'apparait.
    Pour info j'ai essayé avec les mods "Day and night" et "More gamespeed modes", aucun effet.
     
  9. Lieutenant-Général

    Lieutenant-Général Active Member

    Tu es sûr que tu n'as aucun mod installé via le mod manager officiel?
     
  10. Fate

    Fate Member

    Je les ai désactivés, mais toujours rien.
     
  11. Lieutenant-Général

    Lieutenant-Général Active Member

    Je ne vois vraiment pas ce qui ne vas pas...Je vais faire quelques tests.
     
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice