ist ja schon vorhanden "Position"
[Tutorial] Statusbar / Infoleiste
-
- Altis Life
-
Xylometachlorid -
20. Oktober 2015 um 14:33
-
-
naja aber eine position ist was anderes wie eine kompass anzeige wenn ich das nicht verkehrt sehe zeigt es dir ja längen und breitengrad an bzw planquadrat oder verstehe ich das grade verkehrt
-
ja, indem falle steht bei Position : z.b 034034
-
richtig dein koordinaten auf der map aber ein kompass hud zeigt dir an in welche richtung du schaust als erleichterung
-
Besteht hier auch das Problem das die Anzeige beim Processen verschwindet?
-
-
-
-
Danke für die schnelle Antwort!
Die letzten Zeilen der Datei core/action/fn_processAction.sqf sehen so aus:
CodetitleText[format[localize "STR_Process_Processed2",_oldVal,_itemName,[_cost] call life_fnc_numberText],"PLAIN"]; life_cash = life_cash - _cost; life_is_processing = false; }; [] call life_fnc_hudUpdate;
Also es wurde schon von mir hinzugefügt..Aber es get trotzdem leider nicht.
-
welche Version hast AL 3 oder 4?
-
AL 3.1.4.8
-
Ich hab' wirklich keine Ahnung mehr was ich machen soll.. Keiner eine Idee?
Wäre wichtig...Danke
-
Entschuldigung! Das hab ich wohl übersehen gehabt..Es funktioniert jetzt alles! Vielen Vielen Dank trotz Allem
Mit freundlichen Grüßen
PlaySim - Die Gaming Community - https://native-servers.com/www.playsim.de -
poste mal die komplette core/action/fn_processAction.sqf
-
core/actions/fn_processAction.sqf
Code
Alles anzeigen/* File: fn_processAction.sqf Author: Bryan "Tonic" Boardwine Description: Master handling for processing an item. */ private["_vendor","_type","_itemInfo","_oldItem","_newItem","_cost","_upp","_hasLicense","_itemName","_oldVal","_ui","_progress","_pgText","_cP"]; _vendor = [_this,0,ObjNull,[ObjNull]] call BIS_fnc_param; _type = [_this,3,"",[""]] call BIS_fnc_param; //Error check if(isNull _vendor OR _type == "" OR (player distance _vendor > 10)) exitWith {}; //unprocessed item,processed item, cost if no license,Text to display (I.e Processing (percent) ..." _itemInfo = switch (_type) do { case "oil": {["oilu","oilp",1200,(localize "STR_Process_Oil")];}; case "diamond": {["diamond","diamondc",1350,(localize "STR_Process_Diamond")];}; case "heroin": {["heroinu","heroinp",1750,(localize "STR_Process_Heroin")];}; case "copper": {["copperore","copper_r",750,(localize "STR_Process_Copper")];}; case "iron": {["ironore","iron_r",1120,(localize "STR_Process_Iron")];}; case "sand": {["sand","glass",650,(localize "STR_Process_Sand")];}; case "glassbottle":{["glass","bottles",650,"Making Bottles",false]};//new case "salt": {["salt","salt_r",450,(localize "STR_Process_Salt")];}; case "mash": {["water","mash",100,"Mixing Grain Mash",true,"cornmeal"]};//new case "whiskey": {["yeast","whiskey",1000,"Fermenting Whiskey",true,"rye"]};//new case "beer": {["yeast","beerp",1500,"Brewing Beer",true,"hops"]};//new case "bomb": {["ironp","bomb",15000,"Bombe bauen",true,"spulver"]}; default {[];}; //noch weitere mehr... }; //Error checking if(count _itemInfo == 0) exitWith {}; //Setup vars. _oldItem = _itemInfo select 0; _newItem = _itemInfo select 1; _cost = _itemInfo select 2; _upp = _itemInfo select 3; if(_vendor in [mari_processor,coke_processor,heroin_processor]) then { _hasLicense = true; } else { _hasLicense = missionNamespace getVariable (([_type,0] call life_fnc_licenseType) select 0); }; _itemName = [([_newItem,0] call life_fnc_varHandle)] call life_fnc_varToStr; _oldVal = missionNamespace getVariable ([_oldItem,0] call life_fnc_varHandle); _cost = _cost * _oldVal; //Some more checks if(_oldVal == 0) exitWith {}; //Setup our progress bar. disableSerialization; 5 cutRsc ["life_progress","PLAIN"]; _ui = uiNameSpace getVariable "life_progress"; _progress = _ui displayCtrl 38201; _pgText = _ui displayCtrl 38202; _pgText ctrlSetText format["%2 (1%1)...","%",_upp]; _progress progressSetPosition 0.01; _cP = 0.01; life_is_processing = true; if(_hasLicense) then { while{true} do { sleep 0.3; _cP = _cP + 0.01; _progress progressSetPosition _cP; _pgText ctrlSetText format["%3 (%1%2)...",round(_cP * 100),"%",_upp]; if(_cP >= 1) exitWith {}; if(player distance _vendor > 10) exitWith {}; }; if(player distance _vendor > 10) exitWith {hint localize "STR_Process_Stay"; 5 cutText ["","PLAIN"]; life_is_processing = false;}; if(!([false,_oldItem,_oldVal] call life_fnc_handleInv)) exitWith {5 cutText ["","PLAIN"]; life_is_processing = false;}; if(!([true,_newItem,_oldVal] call life_fnc_handleInv)) exitWith {5 cutText ["","PLAIN"]; [true,_oldItem,_oldVal] call life_fnc_handleInv; life_is_processing = false;}; 5 cutText ["","PLAIN"]; titleText[format[localize "STR_Process_Processed",_oldVal,_itemName],"PLAIN"]; life_is_processing = false; [] call life_fnc_hudUpdate; } else { if(life_cash < _cost) exitWith {hint format[localize "STR_Process_License",[_cost] call life_fnc_numberText]; 5 cutText ["","PLAIN"]; life_is_processing = false;}; while{true} do { sleep 0.9; _cP = _cP + 0.01; _progress progressSetPosition _cP; _pgText ctrlSetText format["%3 (%1%2)...",round(_cP * 100),"%",_upp]; if(_cP >= 1) exitWith {}; if(player distance _vendor > 10) exitWith {}; }; if(player distance _vendor > 10) exitWith {hint localize "STR_Process_Stay"; 5 cutText ["","PLAIN"]; life_is_processing = false;}; if(life_cash < _cost) exitWith {hint format[localize "STR_Process_License",[_cost] call life_fnc_numberText]; 5 cutText ["","PLAIN"]; life_is_processing = false;}; if(!([false,_oldItem,_oldVal] call life_fnc_handleInv)) exitWith {5 cutText ["","PLAIN"]; life_is_processing = false;}; if(!([true,_newItem,_oldVal] call life_fnc_handleInv)) exitWith {5 cutText ["","PLAIN"]; [true,_oldItem,_oldVal] call life_fnc_handleInv; life_is_processing = false;}; 5 cutText ["","PLAIN"]; titleText[format[localize "STR_Process_Processed2",_oldVal,_itemName,[_cost] call life_fnc_numberText],"PLAIN"]; life_cash = life_cash - _cost; life_is_processing = false; }; [] call life_fnc_hudUpdate;
Es funktioniert ja jetzt.
-
Arma 3 Stamina Patch: Toolbar Anpassungen
Damit die Werte wieder richtig angezeigt werden für die Ausdauer müsst Ihr nur die Werte im Bereich Stamina anpassen
scripts\monitor.sqf --> vollständig ersetzen mit folgendem Script
Code
Alles anzeigen/* Player Status Bar with Icons v 1.36 Author: Dart_Rogue Mod: Epoch https://github.com/DarthRogue/Status_Bar Transfered to Altis Life + add SBUserhy */ waitUntil {!(isNull (findDisplay 46))}; disableSerialization; _rscLayer = "osefStatusBar" call BIS_fnc_rscLayer; _rscLayer cutRsc["osefStatusBar","PLAIN"]; systemChat format["Willkommen auf dem Server", _rscLayer]; [] spawn { sleep 2; _counter = 360; _timeSinceLastUpdate = 0; _colourDefault = parseText "#ADADAD"; //set your default colour here _colour100 = parseText "#33FF00"; _colour90 = parseText "#33FF00"; _colour80 = parseText "#33FF00"; _colour70 = parseText "#33FF00"; _colour60 = parseText "#66FF00"; _colour50 = parseText "#CCFF00"; _colour40 = parseText "#FFFF00"; _colour30 = parseText "#FFFF00"; _colour20 = parseText "#CC0000"; _colour10 = parseText "#CC0000"; _colour0 = parseText "#CC0000"; _colourDead = parseText "#000000"; _colourUpTimeHUD = parseText "#CCCCCC"; while {true} do { sleep 1; //moved the creation of the status bar inside the loop and create it if it is null, //this is to handle instance where the status bar is disappearing if(isNull ((uiNamespace getVariable "statusBar")displayCtrl 55555)) then { diag_log "statusbar is null create"; disableSerialization; _rscLayer = "statusBar" call BIS_fnc_rscLayer; _rscLayer cutRsc["statusBar","PLAIN"]; }; //initialize variables and set values //neu _CivplayHUD = civilian countSide playableUnits; _WestplayHUD = west countSide playableUnits; _IndepplayHUD = independent countSide playableUnits; _EastplayHUD = east countSide playableUnits; _grid = mapGridPosition player; _xx = (format[_grid]) select [0,3]; _yy = (format[_grid]) select [3,3]; _hunger = round(life_hunger); _thirst = round(life_thirst); _damage = round ((1 - (damage player)) * 100); _FpsHud = round (diag_fps); _stamina = round(getFatigue player * 100) / 100; _UpTimeHUD = [serverTime,"HH:MM:SS"] call BIS_fnc_secondsToString; //neu ende _toxPercent = round(life_thirst); _energy = round(life_thirst); _energyPercent = floor((_energy / 2500 ) * 100); _players = (count playableUnits -1); //Colour coding //Hunger _colourHunger = _colourDefault; switch true do { case(_hunger >= 100) : {_colourHunger = _colour70;}; case((_hunger >= 90) && (_hunger < 100)) : {_colourHunger = _colour70;}; case((_hunger >= 80) && (_hunger < 90)) : {_colourHunger = _colour70;}; case((_hunger >= 70) && (_hunger < 80)) : {_colourHunger = _colour70;}; case((_hunger >= 60) && (_hunger < 70)) : {_colourHunger = _colour60;}; case((_hunger >= 50) && (_hunger < 60)) : {_colourHunger = _colour50;}; case((_hunger >= 40) && (_hunger < 50)) : {_colourHunger = _colour40;}; case((_hunger >= 30) && (_hunger < 40)) : {_colourHunger = _colour30;}; case((_hunger >= 20) && (_hunger < 30)) : {_colourHunger = _colour20;}; case((_hunger >= 10) && (_hunger < 20)) : {_colourHunger = _colour10;}; case((_hunger >= 1) && (_hunger < 10)) : {_colourHunger = _colour0;}; case(_hunger < 1) : {_colourHunger = _colourDead;}; }; //Thirst _colourThirst = _colourDefault; switch true do{ case(_thirst >= 100) : {_colourThirst = _colour70;}; case((_thirst >= 90) && (_thirst < 100)) : {_colourThirst = _colour70;}; case((_thirst >= 80) && (_thirst < 90)) : {_colourThirst = _colour70;}; case((_thirst >= 70) && (_thirst < 80)) : {_colourThirst = _colour70;}; case((_thirst >= 60) && (_thirst < 70)) : {_colourThirst = _colour60;}; case((_thirst >= 50) && (_thirst < 60)) : {_colourThirst = _colour50;}; case((_thirst >= 40) && (_thirst < 50)) : {_colourThirst = _colour40;}; case((_thirst >= 30) && (_thirst < 40)) : {_colourThirst = _colour30;}; case((_thirst >= 20) && (_thirst < 30)) : {_colourThirst = _colour20;}; case((_thirst >= 10) && (_thirst < 20)) : {_colourThirst = _colour10;}; case((_thirst >= 1) && (_thirst < 10)) : {_colourThirst = _colour0;}; case(_thirst < 1) : {_colourThirst = _colourDead;}; }; //Damage _colourDamage = _colourDefault; switch true do { case(_damage >= 100) : {_colourDamage = _colour70;}; case((_damage >= 90) && (_damage < 100)) : {_colourDamage = _colour70;}; case((_damage >= 80) && (_damage < 90)) : {_colourDamage = _colour70;}; case((_damage >= 70) && (_damage < 80)) : {_colourDamage = _colour70;}; case((_damage >= 60) && (_damage < 70)) : {_colourDamage = _colour60;}; case((_damage >= 50) && (_damage < 60)) : {_colourDamage = _colour50;}; case((_damage >= 40) && (_damage < 50)) : {_colourDamage = _colour40;}; case((_damage >= 30) && (_damage < 40)) : {_colourDamage = _colour30;}; case((_damage >= 20) && (_damage < 30)) : {_colourDamage = _colour20;}; case((_damage >= 10) && (_damage < 20)) : {_colourDamage = _colour10;}; case((_damage >= 1) && (_damage < 10)) : {_colourDamage = _colour0;}; case(_damage < 1) : {_colourDamage = _colourDead;}; }; //Stamina _colourStamina = _colourDefault; switch true do{ case(_Stamina < 0.01) : {_colourStamina = _colour70;}; case((_Stamina >= 0.01) && (_Stamina < 0.3)) : {_colourStamina = _colour70;}; case((_Stamina >= 0.3) && (_Stamina < 0.6)) : {_colourStamina = _colour30;}; case(_Stamina >= 0.6) : {_colourStamina = _colour0;}; }; //FPS _colourFps = _colourDefault; switch true do { case(_FpsHud >= 60) : {_colourFps = _colour70;}; case((_FpsHud >= 30) && (_FpsHud < 60)) : {_colourFps = _colour30;}; case((_FpsHud >= 1) && (_FpsHud < 30)) : {_colourFps = _colour0;}; case(_FpsHud < 1) : {_colourFps = _colourDead;}; }; ((uiNamespace getVariable "osefStatusBar")displayCtrl 555556)ctrlSetStructuredText parseText format["<t shadow='1' shadowColor='#000000'><img size='1.6' shadowColor='#000000' image='icons\Statusbar\players.paa' color='#FFFFFF'/>%1 <img size='1.6' shadowColor='#000000' image='icons\Statusbar\players.paa' color='#3399FF'/>%2 <img size='1.6' shadowColor='#000000' image='icons\Statusbar\players.paa' color='#009933'/>%3 <img size='1.6' shadowColor='#000000' image='icons\Statusbar\players.paa' color='#CC0000'/>%4 <img size='1.6' shadowColor='#000000' image='icons\Statusbar\ico_map.paa'/>%5 <img size='1.6' shadowColor='#000000' image='icons\Statusbar\hunger.paa' color='%7'/>%6 <img size='1.6' shadowColor='#000000' image='icons\Statusbar\thirst.paa' color='%9'/>%8 <img size='1.6' shadowColor='#000000' image='icons\Statusbar\damage.paa' color='%11'/>%10 <img size='1.6' shadowColor='#000000' image='icons\Statusbar\stamina.paa' color='%13'/>%12 <img size='1.6' shadowColor='#000000' image='icons\Statusbar\monitor_fps.paa' color='%15'/>%14 <img size='1.6' shadowColor='#000000' image='icons\Statusbar\restart.paa' color='%17'/>%16</t>",_CivplayHUD,_WestplayHUD,_IndepplayHUD,_EastplayHUD, format["%1/%2",_xx,_yy], _hunger, _colourHunger, _thirst, _colourThirst, _damage, _colourDamage, _stamina, _colourStamina, _FpsHud, _colourFps, _UpTimeHUD, _colourUpTimeHUD,_players,_energyPercent,_colourDefault]; }; };
Missionsordner:
3.) Ordner "Icons" erstellen und die folgenden Dateien einfügen (siehe Dateianhang).
Icons/Statusbar/players.paa
Icons/Statusbar/ico_map.paa
Icons/Statusbar/hunger.paa
Icons/Statusbar/thirst.paa
Icons/Statusbar/damage.paa
Icons/Statusbar/stamina.paa
Icons/Statusbar/monitor_fps.paa
Icons/Statusbar/restart.paa
ersetzt das folgende in der Datei scripts\monitor.sqfCode//Stamina _colourStamina = _colourDefault; switch true do{ case(_Stamina < 0.01) : {_colourStamina = _colour70;}; case((_Stamina >= 0.01) && (_Stamina < 0.3)) : {_colourStamina = _colour70;}; case((_Stamina >= 0.3) && (_Stamina < 0.6)) : {_colourStamina = _colour30;}; case(_Stamina >= 0.6) : {_colourStamina = _colour0;}; };
mit demCode//Stamina _colourStamina = _colourDefault; switch true do{ case(_Stamina < 0.01) : {_colourStamina = _colour70;}; case((_Stamina >= 0.01) && (_Stamina < 0.5)) : {_colourStamina = _colour70;}; case((_Stamina >= 0.5) && (_Stamina < 0.8)) : {_colourStamina = _colour30;}; case(_Stamina >= 0.8) : {_colourStamina = _colour0;}; };
-
Moin. Hab mal eine Frage, und zwar habe ich die Epoch Statusbar eingebaut. Wenn ich jetzt z.b. ein Fahrzeug Repariere verschwindet die Statusbar. P.S. Ich habe am Ende "[] call life_fnc_hudUpdate;" eingefügt..
-
_ui cutRsc["osefStatusBar","PLAIN"];
damit klappt es ohne Probleme.Tipp: Überlege dir warum die Leiste weg geht, dann weißt du auch wann du sie wieder holen musst
-
Ja. Der unterschied ist einfach, es geht auch einfacher ..... Aber trotzdem thx.
-
Ich werd mal dein Beitrag hier ein wenig pushen
+1 für das tolle Basisscript, aber ein Großteil der Leute wollen ja die Epoch Toolbar im Altis Life haben. Wie das geht? Ganz einfach, ein paar Variablen hinzufügen, einige ändern, viel entfernen und schon kommt folgendes dabei raus.native-servers.com/attachment/162/
Wie, Wo, Was macht die Toolbar?
- Spieleranzahl aller 4 Fraktionen werden angezeigt. Die Farben für die Fraktionen können im Code verändert werden, kein extra Bild benötigt.
- Essen, Trinken, Heilung, Ausdauer, GPS und FPS sind mit den Altis-Life Werten angepasst worden
- Dynamische Symbolfarben, genauer gesagt, Ampelfarben(Rot,Gelb,Grün)
- Serveruptime ... also die Zeit wie lange der Server schon läuft (kein Countdown u. kein Farbwechsel)Entwickelt & getestet mit Altis Life 4.0 müßte aber auch auf der 3.1.4.8 funktionieren
Das Script ist eine Erweiterung zu dem Script von Xylometaclorid, folgt den Anweisungen im ersten Beitrag und nehmt erst dann die folgenden Änderungen vor.
1.) Das Script von der Epoch Toolbar stammt von Darth_Rogue und wurde für Epoch entwickelt: Github: Statusbar für Epoch
2.) Nehmt die folgenden Änderungen daran vor.
3.) Schritt 5 im ersten Beitrag komplett rückgängig machen. Also entfernt _ui = "osefStatusBar" call BIS_fnc_rscLayer;_ui cutRsc["osefStatusBar","PLAIN"]; in den Dateien wieder.Fügt am Ende der Dateien folgendes ein:
[] call life_fnc_hudUpdate;
das macht ihr auch noch bei folgenden Dateien:
- core/medical/fn_onPlayerRespawn.sqf
- core/medical/fn_onPlayerkilled.sqf
- core/housing/fn_copBreakDoor.sqfAnschließend ersetzt Ihr folgende Dateien:
dialog\Statusbar.hpp --> vollständig ersetzen mit folgendem Script
Code: dialog/Statusbar.hpp
Alles anzeigen#define ST_RIGHT 0x01 class osefStatusBar { idd = -1; onLoad = "uiNamespace setVariable ['osefStatusBar', _this select 0]"; onUnload = "uiNamespace setVariable ['osefStatusBar', objNull]"; onDestroy = "uiNamespace setVariable ['osefStatusBar', objNull]"; fadein = 0; fadeout = 0; duration = 10e10; movingEnable = 0; controlsBackground[] = {}; objects[] = {}; class controls { class statusBarText { idc = 555556; x = safezoneX + safezoneW - 0.85; y = safezoneY + safezoneH - 0.08; w = 0.85; h = 0.056; shadow = 2; colorBackground[] = { 0, 0, 0, 0.5 }; font = "PuristaSemibold"; size = 0.03; type = 13; style = 1; text=""; class Attributes { align="left"; color = "#CCCCCC";//#5fe60c }; }; }; };
Fortsetzung im nächsten Kommentar !!!
Hallo,habe es so eingebaut wie es in deiner Anleitung steht.
Funktioniert soweit auch, aber wenn ich ein Fahrzeug repariere ist die Anzeige weg.
Hab nochmal geschaut ob es auch wirklich in der fn_repairTruck.sqf drin steht und das tut es auch.Oder suche ich an der falschen Stelle?
P.S bestehg die möglichkeit die Stamina anzeige von 100 runter auf 0 zählen zu lassen anstatt von 0.01 bis 1?
-