Français Installation complète d'un HUD

  • Auteur de la discussion Auteur de la discussion okin74
  • Date de début Date de début

okin74

User
18/5/20
114
4
10
1 100
rhone alpes FRANCE
Bonjour, bonsoir,

==========
Corrigé le 28/01 grâce à l'aide de BastienWolf BastienWolf
==========

Je vous transmet le tutoriel d'installation ci-dessous afin que vous puissiez profiter aussi de ce HUD.
(Je tiens à préciser que le HUD en lui-même n'est pas de moi, seul le tutoriel est ma création. Le HUD est libre de droit tant qu'il n'est pas monétisé.)

107410_20210128033255_1.png

Temps d'installation : 10 à 30 minutes selon comment vous êtes organisés ^^
Dédiez un fichier pour faire vos transferts, allez y répertoire par répertoire en sélection multiple et déjà vous approcherez les 10 minutes ;)

Téléchargez le fichier en pièce jointe (en bas du post) et déposez le dans votre dossier textures à la racine de votre mission

Dans votre hud_stats.hpp (VotreMission/dialog) remplacer entièrement le fichier par :
Code:
class playerHUD
    {
    idd=-1;
    movingEnable=0;
        fadein=0;
    duration = 10e10;
        fadeout=0;
    name="playerHUD";
    onLoad="uiNamespace setVariable ['playerHUD',_this select 0]";
    objects[]={};
    class controlsBackground
    {
        class fondIcon : life_RscPicture
        {
            idc = -1;
            text = "textures\UI.paa";
            x = safeZoneX+safeZoneW-0.2;
            y = safeZoneY+safeZoneH-0.58;
            w = 0.21; h = 0.31;
        };
    };
    class controls
    {
        class foodtext
        {
            type=0;
            idc=23500;
            style=0;
            x=-1;
            y=-1;
            w=0.3;
            h=0.05;
            sizeEx=0.03;
            size=1;
            font="PuristaSemibold";
            colorBackground[]={0,0,0,0};
            colorText[] = { 1 , 1 , 1 , 1 };
            shadow=1;
            text="";
        };
        class watertext
        {
            type=0;
            idc=23510;
            style=0;
            x=-1;
            y=-1;
            w=0.3;
            h=0.05;
            sizeEx=0.03;
            size=1;
            font="PuristaSemibold";
            colorBackground[]={0,0,0,0};
            colorText[] = { 1 , 1 , 1 , 1 };
            shadow=1;
            text="";
        };
        class healthtext
        {
            type=0;
            idc=23515;
            style=0;
            x=-1;
            y=-1;
            w=0.3;
            h=0.05;
            sizeEx=0.03;
            size=1;
            font="PuristaSemibold";
            colorBackground[]={0,0,0,0};
            colorText[] = { 1 , 1 , 1 , 1 };
            shadow=1;
            text="";
        };
        class weighttext
        {
            type=0;
            idc=23520;
            style=0;
            x=-1;
            y=-1;
            w=0.3;
            h=0.05;
            sizeEx=0.03;
            size=1;
            font="PuristaSemibold";
            colorBackground[]={0,0,0,0};
            colorText[] = { 1 , 1 , 1 , 1 };
            shadow=1;
            text="";
        };
        class maxweighttext
        {
            type=0;
            idc=23569;
            style=0;
            x=-0.5;
            y=-1;
            w=0.3;
            h=0.05;
            sizeEx=0.03;
            size=1;
            font="PuristaSemibold";
            colorBackground[]={0,0,0,0};
            colorText[] = { 1 , 1 , 1 , 1 };
            shadow=1;
            text="";
        };
        class moneytext
        {
            type=0;
            idc=23525;
            style=0;
            x=-1;
            y=-1;
            w=0.3;
            h=0.05;
            sizeEx=0.03;
            size=1;
            font="PuristaSemibold";
            colorBackground[]={0,0,0,0};
            colorText[] = { 1 , 1 , 1 , 1 };
            shadow=1;
            text="";
        };
        class fatingtext
        {
            type=0;
            idc=23550;
            style=0;
            x=-1;
            y=-1;
            w=0.3;
            h=0.05;
            sizeEx=0.03;
            size=1;
            font="PuristaSemibold";
            colorBackground[]={0,0,0,0};
            colorText[] = { 1 , 1 , 1 , 1 };
            shadow=1;
            text="";
        };
    };
};


