1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Downloads
  4. Galerie
    1. Alben
  5. Toolbox
    1. Passwort Generator
    2. Portchecker
  6. Mitglieder
    1. Mitgliedersuche
    2. Benutzer online
    3. Trophäen
    4. Team
Di: 20 Mai 2025
  • Anmelden oder registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Forum
  • Dateien
  • Seiten
  • Bilder
  • Erweiterte Suche

Schön, dass du den Weg zu NodeZone.net gefunden hast! Aktuell bist du nicht angemeldet und kannst deshalb nur eingeschränkt auf unsere Community zugreifen. Um alle Funktionen freizuschalten, spannende Inhalte zu entdecken und dich aktiv einzubringen, registriere dich jetzt kostenlos oder melde dich mit deinem Account an.

Anmelden oder registrieren
    1. Nodezone.net Community
    2. Forum
    3. Gameserver & Hosting
    4. ArmA Series - ArmA 3 / Reforger
    5. Tutorials & Releases

    New ProgressBar System

      • Altis Life
    • br1zey
    • 24. Februar 2017 um 13:19
    • br1zey
      Meister
      Reaktionen
      881
      Trophäen
      11
      Beiträge
      2.458
      Dateien
      2
      Bilder
      58
      • 24. Februar 2017 um 13:19
      • #1

      Hier möchte ich euch Unsere Neue Progress bar Geben die Funktionsweise ähnelt der von ACE3


      Warum Schwierigkeitsgrad 4 ?

      Naja das Ganze funktioniert fast wie bei der ACE3 Progress bar und hat daher auch ein Par Tücken
      Außerdem setzt ich hier Ein gewissen Grund Verständnis voraus

      aber um das ganze ersichtlich zu machen zeig ich euch erstmal wie ihr die Einbaut

      Das Tutorial Orientiert sich an der Version 4.4.R4 aber sollte in Jeder Version gehn

      Fangen wir an Öffnen eure
      Function.hpp
      und tragt ganz am Ende Folgendes ein

      C
      class RL_System
      {
          tag = "RL";
          class functions
          {
                  file = "core\functions";
              class progressBar {};
          };
      };


      Dan erstellt ihr im Ordner core\functions ein Datei mit dem Namen

      fn_progressBar.sqf und Folgendem Inhalt

      C
      /*
       * Author: br1zey/Ryu
       * Special Thanks to ACE3 and Exile Team
       * Draw progress bar and execute given function if succesful.
       * Finish/Failure/Conditional are all passed [_args]
       *
       * Arguments:
       * 0: NUMBER - Total Time (in game "time" seconds)
       * 1: ARRAY - Arguments, passed to condition, fail and finish
       * 2: CODE or STRING - On Finish: Code called or STRING raised as event.
       * 3: CODE or STRING - On Failure: Code called or STRING raised as event.
       * 4: STRING - (Optional) Localized Title
       * 5: CODE - (Optional) Code to check each frame
       * 6: ARRAY - (Optional) Animation to play , Animation playtime
       *
       *
       * Return Value:
       * Nothing
       *
       * Example:
       *
       * [5,[] {Hint "Finished!"}, {hint "Failure!"},"My Title", {true}, ["default",0]] spawn rl_fnc_progressBar
       *
       */
      private["_progress","_startTime","_sleepTime","_display","_label","_progressBarBackground","_progressBarMaxSize","_progressBar","_totalTime","_onFinish", "_onFail","_localizedTitle","_return","_condition","_lastAnimStart"];
      disableSerialization;
      params [
      "_totalTime",
      ["_args",[]],
      "_onFinish",
      "_onFail",
      ["_localizedTitle", ""],
      ["_condition", {true}],
      ["_animArr",[],[["default",0]]]
      ];
      _progress = 0;
      _startTime = diag_tickTime;
      _sleepTime = _totalTime / 100;
      _defaultVehicle = (vehicle player);
      //close all Dialogs
      closeDialog 0;
      ("RLActionProgressLayer" call BIS_fnc_rscLayer) cutRsc ["RscRLActionProgress", "PLAIN", 1, false];
      createDialog "ProgressBar_Dialog";
      
      private _anim = (_animArr select 0);
      private _animTime = (_animArr select 1);
      
      if(_anim isEqualTo "default")then{
          _anim = "AinvPknlMstpSnonWnonDnon_medic_1";
          _animTime = 5.882;
      };
      
      if(! (_anim isEqualTo ""))then{
          [player,_anim,true] remoteExecCall ["life_fnc_animSync",-2];
          player switchMove _anim;
          player playMoveNow _anim;
      };
      
      private _lastAnimStart = time;
      
      _display = uiNamespace getVariable "RscRLActionProgress";
      _label = _display displayCtrl 4002;
      _label ctrlSetText format ["0% - %1",_localizedTitle];
      _progressBarBackground = _display displayCtrl 4001;
      _progressBarBackground ctrlSetBackgroundColor [0, 0, 0, 0.5];
      _progressBarMaxSize = ctrlPosition _progressBarBackground;
      _progressBar = _display displayCtrl 4000;
      _progressBar ctrlSetPosition [_progressBarMaxSize select 0, _progressBarMaxSize select 1, 0, _progressBarMaxSize select 3-0.01];
      _progressBar ctrlSetBackgroundColor [0, 0.5, 1, 1];
      _progressBar ctrlCommit 0;
      _progressBar ctrlSetPosition _progressBarMaxSize;
      _progressBar ctrlCommit _totalTime;
      try
      {
       while {_progress < 1} do{
       if !(alive player) then{
       throw false;
       };
       if !(dialog) then{
       throw false;
       };
       if (!([_args,(time - _startTime),_totalTime] call _condition)) then {
       throw false;
       };
       if(! (_anim isEqualTo "") && time >= (_lastAnimStart + _animTime))then{
         [player,_anim,true] remoteExecCall ["life_fnc_animSync",-2];
         player switchMove _anim;
         player playMoveNow _anim;
       };
       uiSleep _sleepTime;
       _progress = ((diag_tickTime - _startTime) / _totalTime) min 1;
       _label ctrlSetText format["%1%2 - %3", round (_progress * 100), "%",_localizedTitle];
       };
       throw true;
      }
      catch
      {
       _progressBarColor = [];
       if(_exception) then {
       _args call _onFinish;
       _return = true;
       _progressBarColor = [0.7, 0.93, 0, 1];
       }else{
       _args call _onFail;
       _return = false;
       _progressBarColor = [0.91, 0, 0, 1];
       };
       _progressBar ctrlSetBackgroundColor _progressBarColor;
       _progressBar ctrlSetPosition _progressBarMaxSize;
       _progressBar ctrlCommit 0;
      };
      ("RLActionProgressLayer" call BIS_fnc_rscLayer) cutFadeOut 2;
      closeDialog 24025;
      Alles anzeigen

      jetzt nur noch im Ordner dialog ein Datei erstellen mit dem Namen

      RL_progress.hpp

      C
      class ProgressBar_Dialog {
          idd = -1;
          movingEnable = false;
          objects[] = {};
      
          class controlsBackground {
              class Background {
                  idc = 24025;
                  moving = 0;
                  font = "TahomaB";
                  text = "";
                  sizeEx = 0;
                  lineSpacing = 0;
                  access = 0;
                  type = 0;
                  style = 0;
                  size = 1;
                  colorBackground[] = {0, 0, 0, 0.0};
                  colorText[] = {0, 0, 0, 0};
                  x = "safezoneX";
                  y = "safezoneY";
                  w = "safezoneW";
                  h = "safezoneH";
              };
          };
      };
      
      
      class RscRLActionProgress
      {
          idd=24026;
          onLoad="uiNamespace setVariable ['RscRLActionProgress', _this select 0];";
          onUnload="uiNamespace setVariable ['RscRLActionProgress', displayNull]";
          movingEnable = false;
          duration=999999;
          class controls {
              class Background: Life_RscText {
                  idc = -1;
            moving = 0;
            font = "TahomaB";
            text = "";
            sizeEx = 0;
            lineSpacing = 0;
            access = 0;
            type = 0;
            style = 0;
            size = 1;
                  x = 0;
                  y = -0.03;
                  w = 1;
                  h = 0.03;
                  colorBackground[] = {0, 0, 0, 0.7};
              };
      
              class ProgressBackground: Life_RscText {
                  idc = 4001;
                  x = 0.01;
                  y = -0.02;
                  w = 0.98;
                  h = 0.01;
                  colorBackground[] = {0, 0, 0, 0.5};
              };
      
              class Progress: Life_RscText {
                  idc = 4000;
                  x = 0.01;
                  y = -0.02;
                  w = 0.98;
                  h = 0.01;
                  colorBackground[] = {0, 0.5, 1, 1};
              };
      
              class Label: Life_RscText {
                  idc = 4002;
                  x = 0;
                  y = -0.08;
                  w = 1;
                  h = 0.04;
                  colorBackground[]={0,0,0,0};
                  style = 1;
                  sizeEx = 0.04;
                  colorText[]={1,1,1,1};
                  text = "";
              };
          };
      };
      Alles anzeigen

      und in der decription.ext bei RscTitles unter #include "dialog\hud_stats.hpp"

      #include "dialog\RL_progress.hpp"

      und in der dialog\masterhandler.hpp noch

      #include "RL_progress.hpp"

      eintragen

      das war es auch Schon.


      Jetzt zu klein Erklärung

      Man kann damit z.b. Scripte aufrufen die beim Finish oder beim Abbrechen aufgerufen werden dabei kann man aber die Parameter nicht 1:1 mit geben


      mach ich mal ein Beispiel


      C: Beispiel
      [5,[_vehicle,player], {[_this select 0] call life_fnc_Repair}, {hint format["",(name _this select 1)]}, "My Title",{!(alive player)},["default",0]] spawn rl_fnc_progressBar;
      
      
      
      
      
      
      1: Gibt die Zeit in Sekunden an die die Progressbar zum Durchlaufen braucht
      
      
      
      
      2: Sind Parameter die die z.b. Beim Finisch oder Failn fürs Aufrufen von Datein z.b. dort trage ich ein [_vehicle,player] dan wäre das im code [_this select 0,_this select 1]
      
      
      
      
      3: Dort kan man ein code eintragen der Ausgeführt wird wenn die Progressbar Durchgelaufen ist.
      
      
      
      
      4: Selbe wie 3 Nur das der Code Beim Abbreruch ausgefürt wird.
      
      
      
      
      5: Text der in der Progressbar Angezeigt wird.
      
      6: Code der bei jedem % Gechekt wird z.b. {!(alive player)}
      
      7: Array für die Animation ["AnimationName",Zeit der Animation] z.b. ["AinvPknlMstpSnonWnonDnon_medic_1",5.882]
         Man kann auch ["default",0] eintragen dan kommt die Animation wie Beim Auto Reparieren von Altis als Standart oder man macht ["",0] dan ist keine    Animation vorhanden .
      Alles anzeigen


      Wenn ihr Verbesserungen habt gerne her damit Ich habe es nur aus den grund erstellt da mit Tonic sein Progressbar System nicht sonderlich Gefallen hat

      Hier Noch ein Beispiel wie der Aufbau im Script sein müsste Anhand der fn_truckRepair.sqf von AL v5.0

      C
      #include "..\..\script_macros.hpp"
      /*
          File: fn_repairTruck.sqf
          Author: Bryan "Tonic" Boardwine
          Description:
          Main functionality for toolkits, to be revised in later version.
      */
      private ["_veh","_upp","_ui","_progress","_pgText","_cP","_displayName","_test","_sideRepairArray"];
      _veh = cursorObject;
      life_interrupted = false;
      if (isNull _veh) exitWith {};
      if ((_veh isKindOf "Car") || (_veh isKindOf "Ship") || (_veh isKindOf "Air")) then {
          if (life_inv_toolkit > 0) then {
              life_action_inUse = true;
              _displayName = FETCH_CONFIG2(getText,"CfgVehicles",(typeOf _veh),"displayName");
              _upp = format [localize "STR_NOTF_Repairing",_displayName];
      
      
      inner_fnc_repair = {
            params [
            ["_veh",objNull,[objNull]]
            ];
              life_action_inUse = false;
      
              _sideRepairArray = LIFE_SETTINGS(getArray,"vehicle_infiniteRepair");
      
              //Check if playerSide has infinite repair enabled
              if (playerSide isEqualTo civilian && (_sideRepairArray select 0) isEqualTo 0) then {
                  [false,"toolkit",1] call life_fnc_handleInv;
              };
              if (playerSide isEqualTo west && (_sideRepairArray select 1) isEqualTo 0) then {
                  [false,"toolkit",1] call life_fnc_handleInv;
              };
              if (playerSide isEqualTo independent && (_sideRepairArray select 2) isEqualTo 0) then {
                  [false,"toolkit",1] call life_fnc_handleInv;
              };
              if (playerSide isEqualTo east && (_sideRepairArray select 3) isEqualTo 0) then {
                  [false,"toolkit",1] call life_fnc_handleInv;
              };
      
              _veh setDamage 0;
              titleText[localize "STR_NOTF_RepairedVehicle","PLAIN"];
            };
      
              [5,[_veh], {_this call inner_fnc_repair},{hint "Abbgebrochen"},"Repariere",{true},["default",0]] spawn rl_fnc_progressBar
          }else{
            hint "Du hast keinen Werkzeugkasten"
          };
      };
      Alles anzeigen

      ReallifeRPG Admin, Scripter, Technischer Helfer, und Manchmal auch Spieler

      realliferpg128x128.png?resize=128%2C128&ssl=1

      7 Mal editiert, zuletzt von br1zey (19. Juli 2017 um 01:57) aus folgendem Grund: Code Update + Neue Function für Animation Eingefügt

    • Gloescht
      Kenner
      Reaktionen
      442
      Trophäen
      10
      Beiträge
      194
      Dateien
      19
      Bilder
      69
      • 24. Februar 2017 um 13:20
      • #2

      Da geht mir einer flöten"!

    • AmaZiinG
      Profi
      Reaktionen
      496
      Beiträge
      798
      Dateien
      4
      Bilder
      46
      • 24. Februar 2017 um 13:38
      • #3

      Sieht nicht schlecht aus :thumbup:

      Mein Discord:
      https://discord.gg/4UMWmpfDet

    • Skillbottle
      Anfänger
      Reaktionen
      10
      Trophäen
      9
      Beiträge
      53
      Dateien
      1
      Bilder
      3
      • 2. März 2017 um 09:22
      • #4

      Moin,

      ich fange gerade erst an mit dem "Scripten" und weiß nicht genau wie ich jetzt z.B. die alte Bar durch die neue beim reparieren ändern kann.

      Kann mir da jemand helfen?

      MfG Jonas

      Version 5.0

    • moeck
      Erleuchteter
      Reaktionen
      632
      Trophäen
      9
      Beiträge
      3.160
      Bilder
      9
      • 2. März 2017 um 09:37
      • #5

      Hi,

      hier im TuT ist doch alles gut beschrieben was man wo und wie ändern muss um das entsprechend einzubauen. In wiefern benötigst Du Hilfe? Hast Du bereits versucht das mit Hilfe der Anleitung mal bei Dir einzubauen?

      Gruß,

      moeck

      Signatur? Was ist eine Signatur? Kann man das essen?

      Bitte beachten: Ich gebe keinen Support über private Nachrichten!


      Ganz wichtig: [Leitfaden] Wie frage Ich richtig um Hilfe?

      Nicht zu vergessen [Tutorial/Selbst-Test] Sollte ich einen Life Server eröffnen ?

    • Skillbottle
      Anfänger
      Reaktionen
      10
      Trophäen
      9
      Beiträge
      53
      Dateien
      1
      Bilder
      3
      • 2. März 2017 um 09:47
      • #6

      Das Problem ist ich weiß nicht was ich ersetzen soll?

      MfG Jonas

    • Montylein
      Fortgeschrittener
      Reaktionen
      127
      Trophäen
      11
      Beiträge
      363
      Dateien
      2
      Bilder
      7
      • 2. März 2017 um 13:30
      • #7

      Steht aber oben alles bei, was wo hin kommt und was wo ist

    • ScriptOase
      Schüler
      Reaktionen
      161
      Trophäen
      9
      Beiträge
      64
      Dateien
      3
      Bilder
      14
      • 2. März 2017 um 14:01
      • #8

      Schönes teil!!!

      werde es nachher mal testen

      -----------------------------------------------------------------------------------------------------------------------

      30kleinepc8g63o.jpg

    • nflug
      Nerd
      Reaktionen
      225
      Trophäen
      9
      Beiträge
      781
      • 2. März 2017 um 18:40
      • #9

      Hat leider nur keine Safezone... :D Sonst cool

      EDIT: Und für was ist die Variable "_exception" wenn Sie nicht genutzt wird?

      #MAKE_ARMA_NOT_WAR

      ⥴ Scripts made with love

      Why do programmers work in dark rooms?

      Because light attracts bugs...

      Einmal editiert, zuletzt von nflug (2. März 2017 um 18:56)

    • br1zey
      Meister
      Reaktionen
      881
      Trophäen
      11
      Beiträge
      2.458
      Dateien
      2
      Bilder
      58
      • 2. März 2017 um 22:43
      • #10

      "_exception" is die Magische Variable :D

      "_exception" gibt den trow wert wieder also

      ist trow true dan ist "_exception" true ect

      lese dir dazu mal das durch

      wiki

      ReallifeRPG Admin, Scripter, Technischer Helfer, und Manchmal auch Spieler

      realliferpg128x128.png?resize=128%2C128&ssl=1

    • Mattzimann
      Anfänger
      Trophäen
      9
      Beiträge
      43
      • 4. März 2017 um 20:14
      • #11

      Ähm bei mir spammt er jetzt Script core/functions not found

    • br1zey
      Meister
      Reaktionen
      881
      Trophäen
      11
      Beiträge
      2.458
      Dateien
      2
      Bilder
      58
      • 4. März 2017 um 22:17
      • #12

      zeig mal deine Function.hpp

      ReallifeRPG Admin, Scripter, Technischer Helfer, und Manchmal auch Spieler

      realliferpg128x128.png?resize=128%2C128&ssl=1

    • Mattzimann
      Anfänger
      Trophäen
      9
      Beiträge
      43
      • 4. März 2017 um 22:51
      • #13

      Hier

      Dateien

      Functions.txt 11,17 kB – 469 Downloads
    • br1zey
      Meister
      Reaktionen
      881
      Trophäen
      11
      Beiträge
      2.458
      Dateien
      2
      Bilder
      58
      • 4. März 2017 um 23:10
      • #14

      so damit sollte es gehen habe ja nicht umsonst gesagt mach den Eintrag ganz am Ende und nicht vor der letzten Klammer :P

      Functions.txt

      ReallifeRPG Admin, Scripter, Technischer Helfer, und Manchmal auch Spieler

      realliferpg128x128.png?resize=128%2C128&ssl=1

    • nflug
      Nerd
      Reaktionen
      225
      Trophäen
      9
      Beiträge
      781
      • 4. März 2017 um 23:27
      • #15

      Weiß jemand wie man es vlt machen könnte das die ProgressBar nicht verschwindet wenn ein anderer Dialog kommt? Also das man die Priorität irgendwie hochsetzt?

      Habe nähmlich das Problem wenn eine Nachricht kommt (da wir Dialog Nachrichten benutzen) das die ProgressBar zwar weiter läuft aber unsichtbar wird.

      #MAKE_ARMA_NOT_WAR

      ⥴ Scripts made with love

      Why do programmers work in dark rooms?

      Because light attracts bugs...

    • br1zey
      Meister
      Reaktionen
      881
      Trophäen
      11
      Beiträge
      2.458
      Dateien
      2
      Bilder
      58
      • 4. März 2017 um 23:43
      • #16

      mhhhhh hast du in der dan irgentwo im Nachrichten system

      ein

      cutText ["","PLAIN"];

      oder

      cutFadeOut 

      ReallifeRPG Admin, Scripter, Technischer Helfer, und Manchmal auch Spieler

      realliferpg128x128.png?resize=128%2C128&ssl=1

    • nflug
      Nerd
      Reaktionen
      225
      Trophäen
      9
      Beiträge
      781
      • 5. März 2017 um 00:38
      • #17
      Zitat von br1zey

      mhhhhh hast du in der dan irgentwo im Nachrichten system

      ein

      cutText ["","PLAIN"];

      oder

      cutFadeOut 

      Ne :/

      #MAKE_ARMA_NOT_WAR

      ⥴ Scripts made with love

      Why do programmers work in dark rooms?

      Because light attracts bugs...

    • Mattzimann
      Anfänger
      Trophäen
      9
      Beiträge
      43
      • 5. März 2017 um 11:40
      • #18

      Ok, jetzt habe ich keine Errors mehr aber die normalen Leisten werden nicht ersetzt muss ich da noch was ändern ?

    • br1zey
      Meister
      Reaktionen
      881
      Trophäen
      11
      Beiträge
      2.458
      Dateien
      2
      Bilder
      58
      • 5. März 2017 um 15:10
      • #19

      die Normalen leisten Entfernen ???

      ReallifeRPG Admin, Scripter, Technischer Helfer, und Manchmal auch Spieler

      realliferpg128x128.png?resize=128%2C128&ssl=1

    • Mattzimann
      Anfänger
      Trophäen
      9
      Beiträge
      43
      • 5. März 2017 um 15:11
      • #20

      Wie mache ich das am schnellsten ?

    Registrieren oder Einloggen

    Du bist noch kein Mitglied von NodeZone.net? Registriere dich kostenlos und werde Teil einer großartigen Community!

    Registrieren

    Ähnliche Themen

    • Erneutes neues Nachrichtensystem mit Emojis

      • Crunch
      • 29. Januar 2017 um 21:06
      • Tutorials & Releases
    • C# |.NET Fragen zum download und Verzeichnis aus wählen

      • riesensika
      • 30. Juli 2017 um 11:28
      • C/C++
    • Schmerzmittel mit Zeit

      • Vito Scaletta
      • 11. Juli 2017 um 22:11
      • Hilfeforum
    • Altis Life Signatur Generator V2

      • .Pioneer
      • 6. Januar 2017 um 22:48
      • HTML, CSS, PHP, JS
    • Pfad Auswahl vor Download in C# auswählen?

      • Korbinian
      • 15. November 2016 um 15:41
      • C/C++
    • Download Programm in C# Progressbar einbau funktioniert nicht

      • Korbinian
      • 14. November 2016 um 22:45
      • C/C++

    Tags

    • ProgressBar
    • New System

    Wichtige Links & Informationen

    Server & Hosting-Ressourcen

      Server Administration & Hosting Basics

      Windows Server Support & Guides

      Linux Server Configuration & Help

      Setting up TeamSpeak 3 & VoIP Servers

      Domains & Web Hosting for Beginners & Professionals

      Cloud Hosting, Docker & Kubernetes Tutorials

    Gameserver & Modding-Ressourcen

      ArmA 3 Tutorials & Script Collection

      Renting & Operating Gameservers

      DayZ Server Management & Help

      FiveM (GTA V) Server & Script Development

      Rust Server Modding & Administration

      Setting up & Optimizing ARK Survival Servers

    NodeZone.net – Deine Community für Gameserver, Server-Hosting & Modding

      NodeZone.net ist dein Forum für Gameserver-Hosting, Rootserver, vServer, Webhosting und Modding. Seit 2015 bietet unsere Community eine zentrale Anlaufstelle für Server-Admins, Gamer und Technikbegeisterte, die sich über Server-Management, Hosting-Lösungen und Spielemodding austauschen möchten.


      Ob Anleitungen für eigene Gameserver, Hilfe bei Root- und vServer-Konfigurationen oder Tipps zu Modding & Scripting – bei uns findest du fundiertes Wissen und praxisnahe Tutorials. Mit einer stetig wachsenden Community findest du hier Antworten auf deine Fragen, Projektpartner und Gleichgesinnte für deine Gaming- und Serverprojekte. Schließe dich NodeZone.net an und werde Teil einer aktiven Community rund um Server-Hosting, Gameserver-Management und Modding-Ressourcen.

    Wer jetzt nicht teilt ist selber Schuld:
    1. Nutzungsbestimmungen
    2. Datenschutzerklärung
    3. Impressum
    4. Urheberrechts- oder Lizenzverstoß melden
  • Trimax Design coded & layout by Gino Zantarelli 2023-2025©
    Community-Software: WoltLab Suite™