Hallo Miteinander,
Ich habe mich mal dran gesetzt ein eigenes GUI für die Statusbars/Serverinfo zu erstellen.
Allerdings habe ich dort Probleme,weil gewisse Dinge nicht richtig Angezeigt werden und wollte mal schauen ob mir hier vielleicht jemand helfen kann?
Ich nutze die Aktuelle AL 5.0 und extdb 3.
Um mir es nicht unnötig kompliziert zu machen, habe ich die hud_stats.hpp umgeschrieben hier mal der Code aus dieser:
#define ST_CENTER 0x02
class playerHUD
{
idd = -1;
movingEnabled = 0;
name = "playerHUD";
onLoad = "uiNamespace setVariable ['playerHUD',_this select 0]";
fadein = 0;
fadeout = 0;
duration = 10e10;
class controls
{
class Life_RscBackground_HUD: Life_RscBackground //eu_backround: RscPicture //Hintergrund
{
idc = 63001;
text = "";
x = 0.484531 * safezoneW + safezoneX;
y = 0.951 * safezoneH + safezoneY;
w = 0.520781 * safezoneW;
h = 0.066 * safezoneH;
colorBackground[] = {0,0,0,0};
};
class Life_RscText_HUDTime: Life_RscText//eu_txt_time: RscText //Zeit text
{
idc = 63002;
//text = "00:00"; //--- ToDo: Localize;
x = 0.95375 * safezoneW + safezoneX;
y = 0.951 * safezoneH + safezoneY;
w = 0.0464063 * safezoneW;
h = 0.044 * safezoneH;
colorText[] = {100,10,10,10};
colorBackground[] = {-1,-1,-1,-0};
sizeEx = (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 2);
};
class Life_RscText_HUDDate: Life_RscText //eu_txt_date: RscText //Datum text
{
idc = 63003;
//text = "00.00.00"; //--- ToDo: Localize;
x = 0.886719 * safezoneW + safezoneX;
y = 0.951 * safezoneH + safezoneY;
w = 0.0670312 * safezoneW;
h = 0.044 * safezoneH;
sizeEx = (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 2) ;
};
class Life_RscPicture_HUDHealth: Life_RscPicture //eu_img_health: RscPicture //icon Leben
{
idc = 63004;
text = "icons\eu_HUD_Health.paa";
x = 0.670156 * safezoneW + safezoneX;
y = 0.951 * safezoneH + safezoneY;
w = 0.0257812 * safezoneW;
h = 0.044 * safezoneH;
};
class Life_RscText_HUDHealth: Life_RscText //eu_txt_health: RscText //Text Leben
{
idc = 63005;
//text = ""; //--- ToDo: Localize;
x = 0.695937 * safezoneW + safezoneX;
y = 0.951 * safezoneH + safezoneY;
w = 0.04125 * safezoneW;
h = 0.044 * safezoneH;
sizeEx = (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 2) ;
};
class Life_RscPicture_HUDHunger: Life_RscPicture //eu_img_food: RscPicture //Icon Essen
{
idc = 63006;
text = "icons\eu_HUD_Hunger.paa";
x = 0.742344 * safezoneW + safezoneX;
y = 0.951 * safezoneH + safezoneY;
w = 0.0257812 * safezoneW;
h = 0.044 * safezoneH;
};
class Life_RscText_HUDHunger: Life_RscText //eu_txt_food: RscText //Text Essen
{
idc = 63007;
//text = ""; //--- ToDo: Localize;
x = 0.768125 * safezoneW + safezoneX;
y = 0.951 * safezoneH + safezoneY;
w = 0.04125 * safezoneW;
h = 0.044 * safezoneH;
sizeEx = (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 2);
};
class Life_RscPicture_HUDThirst: Life_RscPicture //eu_img_drink: RscPicture //Icon Trinken
{
idc = 63008;
text = "icons\eu_HUD_Thirst.paa";
x = 0.814531 * safezoneW + safezoneX;
y = 0.951 * safezoneH + safezoneY;
w = 0.0257812 * safezoneW;
h = 0.044 * safezoneH;
};
class Life_RscText_HUDThirst: Life_RscText //eu_txt_drink: RscText //Text Trinken
{
idc = 63009;
//text = "100%"; //--- ToDo: Localize;
x = 0.840312 * safezoneW + safezoneX;
y = 0.951 * safezoneH + safezoneY;
w = 0.04125 * safezoneW;
h = 0.044 * safezoneH;
sizeEx = (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 2);
};
class Life_RscText_HUDAtmBank: Life_RscText //eu_txt_bank: RscText //Text Bank
{
idc = 63010;
//text = "100000000"; //--- ToDo: Localize;
x = 0.603125 * safezoneW + safezoneX;
y = 0.951 * safezoneH + safezoneY;
w = 0.0670312 * safezoneW;
h = 0.055 * safezoneH;
sizeEx = (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1.5);
};
class Life_RscPicture_HUDAtmBank: Life_RscPicture //eu_img_bank: RscPicture //Icon Bank
{
idc = 63011;
text = "icons\eu_HUD_AtmBank.paa";
x = 0.577344 * safezoneW + safezoneX;
y = 0.951 * safezoneH + safezoneY;
w = 0.0257812 * safezoneW;
h = 0.044 * safezoneH;
};
class Life_RscText_HUDCash: Life_RscText //eu_txt_cash: RscText //Text Bargeld
{
idc = 63012;
//text = "100000000"; //--- ToDo: Localize;
x = 0.510312 * safezoneW + safezoneX;
y = 0.951 * safezoneH + safezoneY;
w = 0.0670312 * safezoneW;
h = 0.055 * safezoneH;
sizeEx = (((((safezoneW / safezoneH) min 1.2) / 1.2) / 25) * 1.5) ;
};
class Life_RscPicture_HUDCash: Life_RscPicture //eu_img_cash: RscPicture //Icon Bargeld
{
idc = 63013;
text = "icons\eu_HUD_Cash.paa";
x = 0.484531 * safezoneW + safezoneX;
y = 0.951 * safezoneH + safezoneY;
w = 0.0257812 * safezoneW;
h = 0.044 * safezoneH;
};
};
};
Alles anzeigen
Die RSC Elemente werden auch richtig Angezeigt.
Dann habe ich fn_hudUpdate.sqf wie folgt editert:
#include "..\..\script_macros.hpp"
disableSerialization;
if (isNull LIFEdisplay) then {[] call life_fnc_hudSetup;};
LIFEctrl(63002) ctrlsettext format["%6:%7",(life_real_time select 3),(life_real_time select 4)]; //Setzt die aktuelle Uhrzeit
LIFEctrl(63003) ctrlsettext format["%8.%9",(life_real_time select 1),(life_real_time select 2)]; //setzt das Aktuelle Datum
LIFEctrl(63005) ctrlsettext (format["%5",((1-(damage player))*100)]+"%"); //setzt Das Playerleben
LIFEctrl(63007) ctrlsettext (format["%1",(life_Hunger)]+"%"); //setzt Essen
LIFEctrl(63009) ctrlsettext (format["%2",(life_Thirst)]+"%"); //setzt Trinken
LIFEctrl(63010) ctrlsettext (format["%3",(BANK)]+"€"); //setzt Bankkonto
LIFEctrl(63012) ctrlsettext (format["%4",(CASH)]+"€"); //setzt Bargeld
Alles anzeigen
Die life_real_time kommt aus der realtime.fsm aus folgendem Betrag: Richtige Uhrzeit bekommen
Diese habe ich auch auf extdb3 upgedated.
Die hud_setup.sqf habe ich unverändert gelassen:
#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;
};
};
Alles anzeigen
Das Problem ist nun das die RscText-felder nicht mit dem hier zusetzenden Text upgedated werden.
Komischerweise funktioniert es für das Essens.Textfeld einwandfrei, sodass im Hud auch das Essen in der Korrekten % Zahl angezeigt wird. Isst man etwas wird es auch korrekt hoch gesetzt.
Bei allen anderen Feldern wird jedoch nur das %/€ Zeichen angezeigt.
Vielleicht kann ja jemand von euch mal darüber schauen und mir sagen, was ich für ein Fehler gemacht habe bzw weshalb das so nicht alles angezeigt wird sondern nur die Essens% Zahl.
Vielen Dank schonmal im vorraus.
VG
Hansheinrich