Ensuite,
Dans votre fn_hudSetup.sqf (VotreMission/core/fonctions) remplacez entièrement le fichier par :
Code:
#include "..\..\script_macros.hpp"
/*
    File: fn_hudSetup.sqf
Author: Bryan "Tonic" Boardwine
Description: Setups the hud for the player?
*/
disableSerialization;

cutRsc ["playerHUD", "PLAIN", 2, false];
[] call life_fnc_hudUpdate;

[] spawn
{
    private ["_dam"];
    for "_i" from 0 to 1 step 0 do {
        _dam = damage player;
        waitUntil {!((damage player) isEqualTo _dam)};
        [] call life_fnc_hudUpdate;
    };
};

[] spawn
{
    private ["_fat"];
    for "_i" from 0 to 1 step 0 do {
        _fat = getFatigue player;
        waitUntil {!((getFatigue player) isEqualTo _fat)};
        [] call life_fnc_hudUpdate;
    };
};


Ensuite,
dans votre fn_hudUpdate.sqf (VotreMission/core/fonctions) remplacez entièrement le fichier par :
Code:
#include "..\..\script_macros.hpp"

private["_ui","_food","_water","_health","_weight","_maxweight","_money","_cash","_ctrlSta"];
disableSerialization;

_ui = uiNameSpace getVariable ["playerHUD",displayNull];
if(isNull _ui) then {[] call life_fnc_hudSetup;};

_food = _ui displayCtrl 23500;
_water = _ui displayCtrl 23510;
_health = _ui displayCtrl 23515;
_weight = _ui displayCtrl 23520;
_money = _ui displayCtrl 23525;
_ctrlSta = _ui displayCtrl 23550;

_cash = life_cash;

//Update food
_food ctrlSetPosition [safeZoneX+safeZoneW-0.090,safeZoneY+safeZoneH-0.581];
_food ctrlSetText format["%1", life_hunger];
_food ctrlCommit 0;

//Update Water
_water ctrlSetPosition [safeZoneX+safeZoneW-0.090,safeZoneY+safeZoneH-0.528];
_water ctrlSetText format["%1", life_thirst];
_water ctrlCommit 0;

//Update Health
_health ctrlSetPosition [safeZoneX+safeZoneW-0.090,safeZoneY+safeZoneH-0.478];
_health ctrlSetText format["%1", round((1 - (damage player)) * 100)];
_health ctrlCommit 0;

//Update weight
_weight ctrlSetPosition [safeZoneX+safeZoneW-0.090,safeZoneY+safeZoneH-0.426];
_weight ctrlSetText format["%1 / %2", life_carryWeight,life_maxWeight];
_weight ctrlCommit 0;

//Update Money
_money ctrlSetPosition [safeZoneX+safeZoneW-0.090,safeZoneY+safeZoneH-0.374];

//Update Stamina
_ctrlSta ctrlSetPosition [safeZoneX+safeZoneW-0.090,safeZoneY+safeZoneH-0.322];
_ctrlSta ctrlSetText format ["%1%2", round((1 - (getFatigue player)) * 100)];
_ctrlSta ctrlCommit 0;
//_money ctrlSetText format["%1", format["%1",[_cash] call life_fnc_numberText]];

if(_cash >= 1000000) then {
    _cash = round(_cash / 1000000);
    _money ctrlSetText format["%1", format["%1 M",[_cash] call life_fnc_numberText]];
} else {
    if(_cash >= 100000) then {
        _cash = round(_cash / 1000);
        _money ctrlSetText format["%1", format["%1 K",[_cash] call life_fnc_numberText]];
    } else {
         _cash = round _cash;
        _money ctrlSetText format["%1", format["%1",[_cash] call life_fnc_numberText]];
    };
};

