• Comment avoir un Hud | Compatible 5.0


    Bonjour, aujourd’hui je vous fait un tuto pour avoir un jolie hud compatible 4.0 -> 5.0

    Je tiens a dire que ce tuto n’est pas de moi mais je le réadaptes pour altisdev ;)

    Repentz https://www.altisliferpg.com/topic/3412-professional-looking-hud/

    Tout d’abord voici un aperçu du hud : text alternatif

    Donc tout de suite commençons le tutoriel:

    1 :Vous allez dans dialog/hud_stats.hpp et vous remplacer par sa:

    //---------------------------------
    //By Repentz
    //---------------------------------
    
    #define INFINITE 1e+1000
    #define IDC_LIFE_BAR_FOOD 2200
    #define IDC_LIFE_BAR_FOOD_RING 3200
    #define IDC_LIFE_BAR_WATER 2201
    #define IDC_LIFE_BAR_WATER_RING 3201
    #define IDC_LIFE_BAR_HEALTH 2202
    #define IDC_LIFE_BAR_HEALTH_RING 3202
    //#define IDC_LIFE_BAR_POOP 4202
    #define IDC_LIFE_BAR_Speaker 3007
    #define IDC_LIFE_BAR_SeatBelt 4203
    
    
    class playerHUD {
    	idd = -1;
    	duration = INFINITE;
    	movingEnable = 0;
    	fadein = 0;
    	fadeout = 0;
    	name = "playerHUD";
    	onLoad = "uiNamespace setVariable ['playerHUD',_this select 0]";
    	objects[] = {};
    		controls[] = {
    		LIFE_BAR_FOOD_RING,
    		LIFE_BAR_WATER_RING,
    		LIFE_BAR_HEALTH_RING,
    		LIFE_BAR_Speaker,
    		LIFE_BAR_SeatBelt
    	};
    
    		class LIFE_BAR_SeatBelt: Life_RscPicture
    		{
    			idc = IDC_LIFE_BAR_SeatBelt;
    			text = "";
    			x = 0.952292 * safezoneW + safezoneX;
    			y = 0.574333 * safezoneH + safezoneY;
    			w = 0.0331042 * safezoneW;
    			h = 0.0589743 * safezoneH;
    		};
    		class LIFE_BAR_Speaker: Life_RscPicture
    		{
    			idc = IDC_LIFE_BAR_Speaker;
    			text = "";
    			x = 0.952292 * safezoneW + safezoneX;
    			y = 0.640333 * safezoneH + safezoneY;
    			w = 0.0331042 * safezoneW;
    			h = 0.0589743 * safezoneH;
    		};
    		class LIFE_BAR_HEALTH_RING: Life_RscPicture
    		{
    			idc = IDC_LIFE_BAR_HEALTH_RING;
    			text = "";
    			x = 0.952292 * safezoneW + safezoneX;
    			y = 0.706333 * safezoneH + safezoneY;
    			w = 0.0331042 * safezoneW;
    			h = 0.0589743 * safezoneH;
    		};
    		class LIFE_BAR_FOOD_RING: Life_RscPicture
    		{
    			idc = IDC_LIFE_BAR_FOOD_RING;
    			text = "";
    			x = 0.952292 * safezoneW + safezoneX;
    			y = 0.772333 * safezoneH + safezoneY;
    			w = 0.0331042 * safezoneW;
    			h = 0.0589743 * safezoneH;
    		};
    		class LIFE_BAR_WATER_RING: Life_RscPicture
    		{
    			idc = IDC_LIFE_BAR_WATER_RING;
    			text = "";
    			x = 0.952292 * safezoneW + safezoneX;
    			y = 0.838333 * safezoneH + safezoneY;
    			w = 0.0331042 * safezoneW;
    			h = 0.0589743 * safezoneH;
    		};
    };
    

    2 Dans le fichier Core\Functions\Fn_HudUpdate.sqf et vous remplacez par sa:

    #include "..\..\script_macros.hpp"
    
    //---------------------------------
    //By Repentz 
    //---------------------------------
    
    
    #define INFINITE 1e+1000
    #define IDC_LIFE_BAR_FOOD 2200
    #define IDC_LIFE_BAR_FOOD_RING 3200
    #define IDC_LIFE_BAR_WATER 2201
    #define IDC_LIFE_BAR_WATER_RING 3201
    #define IDC_LIFE_BAR_HEALTH 2202
    #define IDC_LIFE_BAR_HEALTH_RING 3202
    #define IDC_LIFE_BAR_Speaker 3007
    #define IDC_LIFE_BAR_SeatBelt 4203
    
    disableSerialization;
    if(isNull LIFEdisplay) then {[] call life_fnc_hudSetup;};
    
    //[LIFE_ID_PlayerTags,"onEachFrame"] call BIS_fnc_removeStackedEventHandler;
    LIFE_ID_PlayerTags = ["LIFE_PlayerTags","onEachFrame","life_fnc_playerTags"] call BIS_fnc_addStackedEventHandler;
    
    if(!isNil "life_seatbelt") then {
        if ( vehicle player != player ) then {
            if(life_seatbelt) then {
                LIFEctrl(IDC_LIFE_BAR_SeatBelt) ctrlSetText "VindicateAssets\images\textures\HUD\seatbeltOn.paa";
            } else {
                LIFEctrl(IDC_LIFE_BAR_SeatBelt) ctrlSetText "VindicateAssets\images\textures\HUD\seatbeltOff.paa";
            };
        } else {
            LIFEctrl(IDC_LIFE_BAR_SeatBelt) ctrlSetText "";
        };
    };
    
    if(!isNil "life_fadeSound") then
    {
    	if(life_fadeSound) then
    	{
    		LIFEctrl(IDC_LIFE_BAR_Speaker) ctrlSetText "VindicateAssets\images\textures\HUD\earplugsY.paa";
    	} else {
    		LIFEctrl(IDC_LIFE_BAR_Speaker) ctrlSetText "VindicateAssets\images\textures\HUD\earplugsN.paa";
    	};
    };
    
    if(!isNil "life_thirst") then
    {
    	if (life_thirst <= 100) then
    	{
    		LIFEctrl(IDC_LIFE_BAR_WATER_RING) ctrlSetText "VindicateAssets\images\textures\HUD\water0.paa";
    	};
    
    	if (life_thirst <= 90) then
    	{
    		LIFEctrl(IDC_LIFE_BAR_WATER_RING) ctrlSetText "VindicateAssets\images\textures\HUD\water1.paa";
    	};
    
    	if (life_thirst <= 80) then
    	{
    		LIFEctrl(IDC_LIFE_BAR_WATER_RING) ctrlSetText "VindicateAssets\images\textures\HUD\water2.paa";
    	};
    
    	if (life_thirst <= 70) then
    	{
    		LIFEctrl(IDC_LIFE_BAR_WATER_RING) ctrlSetText "VindicateAssets\images\textures\HUD\water3.paa";
    	};
    
    	if (life_thirst <= 60) then
    	{
    		LIFEctrl(IDC_LIFE_BAR_WATER_RING) ctrlSetText "VindicateAssets\images\textures\HUD\water4.paa";
    	};
    
    	if (life_thirst <= 50) then
    	{
    		LIFEctrl(IDC_LIFE_BAR_WATER_RING) ctrlSetText "VindicateAssets\images\textures\HUD\water5.paa";
    	};
    
    	if (life_thirst <= 40) then
    	{
    		LIFEctrl(IDC_LIFE_BAR_WATER_RING) ctrlSetText "VindicateAssets\images\textures\HUD\water6.paa";
    	};
    
    	if (life_thirst <= 30) then
    	{
    		LIFEctrl(IDC_LIFE_BAR_WATER_RING) ctrlSetText "VindicateAssets\images\textures\HUD\water7.paa";
    	};
    
    	if (life_thirst <= 20) then
    	{
    		LIFEctrl(IDC_LIFE_BAR_WATER_RING) ctrlSetText "VindicateAssets\images\textures\HUD\water8.paa";
    	};
    
    	if (life_thirst <= 10) then
    	{
    		LIFEctrl(IDC_LIFE_BAR_WATER_RING) ctrlSetText "VindicateAssets\images\textures\HUD\water9.paa";
    	};
    
    	if (life_thirst <= 0) then
    	{
    		LIFEctrl(IDC_LIFE_BAR_WATER_RING) ctrlSetText "VindicateAssets\images\textures\HUD\water10.paa";
    	};
    };
    
    if (damage player >= 0) then
    {
    	LIFEctrl(IDC_LIFE_BAR_HEALTH_RING) ctrlSetText "VindicateAssets\images\textures\HUD\health0.paa";
    };
    
    if (damage player >= 0.01) then
    {
    	LIFEctrl(IDC_LIFE_BAR_HEALTH_RING) ctrlSetText "VindicateAssets\images\textures\HUD\health1.paa";
    };
    
    if (damage player >= 0.02) then
    {
    	LIFEctrl(IDC_LIFE_BAR_HEALTH_RING) ctrlSetText "VindicateAssets\images\textures\HUD\health2.paa";
    };
    
    if (damage player >= 0.03) then
    {
    	LIFEctrl(IDC_LIFE_BAR_HEALTH_RING) ctrlSetText "VindicateAssets\images\textures\HUD\health3.paa";
    };
    
    if (damage player >= 0.07) then
    {
    	LIFEctrl(IDC_LIFE_BAR_HEALTH_RING) ctrlSetText "VindicateAssets\images\textures\HUD\health4.paa";
    };
    
    if (damage player >= 0.13) then
    {
    	LIFEctrl(IDC_LIFE_BAR_HEALTH_RING) ctrlSetText "VindicateAssets\images\textures\HUD\health5.paa";
    };
    
    if (damage player >= 0.2) then
    {
    	LIFEctrl(IDC_LIFE_BAR_HEALTH_RING) ctrlSetText "VindicateAssets\images\textures\HUD\health6.paa";
    };
    
    if (damage player >= 0.3) then
    {
    	LIFEctrl(IDC_LIFE_BAR_HEALTH_RING) ctrlSetText "VindicateAssets\images\textures\HUD\health7.paa";
    };
    
    if (damage player >= 0.4) then
    {
    	LIFEctrl(IDC_LIFE_BAR_HEALTH_RING) ctrlSetText "VindicateAssets\images\textures\HUD\health8.paa";
    };
    
    if (damage player >= 0.7) then
    {
    	LIFEctrl(IDC_LIFE_BAR_HEALTH_RING) ctrlSetText "VindicateAssets\images\textures\HUD\health9.paa";
    };
    
    if (damage player >= 1) then
    {
    	LIFEctrl(IDC_LIFE_BAR_HEALTH_RING) ctrlSetText "VindicateAssets\images\textures\HUD\health10.paa";
    };
    
    if(!isNil "life_hunger") then
    {
    	if (life_hunger <= 100) then
    	{
    		LIFEctrl(IDC_LIFE_BAR_FOOD_RING) ctrlSetText "VindicateAssets\images\textures\HUD\food0.paa";
    	};
    
    	if (life_hunger <= 90) then
    	{
    		LIFEctrl(IDC_LIFE_BAR_FOOD_RING) ctrlSetText "VindicateAssets\images\textures\HUD\food1.paa";
    	};
    
    	if (life_hunger <= 80) then
    	{
    		LIFEctrl(IDC_LIFE_BAR_FOOD_RING) ctrlSetText "VindicateAssets\images\textures\HUD\food2.paa";
    	};
    
    	if (life_hunger <= 70) then
    	{
    		LIFEctrl(IDC_LIFE_BAR_FOOD_RING) ctrlSetText "VindicateAssets\images\textures\HUD\food3.paa";
    	};
    
    	if (life_hunger <= 60) then
    	{
    		LIFEctrl(IDC_LIFE_BAR_FOOD_RING) ctrlSetText "VindicateAssets\images\textures\HUD\food4.paa";
    	};
    
    	if (life_hunger <= 50) then
    	{
    		LIFEctrl(IDC_LIFE_BAR_FOOD_RING) ctrlSetText "VindicateAssets\images\textures\HUD\food5.paa";
    	};
    
    	if (life_hunger <= 40) then
    	{
    		LIFEctrl(IDC_LIFE_BAR_FOOD_RING) ctrlSetText "VindicateAssets\images\textures\HUD\food6.paa";
    	};
    
    	if (life_hunger <= 30) then
    	{
    		LIFEctrl(IDC_LIFE_BAR_FOOD_RING) ctrlSetText "VindicateAssets\images\textures\HUD\food7.paa";
    	};
    
    	if (life_hunger <= 20) then
    	{
    		LIFEctrl(IDC_LIFE_BAR_FOOD_RING) ctrlSetText "VindicateAssets\images\textures\HUD\food8.paa";
    	};
    
    	if (life_hunger <= 10) then
    	{
    		LIFEctrl(IDC_LIFE_BAR_FOOD_RING) ctrlSetText "VindicateAssets\images\textures\HUD\food9.paa";
    	};
    
    	if (life_hunger <= 0) then
    	{
    		LIFEctrl(IDC_LIFE_BAR_FOOD_RING) ctrlSetText "VindicateAssets\images\textures\HUD\food1.paa";
    	};
    };
    

    3 Toujours dans core fn_HudSetup.sqf

    #include "..\..\script_macros.hpp"
    
    disableSerialization;
    
    2 cutRsc ["playerHUD","PLAIN"];
    [] call life_fnc_hudUpdate;
    
    [] spawn
    {
    	private["_dam"];
    	while {true} do
    	{
    		_dam = damage player;
    		waitUntil {(damage player) != _dam};
    		[] call life_fnc_hudUpdate;
    	};
    };
    

    4 Télécharger les textures, puis créer les dossiers suivants --> VindicateAssets\images\textures\HUD et glisser tous les fichiers .paa dedans.

    Attention : Vous devrez créer le dossier VindicateAssets, puis le dossier images puis le dossier textures et enfin le dossier HUD, de telle manière que vous devriez avoir cette nomenclature de dossier

    MPMissions
    --> Altis_Life.Altis(.pbo)
         --> VindicateAssets
              --> images
                   ---> textures
                        --> HUD
                             --> Tous les fichiers .paa
    

    Lien : http://download948.mediafire.com/36n6fa6d5ubg/nc5u0chqufvbznz/HUD.rar

    Voila j’espère que ce petit tuto vous a plu et je vous dit bon jeu !

    EDIT : @Sergueiii | explication plus explicite pour les images.

  • Propre et soigné, merci pour la traduction ! :)

  • @sergueiii De rien ;)

  • Edit suite au textures

  • Sympas le tuto mais t’aurais au moins pu le traduire les scripts au lieu de simplement les copier… De plus tu n’as même pas compris ce que tu as copier : la preuve, tu dis “TUTO HUD”, certes mais il y a aussi une ceinture de sécurité et ça je doute que tu l’ai compris. C’est bien de partager des tutoriels mais essaye de les comprendre avant de les publier…

    @sharywan a dit dans TUTO HUD | Compatible 5.0 :

    //HUD
    life_actions pushBack (player addAction["<t color = ‘#009900’>Put on Seatbelt</t>",life_fnc_seatbelt,"",6,false,false,"",’ !life_seatbelt && vehicle player != player ‘]);
    life_actions pushBack (player addAction["<t color = ‘#ff3300’>Remove Seatbelt</t>",life_fnc_seatbelt,"",6,false,false,"",’ life_seatbelt && vehicle player != player ']);

    Je doute que ça permette de mettre en place ton HUD comme l’indique ton commentaire au dessus…

  • @maxence-lyon Je ne l’avais pas mit car je pense que l’option n’est pas compatible puisque en jeu l’option de mettre sa ceinture ne marche pas >_<

  • @Sharywan c’est bien normal, car c’est un autre script qui a été fait par le même auteur qui a créé le HUD.

    Néanmoins, si tu pouvais supprimer cette partie, tu serais. Merci

  • @sharywan a dit dans TUTO HUD | Compatible 5.0 :

    @maxence-lyon Je ne l’avais pas mit car je pense que l’option n’est pas compatible puisque en jeu l’option de mettre sa ceinture ne marche pas >_<

    Si justement tu l’as mis, ce que je te reproche c’est de partager ou plutôt de copier coller quelque chose que tu ne comprend même pas. Si tu souhaites progresser dans le développement essaye de comprendre ou même de lire au moins ton script voir ce qu’il fait etc… t’as même pas fait l’effort de traduire des phrases, ou alors tu n’as simplement pas lu ce que tu as écrit. C’est dommage.

  • @maxence-lyon ce que je voulait dire c’est que je ne l’ai pas mit dans le titre mais ses vrai que je n’ai pas fait gaffe a la ceinture mais a l’avenir promis j’esseyerais de comprendre ;)

  • Sa serai bien la prochaine fois de mettre des // et se que veut dire le script comme sa on peut comprendre meme en etant nul et on peut le modifier plus simplement.

  • @jack-mac a dit dans Comment avoir un Hud | Compatible 5.0 :

    Sa serai bien la prochaine fois de mettre des // et se que veut dire le script comme sa on peut comprendre meme en etant nul et on peut le modifier plus simplement.

    Donnes moi un teamspeak je vais t’expliquer :)

  • @Maxence-Lyon ce serait mieux d’expliquer ici, comme ça tout le monde peut en profiter :p

  • L auteur le partage mais il faudrait voir si il autorise qu on le modifie

  • @brutalzic C’est pas lui qu’il la créé mais il a juste fait une traduction d’un poste d’une autre personne et meme pour bien comprendre le script et pouvoir réutiliser des idee

  • Malgré tout, il a fait de son mieux, certes tout n’est pas parfait, mais comme on dit, on apprend de ses erreurs.

    Je suis sûr que la prochaine fois, @Sharywan fera plus attention.

    Merci de stopper les discussions sur le sujet, c’est avant tout un tutoriel.

  • Sinon tuto bien fait et claire ont attend pour un numéro 2 :)

  • @Jack-Mac SPOIL! N°2 sur le wiki :astonished:

  • Merci ;)

  • Bonjour, vous avez reussie a le rendre compatible pour ACE3?

Messages 25Vues 5649