FR | Réduire la taille de sa mission

Topic created · 19 Posts · 328 Views
  • Ce tutoriel vous permettera de déplacer vos textures et sons de votre mission vers un mod
    Votre serveur doit être un serveur moddé !


    Pour cela le tutoriel sera composé de plusieurs parties:

    • 1 - Créer un mod
    • 2 - Mettre des textures dans un mod
    • 3 - Mettre des sons dans un mod
    • 4 - Publier le mod

    1 - Création du mod

    • Crééz un dossier ou vous le souhaitez et ayant le nom de votre choix
    • Dans ce dossier, creez un fichier config.cpp et coller ce code dedans :

    2 - Mettre des textures dans le mod

    • Déplacez tout vos fichiers textures (.png, .jpg, .paa) de votre mission vers le dossier de votre mod
    • A l'aide du logiciel de modification de code que vous utilisez (tutoriel d'utilisation de Notepad++, Sublime Text ou Atom), effectuez une recherche dans le dossier de votre mission et dans votre fichier mission.sqm que vous aurez au préalable enregistré au format non-binarisé à la sortie de l'éditeur de Arma III pour rechercher tout les chemins vers les anciennes textures. Pour ce faire vous pouvez rechercher par exemple le nom du dossier dans lequel les textures étaient et ajouter un \ à la fin
    • Changer tout les chemins vers vos textures pour qu'ils pointent vers le bon fichier qui sera maintenant dans un mod, voici un exemple :
    "icons\ico_defibrillator.paa"
    

    deviendra après modification si le nom de votre dossier mod est mon_mod et que le fichier ico_defibrillator.paa est situé directement dans le dossier de votre mod :

    "\mon_mod\ico_defibrillator.paa"
    
    • Petite spécificité, si vous avez certains produit du site The Programmer, il est possible que certains chemins vers les textures soient situés dans les fichiers .pbo dans @The_Programmer/addons. Il faudra les convertir en dossier avec Pbo Manager (tutoriel d'installation) puis répéter l'opération de cherche dans ces dossiers, remplacez les chemins puis les re-convertir au format .pbo avec Pbo Manager

    3 - Mettre des sons dans le mod

    • Déplacez tout vos fichier sons (.ogg) de votre mission vers le dossier de votre mod
    • Dans le fichier description.ext dans votre mission coupez (<=> copier puis supprimer) la class CfgSounds qui se présente comme ceci par exemple :
    class CfgSounds {
        sounds[] = {};
        class sirenLong {
            name = "sirenLong";
            sound[] = {"\sounds\sirenLong.ogg", 1.0, 1};
            titles[] = {};
        };
    
        class medicSiren {
            name = "medicSiren";
            sound[] = {"\sounds\medicSiren.ogg", 1.0, 1};
            titles[] = {};
        };
    
        class tazerSound {
            name = "tazerSound";
            sound[] = {"\sounds\tazer.ogg", 0.5, 1};
            titles[] = {};
        };
    [...]
    };
    
    

    N'oubliez pas que chaque accolade ouverte doit être fermée donc qu'il y a autant de { que de }, si il en manque vous n'avez pas du copier la class entière !

    • Dans le fichier config.cpp dans le dossier de votre mod coller ce que vous avez copié à la fin du fichier après avoir ajouté :
    class CfgPatches {
        class mod_mod {
            units[] = {};
            weapons[] = {};
            requiredVersion = 0.1;
            requiredAddons[] = {"A3_Characters_F","A3_Ui_F"};
        };
    };
    

    Ici remplacez "mon_mod" par le nom de votre dossier mod

    • Changer tout les chemins vers vos sons pour qu'ils pointent vers le bon fichier qui sera maintenant dans un mod, voici un exemple :
    sound[] = {"\sounds\tazer.ogg", 0.5, 1};
    

    deviendra après modification si le nom de votre dossier mod est mon_mod et que le fichier tazer.ogg est situé directement dans le dossier de votre mod :

    sound[] = {"\mon_mod\tazer.ogg", 0.5, 1};
    
    • Petite spécificité, si vous avez certains produit du site The Programmer, il est possible que vous ayez dans votre class CfgSounds des include. Si c'est le cas, rendez vous dans le fichier que cible le include à partir de votre mission et remplacez le include par le contenu du fichier qu'il cible. Vous pouvez maintenant changer les chemin vers les sons correctement.

    4 - Publication du mod

    • A l'aide de Pbo Manager (tutoriel d'installation) mettez votre dossier en fichier .pbo
    • Ajoutez ce fichier dans les mods de votre serveur et ceux de votre workshop/launcher et mettez le à jour de sorte que tout les joueurs de votre serveur aient ce mod lors de leur connection
    • Conseil pour allégez votre mission, enregistrez le fichier mission.sqm en binarisé à la sortie de l'éditeur de Arma (une case à cocher lors de l'enregistrement)
  • Binarizer les SQM sa fait gagner en taille 😉
    Supprimer les langues inutiles dans le stringlabe aussi

  • Bonjour, pour les sons il faut mettre un @ et non un / pour que ça fonctionne

    NOTE: Since Arma 3 v1.49.131710 it is possible to define AddOn sounds in mission config. In order to make engine look for the sound in AddOn, the sound path must start with @ (instead of \) for example:
    
    class CfgSounds
    {
    	sounds[] = {};
    	class addonsound1
    	{
    		name		= "sound from addon";
    		// start path to sound file in AddOn with @
    		sound[]		= { "@a3\Ui_F_Curator\Data\Sound\CfgSound\visionMode", 0.8, 1, 100 };
    		titles[]	= { 0, "" };
    	};
    };
    
    
    
    

    (https://community.bistudio.com/wiki/Description.ext)

  • Pas forcément, cela dépend où tu définies les sons :

    • Si c'est depuis ta mission et que le son est dans un addon tu peux mettre un @
    • Si c'est depuis le config.cpp de l'addon tu mets un \
  • ha oui mais je n'avais pas compris le tutos comme ça desolé

  • @Maxence
    Hello Maxence, il n'y a pas le code à mettre dans le config.cpp dans la partie création de mod es-que, c'est normal ?

  • @Maloma Dans le config.cpp du mod il y a ce que tu as enlevé de ton description.ext (la class CfgSounds), si j'ai bien compris la question 😋

  • @Maxence
    Mais si je laisse tout dans le description.ext je ne suis pas obliger de faire un config.cpp ?

  • @Maloma Techniquement dans le tuto tu dois déplacer les class du description.ext dans le config.cpp où se trouve les sons

  • Mais quand je le fais soit je n'entends plus les sons en jeu soit le serveur ne démarre même plus.
    Donc je crois que je n'ai pas bien compris la partie de ce tuto es-que quelqu'un pourrai me donné un exemple ?

    Mon config.cpp

    class CfgSounds {
        sounds[] = {};
        class SirenLong {
            name = "SirenLong";
            sound[] = {"\Vulcanlife\sounds\Siren_Long.ogg", 1.0, 1};
            titles[] = {};
        };
    
        class medicSiren {
            name = "medicSiren";
            sound[] = {"\Vulcanlife\sounds\medic_siren.ogg", 1.0, 1};
            titles[] = {};
        };
    
        class tazersound {
            name = "Tazersound";
            sound[] = {"\Vulcanlife\sounds\tazer.ogg", 0.25, 1};
            titles[] = {};
        };
    
        class flashbang {
            name = "flashbang";
            sound[] = {"\Vulcanlife\sounds\flashbang.ogg", 1.0, 1};
            titles[] = {};
        };
    
        class mining {
            name = "mining";
            sound[] = {"\Vulcanlife\sounds\mining.ogg", 1.0, 1};
            titles[] = {};
        };
    
        class harvest {
            name = "harvest";
            sound[] = {"\Vulcanlife\sounds\harvest.ogg", 1.0, 1};
            titles[] = {};
        };
    
        class LockCarSound {
            name = "LockCarSound";
            sound[] = {"\Vulcanlife\sounds\car_lock.ogg", 0.25, 1};
            titles[] = {};
        };
    
        class UnlockCarSound {
            name = "UnlockCarSound";
            sound[] = {"\Vulcanlife\sounds\unlock.ogg", 0.25, 1};
            titles[] = {};
        };
    };
    
  • Tu as bien déplacer les fichiers son également (.ogg) ? Tu peux nous envoyer ton description.ext final ?

  • @Maxence
    Oui c'est bien des ".ogg"

    disableChannels[]={0,1,2};
    
    #include "CfgRemoteExec.hpp"
    #include "dialog\MasterHandler.hpp"
    #include "Config_Master.hpp"
    #include "infiSTAR_AdminMenu.hpp"
    #include "The-Programmer\theprogrammer_dialog_master.cpp"
    #include "scripts\autosave\Master.hpp"
    
    author = "Frank Baker";
    onLoadName = "Vulcanlife";
    
    class CfgServer {
        DatabaseName = "altislife"; //Config name that'll be grep in the extdb-conf.ini. Default: [altislife]
        DebugMode = 0; //Enable many server/hc debugging logs. Default: 0 (1 = Enabled / 0 = Disabled)
        HeadlessSupport = 0; //Enable/Disable Headless client support. Default: 1 (1 = Enabled / 0 = Disabled)
        /*
        Enabled: When HeadlessSupport is set to 1 (enabled), the server will run without fault when no Headless Client is connected. However, it will support the Headless Client if you choose to connect one.
        Disabled: If HeadlessSupport is set to 0 (disabled), the connection of a Headless Client will make no difference. This option will increase server performance a TINY but negligible amount.
        */
    };
    
    class RscTitles {
        #include "dialog\progress.hpp"
        #include "dialog\hud_nameTags.hpp"
        #include "dialog\hud_stats.hpp"
    	#include "The-Programmer\GPS\RscTitles.hpp" 
    };
    
    class CfgFunctions {
        #include "Functions.hpp"
    };
    
    class CfgSounds {
        sounds[] = {};
    	#include "The-Programmer\Iphone_X\Sounds.hpp"
    	#include "The-Programmer\EffetsEcran\scripts\soundsSelect.sqf"
    };
    
    class CfgDebriefing {
        class NotWhitelisted {
            title = "$STR_NotWhitelisted_Title";
            subtitle = "$STR_NotWhitelisted_SubTitle";
            description = "$STR_NotWhitelisted_Descript";
            pictureBackground = "";
            picture = "";
            pictureColor[] = {0,0.3,0.6,1};
        };
    
        class Blacklisted {
            title = "$STR_Blacklisted_Title";
            subtitle = "$STR_Blacklisted_SubTitle";
            description = "$STR_Blacklisted_Descript";
            pictureBackground = "";
            picture = "";
            pictureColor[] = {0,0.3,0.6,1};
        };
    
        class SpyGlass {
            title = $STR_SpyDetect_Title;
            subTitle = $STR_SpyDetect_SubTitle;
            description = $STR_SpyDetect_Descript;
            pictureBackground = "";
            picture = "";
            pictureColor[] = {0,0.3,0.6,1};
        };
    	class kick {title = "Global banned";description = "You're not allowed to join this server cause you're banned by the-programmer.com";}; 
    	class sonnerie {name = "sonnerie";sound[] = {"The-Programmer\Phone\sons\sonnerie.ogg", 1, 1, 5};titles[] = {};     };
    };
    
    class CfgNotifications {
    	class restart
        {
        	title = "RESTART";
        	iconPicture = "\A3\ui_f\data\map\mapcontrol\taskIcon_ca.paa";
        	color[] = {0,0.8,0,1};
        	description = "%1";
        	duration = 10;
        	priority = 6;
        };  
        class MedicalRequestEmerg {
            title = "$STR_MedicalRequestEmerg_Title";
            iconPicture = "\A3\ui_f\data\map\mapcontrol\taskIcon_ca.paa";
            description = "%1";
            duration = 5;
            priority = 7;
        };
    
        class DeliveryAssigned {
            title = "$STR_DeliveryAssigned_Title";
            iconPicture = "\A3\ui_f\data\map\mapcontrol\taskIcon_ca.paa";
            description = "%1";
            duration = 10;
            priority = 7;
        };
    
        class DeliveryFailed {
            title = "$STR_DeliveryFailed_Title";
            iconPicture = "\A3\ui_f\data\map\mapcontrol\taskiconfailed_ca.paa";
            description = "%1";
            duration = 7;
            priority = 7;
        };
    
        class DeliverySucceeded {
            title = "$STR_DeliverySucceeded_Title";
            iconPicture = "\A3\ui_f\data\map\mapcontrol\taskIcondone_ca.paa";
            description = "%1";
            duration = 6;
            priority = 6;
        };
    
        class TextMessage {
            title = "$STR_TextMessage_Title";
            iconPicture = "icons\ico_messageNew.paa";
            description = "%1";
            duration = 10;
            priority = 6;
        };
    
        class PoliceDispatch {
            title = "$STR_PoliceDispatch_Title";
            iconPicture = "icons\ico_messagePolice.paa";
            description = "%1";
            duration = 10;
            priority = 6;
        };
    
        class AdminDispatch {
            title = "$STR_AdminDispatch_Title";
            iconPicture = "icons\ico_messageAdmin.paa";
            description = "%1";
            duration = 10;
            priority = 6;
        };
    
        class AdminMessage {
            title = "$STR_AdminMessage_Title";
            iconPicture = "icons\ico_messageAdmin.paa";
            description = "%1";
            duration = 10;
            priority = 5;
        };
    };
    
  • Avec quel son tu as testé ?
    Par contre tu as cette ligne qui devrait être dans la class CfgSounds mais qui n'est pas au bon endroit :

    class sonnerie {name = "sonnerie";sound[] = {"The-Programmer\Phone\sons\sonnerie.ogg", 1, 1, 5};titles[] = {};     };
    
  • @Maxence
    J'ai testé avec les sirènes je ne les entendais pas et avec le verrouillage et déverrouillage des véhicules

  • @Maloma Est-ce que tu pourrais envoyer ton mod ?

  • @Maxence
    Voilà le mod

  • @Maloma Je vais essayer avec ton mod tout m'as l'air bon pourtant 😓

  • @Maloma Je viens de trouver la solution !
    Il manque tout en haut de ton config.cpp de ton mod :

    class CfgPatches {
        class Vulcanlife {
            units[] = {};
            weapons[] = {};
            requiredVersion = 0.1;
            requiredAddons[] = {"A3_Characters_F","A3_Ui_F"};
        };
    };
    

    J'avais oublié de l'ajouter dans le tutoriel, je vais l'update 🙂

  • @Maxence
    Niquel merci Maxence tout fonctionne comme sur des roulettes