_money ctrlCommit 0;

Afin que le HUD s'actualise par toutes conditions voici le code à ajouter à la fin de chacun des fichiers cités ci-dessous
(cela parait énorme mais c'est super rapide à faire)

Code:
[] call life_fnc_hudUpdate;

Dans les fichiers qui y correspondent.
Premièrement, à l'utilisation d'un items, à la fin du core/pmenu/fn_useItem.sqf tu l'ajoutes.
Ensuite, quand tu farm avec windows et que tu ramasse un items , dans le core/actions/fn_gather.sqf
Ensuite, quand tu drop un items au sol, dans le core/pmenu/fn_removeItem.sqf
Puis quand tu achète un sac, la taille peut varier ? Donc dans le core/shops/fn_buyclothes.sqf

============
Mise à jour du script ci-dessous
Vous aurez le chemin des fonctions de base ainsi que celles propres aux scripts de The-programmer
============

Le concept reste le même, ajoutez la fonctions ci-dessous à la fin de chaque fichier cités

Code:
[] call life_fnc_hudUpdate;

(VotreMission/core/pmenu)
fn_giveItem.sqf
fn_giveMoney.sqf


(VotreMission/core/shops)
fn_changeClothes.sqf
fn_chopShopSell.sqf
fn_virt_buy.sqf
fn_virt_sell.sqf
fn_weaponShopBuySell.sqf


(VotreMission/core/actions)
fn_catchFish.sqf
fn_dropFishingNet.sqf
fn_pickupItem.sqf
fn_pickupMoney.sqf
fn_putInCar.sqf
fn_repairTruck.sqf
fn_robAction.sqf
fn_removeContainer.sqf


(VotreMission/core/fonctions)
fn_dropItems.sqf
fn_onTakeItem.sqf
fn_receiveItem.sqf
fn_receiveMoney.sqf


(VotreMission/core/véhicle)
fn_VehTakeItem.sqf
fn_VehStoreItem.sqf

============
Fonctions liées aux scripts de The-Programmer
============


(@The_Programmer/addons/farming_system.pbo/client)
fn_CutTree.sqf
fn_mineOres.sqf


(@The_Programmer/addons/billing_system.pbo/client)
fn_payFacture.sqf
fn_sendFacture.sqf


(@The_Programmer/addons/fuel_stations.pbo/client)
fn_refuelStation.sqf
fn_refuelCar.sqf


(@The_Programmer/addons/crafting_system.pbo/client)
fn_workBenchStoreItem.sqf
fn_workBenchTakeItem.sqf
fn_retreiveCraft.sqf


(@The_Programmer/addons/banking_system.pbo/client/atm/money)
fn_atm_deposit.sqf
fn_atm_receipt.sqf
fn_atm_withdraw.sqf

============

Si vous rencontrez le moindre soucis, ou simplement si vous souhaitez compléter ce tuto, n'hésitez pas à poster un message que je puisse étudier la chose ;)
 

Fichiers joints

  • UI.paa
    UI.paa
    59.5 KB · Affichages: 349
Dernière édition par un modérateur:
  • Like
Les réactions: R404 et Joe Dalton
Hello, pour ma part je souhaiterais retirer la notion d'argent liquide du HUD, est-ce que tu penses que c'est jouable ?
J'ai réussi à virer l'affichage mais par contre au niveau du design du HUD ça ne suis pas, surement parce que le .paa n'est pas le bon, n'est-ce pas ?

Thomas.
 
Hello, pour ma part je souhaiterais retirer la notion d'argent liquide du HUD, est-ce que tu penses que c'est jouable ?
J'ai réussi à virer l'affichage mais par contre au niveau du design du HUD ça ne suis pas, surement parce que le .paa n'est pas le bon, n'est-ce pas ?

Thomas.
Oui retouche le .paa 👍
 
Bonjour, il y a la possibilité d'ajouter un message qui prévient quand on va bientot mourrir de soif ou de faim ?

merci d'avance ^^