Bonjour, bonsoir,
==========
Je me permet de poster ici pour un petit soucis que je rencontre avec un HUD.
Au niveau de l'installation, aucun soucis, tout passe mais mon problème est l'actualisation des données indiqués.
Par exemple, il y a un affichage du poids du sac a dos, mais il ne s'actualise pas en temps réel et du coup rends la chose beaucoup moins interactive que prévu.
Je pense qu'il actualise a la vérification faim/soif ? ou surement a la vérification de la santé ? un timer ? ^^
Pourriez-vous m'aider s'il vous plaît à faire en sorte qu'il soit plus dynamique et surtout réactif ^^ ?
Je vous remercie d'avance
==========
Corrigé le 28/01 grâce à l'aide de BastienWolf
==========
Je vous transmet le tutoriel d'installation ci-dessous afin que vous puissiez profiter aussi de ce HUD.
(Je tiens à préciser qu'il n'est pas de moi et qu'il est libre de droits.)
Téléchargez le fichier ci-dessous et déposez le dans votre dossier textures à la racine de votre mission
Lien du fichier .paa
Dans votre hud_stats.hpp (VotreMission/dialog) remplacer entièrement le fichier par :
Ensuite,
Dans votre fn_hudSetup.sqf (VotreMission/core/fonctions) remplacez entièrement le fichier par :
Ensuite,
dans votre fn_hudUpdate.sqf (VotreMission/core/fonctions) remplacez entièrement le fichier par :
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)
Dans les fichiers qui y correspondent.
Premièrement, à l'utilisation d'un items, dans à la fin de core/pmenu/fn_useitems.sqf tu l'ajoute.
Ensuite, quand tu farm avec windows et que tu ramasse un items , dans core/actions/fn_gather.sqf
Ensuite, quand tu drop un items au sol :
dans core/pmenu/fn_remoteItem
Puis quand tu achète un sac, la taille peut varier ? Donc dans core/shops/fn_buyclothes.sqf
==========
Je me permet de poster ici pour un petit soucis que je rencontre avec un HUD.
Au niveau de l'installation, aucun soucis, tout passe mais mon problème est l'actualisation des données indiqués.
Par exemple, il y a un affichage du poids du sac a dos, mais il ne s'actualise pas en temps réel et du coup rends la chose beaucoup moins interactive que prévu.
Je pense qu'il actualise a la vérification faim/soif ? ou surement a la vérification de la santé ? un timer ? ^^
Pourriez-vous m'aider s'il vous plaît à faire en sorte qu'il soit plus dynamique et surtout réactif ^^ ?
Je vous remercie d'avance
==========
Corrigé le 28/01 grâce à l'aide de BastienWolf
==========
Je vous transmet le tutoriel d'installation ci-dessous afin que vous puissiez profiter aussi de ce HUD.
(Je tiens à préciser qu'il n'est pas de moi et qu'il est libre de droits.)
Téléchargez le fichier ci-dessous et déposez le dans votre dossier textures à la racine de votre mission
Lien du fichier .paa
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, dans à la fin de core/pmenu/fn_useitems.sqf tu l'ajoute.
Ensuite, quand tu farm avec windows et que tu ramasse un items , dans core/actions/fn_gather.sqf
Ensuite, quand tu drop un items au sol :
dans core/pmenu/fn_remoteItem
Puis quand tu achète un sac, la taille peut varier ? Donc dans core/shops/fn_buyclothes.sqf
Dernière édition: