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
Fr: 23 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. Hilfeforum

    [Tutorial] Loading Animation

    • Risk
    • 19. April 2019 um 11:53
    • Erledigt
    • Risk
      Kenner
      Reaktionen
      193
      Trophäen
      11
      Beiträge
      573
      • 19. April 2019 um 11:53
      • #1

      So bin endlich fertig geworden :D

      neue datei erstellen

      fn_loading.sqf

      Spoiler anzeigen
      Code
      #include "\die_sippe_functions\script_macros.hpp"
      /*
          init loading circle
          call sippe_fnc_loading;
          waitUntil {player getVariable ["isDoneLoading", 0] isEqualTo 1};
      
          Parameters:
              - _textToDisplay [STRING] Text to show
              - _durchgaenge [NUMBER] After how many full rotations should the loading end?
              - _speedAngle [NUMBER] Speed of the rotation
      */
      params[
          ["_textToDisplay", "Kein Text hinterlegt"],
          ["_durchgaenge", 5],
          ["_speedAngle", 1]
      ];
      0 cutText["","BLACK FADED",99999999];
      player setVariable ["isDoneLoading", 0, false];
      disableSerialization;
      (findDisplay 5000) displaySetEventHandler ["keyDown","_this call life_fnc_displayHandler"];
      angle = 0;
      speedAngle = _speedAngle;
      counter = 0;
      textToDisplay = _textToDisplay;
      durchgaenge = _durchgaenge;
      LIFELOADING(800) ctrlSetStructuredText parseText format["<t align='center'>%1</t>", textToDisplay];
      onEachFrame {
          if (angle > 89) then {
              LIFELOADING(800) ctrlSetStructuredText parseText format["<t align='center'>%1.</t>", textToDisplay];
          };
          if (angle > 179) then {
              LIFELOADING(800) ctrlSetStructuredText parseText format["<t align='center'>%1..</t>", textToDisplay];
          };
          if (angle > 269) then {
              LIFELOADING(800) ctrlSetStructuredText parseText format["<t align='center'>%1...</t>", textToDisplay];
          };    
          if (angle > 359) then { 
              angle = 0; 
              counter = counter + 1;
              LIFELOADING(800) ctrlSetStructuredText parseText format["<t align='center'>%1</t>", textToDisplay];
          };            
          LIFELOADING(900) ctrlSetAngle [angle, 0.5, 0.5];   
          angle = angle + speedAngle; 
          if(counter isEqualTo durchgaenge)exitWith{
              player setVariable ["isDoneLoading", 1, false];
          }; 
      };
      Alles anzeigen

      loading.hpp

      Spoiler anzeigen
      Code
      class life_loading {
          idd = 5000;
          name= "life_loading";
          movingEnable = 0;
          enableSimulation = 1;
          onLoad="uiNamespace setVariable ['life_loading',_this select 0]";
          fadein=0;
          duration = 99999999999;
          fadeout=0;
          objects[]={};
      
          class controlsBackground {
              class circle: Life_RscPictureKeepAspect {
                  idc = 900;
                  text = "A3\Missions_F_Exp\data\Img\lobby\ui_campaign_lobby_background_tablet_radial_left_ca.paa";
                  x = 0.45875 * safezoneW + safezoneX;
                  y = 0.422973 * safezoneH + safezoneY;
                  w = 0.0825 * safezoneW;
                  h = 0.154054 * safezoneH;
              };
      
              class text: Life_RscStructuredText {
                  idc = 800;
                  text = "";
                  x = 0.29375 * safezoneW + safezoneX;
                  y = 0.400965 * safezoneH + safezoneY;
                  w = 0.4125 * safezoneW;
                  h = 0.0220078 * safezoneH;
              };
          };
      };
      Alles anzeigen

      in eurer Masterhandler.hpp

      Code
      #include "loading.hpp"

      eintragen.

      eure core/init.sqf bearbeiten. ( MEINE IST BEARBEITET UND KÖNNTE NICHT MIT EURER FUNKTIONIEREN!!!)

      Spoiler anzeigen
      Code
      #include "..\script_macros.hpp"
      /*
          File: init.sqf
          Author: Bryan "Tonic" Boardwine
          Description:
          Master client initialization file
      */
      diag_log "----------------------------------------------------------------------------------------------------";
      diag_log "--------------------------------- Starting Altis Life Client Init ----------------------------------";
      diag_log format["------------------------------------------ Version %1 -------------------------------------------",(LIFE_SETTINGS(getText,"framework_version"))];
      diag_log "----------------------------------------------------------------------------------------------------";
      0 cutText["","BLACK FADED",99999999];
      if (!(createDialog "life_loading")) exitWith { hint "ERROR LOADING NOT WORKING ERROR"; };
      ["Der Client wird geladen - Bitte warten", 2, 10] call sippe_fnc_loading;
      waitUntil {player getVariable ["isDoneLoading", 0] isEqualTo 1};
      _timeStamp = diag_tickTime;
      
      waitUntil {!isNull (findDisplay 46)};
      [] call compile preprocessFileLineNumbers "core\clientValidator.sqf";
      enableSentences false;
      
      diag_log "[Life Client] Initialization Variables";
      [] call compile preprocessFileLineNumbers "core\configuration.sqf";
      diag_log "[Life Client] Variables initialized";
      
      diag_log "[Life Client] Setting up Eventhandlers";
      [] call life_fnc_setupEVH;
      diag_log "[Life Client] Eventhandlers completed";
      
      diag_log "[Life Client] Setting up user actions";
      [] call life_fnc_setupActions;
      diag_log "[Life Client] User actions completed";
      
      diag_log "[Life Client] Waiting for the server to be ready...";
      waitUntil {!isNil "life_server_isReady" && {!isNil "life_server_extDB_notLoaded"}};
      
      if (life_server_extDB_notLoaded) exitWith {
          0 cutText [localize "STR_Init_ExtdbFail","BLACK FADED",99999999];
      };
      
      waitUntil {life_server_isReady};
      diag_log "[Life Client] Server loading completed ";
      //0 cutText [localize "STR_Init_ServerReady","BLACK FADED",99999999];
      ["Warten, bis der Server bereit ist - Bitte warten", 2, 10] call sippe_fnc_loading;
      waitUntil {player getVariable ["isDoneLoading", 0] isEqualTo 1};
      
      [] call SOCK_fnc_dataQuery;
      waitUntil {life_session_completed};
      //0 cutText[localize "STR_Init_ClientFinish","BLACK FADED",99999999];
      ["Fertigstellen der Client-Einrichtungs-Prozedur - Bitte warten", 2, 10] call sippe_fnc_loading;
      waitUntil {player getVariable ["isDoneLoading", 0] isEqualTo 1};
      [] spawn life_fnc_escInterupt;
      closeDialog 0;
      switch (playerSide) do {
          case west: {
              life_paycheck = LIFE_SETTINGS(getNumber,"paycheck_cop");
              [] call life_fnc_initCop;
          };
          case civilian: {
              life_paycheck = LIFE_SETTINGS(getNumber,"paycheck_civ");
              [] call life_fnc_initCiv;
          };
          case independent: {
              life_paycheck = LIFE_SETTINGS(getNumber,"paycheck_med");
              [] call life_fnc_initMedic;
          };
      };
      life_paycheck = compile (if (life_paycheck isEqualType "") then { life_paycheck} else {str(life_paycheck)});
      
      player setVariable ["restrained", false, true];
      player setVariable ["Escorting", false, true];
      player setVariable ["transporting", false, true];
      player setVariable ["playerSurrender", false, true];
      player setVariable ["realname", profileName, true];
      player setVariable ["gagged",false,true];
      
      diag_log "[Life Client] Past Settings Init";
      
      if (isNil "The_programmer_initialised") then { 
          (findDisplay 46) displayAddEventHandler ["KeyDown", "_this call life_fnc_keyHandler"];
      }; 
      [player, life_settings_enableSidechannel, playerSide] remoteExecCall ["TON_fnc_manageSC", RSERV];
      
      call life_fnc_hudSetup;
      [] spawn life_fnc_survival;
      
      [] spawn {
          for "_i" from 0 to 1 step 0 do {
              waitUntil {(!isNull (findDisplay 49)) && {(!isNull (findDisplay 602))}}; // Check if Inventory and ESC dialogs are open
              (findDisplay 49) closeDisplay 2; // Close ESC dialog
              (findDisplay 602) closeDisplay 2; // Close Inventory dialog
          };
      };
      
      addMissionEventHandler ["EachFrame", life_fnc_playerTags];
      addMissionEventHandler ["EachFrame", life_fnc_revealObjects];
      
      if (LIFE_SETTINGS(getNumber,"enable_fatigue") isEqualTo 0) then {player enableFatigue false;};
      if (LIFE_SETTINGS(getNumber,"pump_service") isEqualTo 1) then {
          [] execVM "core\fn_setupStationService.sqf";
      };
      
      life_fnc_RequestClientId = player;
      publicVariableServer "life_fnc_RequestClientId"; 
      
      /*
          https://feedback.bistudio.com/T117205 - disableChannels settings cease to work when leaving/rejoining mission
          Universal workaround for usage in a preInit function. - AgentRev
          Remove if Bohemia actually fixes the issue.
      */
      {
          _x params [["_chan",-1,[0]], ["_noText","false",[""]], ["_noVoice","false",[""]]];
      
          _noText = [false,true] select ((["false","true"] find toLower _noText) max 0);
          _noVoice = [false,true] select ((["false","true"] find toLower _noVoice) max 0);
      
          _chan enableChannel [!_noText, !_noVoice];
      
      } forEach getArray (missionConfigFile >> "disableChannels");
      
      if (life_HC_isActive) then {
          [getPlayerUID player, player getVariable ["realname", name player]] remoteExec ["HC_fnc_wantedProfUpdate", HC_Life];
      } else {
          [getPlayerUID player, player getVariable ["realname", name player]] remoteExec ["life_fnc_wantedProfUpdate", RSERV];
      };
      
      [] spawn theprogrammer_core_fnc_clientInit; 
      [] spawn The_programmer_Duty_fnc_init_Service;
      [] spawn {
          _teamspeakName = "Die Sippe";
          _temspeakAdress = "5.9.111.254";
          _channelName = "TaskForceRadio";
      
          // Editing code below is not recommended
         _isAdmin = false;
          if !(isNil "life_adminlevel") then {
              if ((call life_adminlevel) > 0) then {
                  _isAdmin = true;
                  titleText ["The presence check in the Radio Task Force channel is disabled as you are admin !","BLACK IN"];
              };
          };
          if (_isAdmin) exitWith {};
      
          if (isNil "TFAR_fnc_isTeamSpeakPluginEnabled") exitwith {
              999999 cutText ["Radio Task Force is not enabled on your computer. Please re-synchronize and try again","BLACK FADED"];
              999999 cutFadeOut 99999999;
          };
      
          _tfarEnabled = true;
          _playerOnTeamspeak = true;
          _playerInChannel = false;
          _sleep = 2;
          _alreadyKnow = false;
      
          while {true} do {
              if !([] call TFAR_fnc_isTeamSpeakPluginEnabled) then {
                  titleText ["Please enable Radio Task Force in your teampeak plugins ! To do this, go to the teamspeak settings tab then plugins and enable it", "BLACK"];
                  _tfarEnabled = false;
              } else {
                  _tfarEnabled = true;
              };
      
              if !(_teamspeakName == (call TFAR_fnc_getTeamSpeakServerName)) then {
                  titleText [format ["Please join our teamspeak : %1",_temspeakAdress], "BLACK"];
                  _playerOnTeamspeak = false;
              } else {
                  _playerOnTeamspeak = true;
              };
      
              if !(_channelName == (call TFAR_fnc_getTeamSpeakChannelName)) then {
                  titleText ["Please reload your Task Force Radio plugin to be moved to the voice channel! To do this, go to the teamspeak settings then plugins and press the relaod button", "BLACK"];
                  _playerInChannel = false;
              } else {
                  _playerInChannel = true;
              };
      
              if (_tfarEnabled && _playerOnTeamspeak && _playerInChannel) then {
                  if !(_alreadyKnow) then {
                      titleText ["Radio Task Force is well initialized, welcome !","BLACK IN"];
                      _alreadyKnow = true;
                  };
                  _sleep = 5;
              } else {
                  _alreadyKnow = false;
                  _sleep = 2;
              };
              
              sleep _sleep;
          };
      };
      diag_log "----------------------------------------------------------------------------------------------------";
      diag_log format ["               End of Altis Life Client Init :: Total Execution Time %1 seconds ",(diag_tickTime - _timeStamp)];
      diag_log "----------------------------------------------------------------------------------------------------";
      Alles anzeigen

      fn_dataQuery ersetzen

      Spoiler anzeigen
      Code
      #include "..\..\script_macros.hpp"
      /*
          File: fn_dataQuery.sqf
          Author: Bryan "Tonic" Boardwine
      
          Description:
          Starts the 'authentication' process and sends a request out to
          the server to check for player information.
      */
      if (life_session_completed) exitWith {};
      private _sender = player;
      private _uid = getPlayerUID _sender;
      private _side = playerSide;
      [format ["Frage Spieler Informationen zu UID [%1] ab",_uid], 2, 10] call sippe_fnc_loading;
      waitUntil {player getVariable ["isDoneLoading", 0] isEqualTo 1};
      
      if (life_HC_isActive) then {
          [_uid,_side,_sender] remoteExec ["HC_fnc_queryRequest",HC_Life];
      } else {
          [_uid,_side,_sender] remoteExec ["DB_fnc_queryRequest",RSERV];
      };
      Alles anzeigen

      fn_insertPlayerInfo.sqf

      Spoiler anzeigen
      Code
      #include "..\..\script_macros.hpp"
      /*
          File: fn_insertPlayerInfo.sqf
          Author: Bryan "Tonic" Boardwine
      
          Description:
          Upon first join inital player data is sent to the server and added to the database.
          Setup data gets sent to life_server\Functions\MySQL\fn_insertRequest.sqf
      */
      if (life_session_completed) exitWith {};
      //cutText[localize "STR_Session_QueryFail","BLACK FADED"];
      //0 cutFadeOut 9999999;
      ["Versuche die UID: %1 zu speichern - Bitte warten", 2, 10] call sippe_fnc_loading;
      waitUntil {player getVariable ["isDoneLoading", 0] isEqualTo 1};
      
      private _bank = switch (playerSide) do {
          case west: {
              LIFE_SETTINGS(getNumber,"bank_cop");
          };
          case civilian: {
              LIFE_SETTINGS(getNumber,"bank_civ");
          };
          case independent: {
              LIFE_SETTINGS(getNumber,"bank_med");
          };
      };
      
      if (life_HC_isActive) then {
          [getPlayerUID player,profileName,CASH,_bank,player] remoteExecCall ["HC_fnc_insertRequest",HC_Life];
      } else {
          [getPlayerUID player,profileName,CASH,_bank,player] remoteExecCall ["DB_fnc_insertRequest",RSERV];
      };
      Alles anzeigen

      fn_requestReceived.sqf den CutText ändern.

      Spoiler anzeigen
      Code
      //0 cutText [localize "STR_Session_Received","BLACK FADED"];
      //0 cutFadeOut 9999999;
      [localize "STR_Session_Received", 2, 10] call sippe_fnc_loading;
      waitUntil {player getVariable ["isDoneLoading", 0] isEqualTo 1};

      Fertig :)

      mfg Risk

      https://www.twitch.tv/theriskarma

      7 Mal editiert, zuletzt von Risk (26. April 2019 um 16:24)

    • Risk
      Kenner
      Reaktionen
      193
      Trophäen
      11
      Beiträge
      573
      • 19. April 2019 um 17:05
      • #2

      - löschen -

      mfg Risk

      https://www.twitch.tv/theriskarma

      2 Mal editiert, zuletzt von Risk (26. April 2019 um 10:17)

    • Risk
      Kenner
      Reaktionen
      193
      Trophäen
      11
      Beiträge
      573
      • 20. April 2019 um 08:33
      • #3

      - löschen -

      mfg Risk

      https://www.twitch.tv/theriskarma

      2 Mal editiert, zuletzt von Risk (26. April 2019 um 16:21)

    • Risk
      Kenner
      Reaktionen
      193
      Trophäen
      11
      Beiträge
      573
      • 24. April 2019 um 13:00
      • #4

      - löschen -

      mfg Risk

      https://www.twitch.tv/theriskarma

      Einmal editiert, zuletzt von Risk (26. April 2019 um 10:18)

    • BlueType
      Nerd
      Reaktionen
      190
      Trophäen
      8
      Beiträge
      735
      Bilder
      27
      • 24. April 2019 um 19:34
      • #5
      Code
      private _ui = uiNamespace getVariable "life_loading";

      Musst nicht vorher auch mal Setvariable machen? :D

      MFG ƁLƱΣƬΨƤΣ™

      :!:Hinweis:!:

      :!:Ich bin zwar erfahren mit der Sprache SQF, lerne trotzdem noch, definitiv kein Profi:!:

      Discord : ╲⎝⧹⎝ƁLƱΣƬΨƤΣ™⎠⧸⎠╱#0448

      Discord Server : https://discord.gg/K8KhAnE

      Teamspeak : ts.Endless-Net.de

    • Kuchenplatte
      Erleuchteter
      Reaktionen
      1.013
      Beiträge
      3.387
      Dateien
      7
      Bilder
      10
      • 24. April 2019 um 19:41
      • #6

      Glaube hier hatte jemand die gleiche Idee

      https://www.altisliferpg.com/topic/5695-xaf…ervices-remake/

      Shadow|Eagle: "Frag mich eher why ich dich nicht noch irgendwas gegeben hab als Vorschlag xD"

      !Acryl-Exile Server!

      195.201.148.155:2302

      Kuchenplatte On GitHub

      https://github.com/Kuchenplatte

      Kuchenplattes Backstube

      Kuchenplattes Discord

      Kuchenplatte On Twitch
      Come On and Follow Me! On Twitch.TV

    • Risk
      Kenner
      Reaktionen
      193
      Trophäen
      11
      Beiträge
      573
      • 24. April 2019 um 19:41
      • #7
      Zitat von BlueType
      Code
      private _ui = uiNamespace getVariable "life_loading";

      Musst nicht vorher auch mal Setvariable machen? :D

      Siehe .hpp :)

      mfg Risk

      https://www.twitch.tv/theriskarma

    • Henne
      Nerd
      Reaktionen
      155
      Trophäen
      7
      Beiträge
      840
      Bilder
      7
      • 24. April 2019 um 19:42
      • #8

      Hust

      Code
      onLoad="uiNamespace setVariable ['life_loading',_this select 0]";

      Interessant sind aber diese Zeilen. ;)

      Code
      life_loading = false;
      if(life_loading) exitWith{hint "Lädt noch"};
    • BlueType
      Nerd
      Reaktionen
      190
      Trophäen
      8
      Beiträge
      735
      Bilder
      27
      • 24. April 2019 um 19:43
      • #9

      Benutz mal nur _ui und nicht noch danach was meiner Meinung nach schwachsinn ist ui extra benannt

      MFG ƁLƱΣƬΨƤΣ™

      :!:Hinweis:!:

      :!:Ich bin zwar erfahren mit der Sprache SQF, lerne trotzdem noch, definitiv kein Profi:!:

      Discord : ╲⎝⧹⎝ƁLƱΣƬΨƤΣ™⎠⧸⎠╱#0448

      Discord Server : https://discord.gg/K8KhAnE

      Teamspeak : ts.Endless-Net.de

    • Risk
      Kenner
      Reaktionen
      193
      Trophäen
      11
      Beiträge
      573
      • 26. April 2019 um 10:20
      • #10
      Zitat von BlueType

      Benutz mal nur _ui und nicht noch danach was meiner Meinung nach schwachsinn ist ui extra benannt

      wegen onEachFrame..

      Code
      Example 2:Private variables defined outside of onEachFrame scope are not inherited:
      _myvar = "bob";
      myvar = "bill";
      onEachFrame {hintSilent str [_myvar, myvar]};
      //Result: [any,"bill"]

      kann in Tutorials verschoben werden :)

      Funktioniert jetzt alles :D

      Kann nur kein mp4 Video hochladen.

      mfg Risk

      https://www.twitch.tv/theriskarma

    • Henne
      Nerd
      Reaktionen
      155
      Trophäen
      7
      Beiträge
      840
      Bilder
      7
      • 26. April 2019 um 13:37
      • #11
      Zitat von Risk

      kann in Tutorials verschoben werden :)

      Funktioniert jetzt alles :D

      Möchtest du nicht zuvor vielleicht den Code noch optimieren und unnötigen Code löschen?

      Zitat von Henne079

      Interessant sind aber diese Zeilen. ;)

      Code
      life_loading = false;
      if(life_loading) exitWith{hint "Lädt noch"};

      Oder du erklärst mir, wie an dieser Stelle "life_loading" jemals "true" sein kann.

    • Risk
      Kenner
      Reaktionen
      193
      Trophäen
      11
      Beiträge
      573
      • 26. April 2019 um 14:45
      • #12

      Fange gerade an das ganze zu überarbeiten :P

      mfg Risk

      https://www.twitch.tv/theriskarma

    • Risk
      Kenner
      Reaktionen
      193
      Trophäen
      11
      Beiträge
      573
      • 26. April 2019 um 16:26
      • #13

      Okay soweit alles i.O.

      Das einzige Problem was derzeit besteht ist das wenn man reconnectet er das ganze nicht mehr anzeigt. Sehe da wieder keinen Sinn drin xD

      Vllt. sieht du ja was Henne

      mfg Risk

      https://www.twitch.tv/theriskarma

    • Henne
      Nerd
      Reaktionen
      155
      Trophäen
      7
      Beiträge
      840
      Bilder
      7
      • 26. April 2019 um 17:48
      • #14

      Ich bin gerade noch am schauen, woran es liegen kann, dass nach einem reconnect es nicht mehr angezeigt wird.

      Allerdings fällt mir dies auf:

      Code
      player setVariable ["isDoneLoading", 0, false];
      
      waitUntil {player getVariable ["isDoneLoading", 0] isEqualTo 1};

      1. Wenn das sowieso eine Variable ist, die du an den Spieler heftest, wieso dann nicht gleich eine globale Variable, die beim Spieler gesetzt wird? Also so isDoneLoading = 0.

      2. Wenn du nur zwei Werte dort speicherst (0 und 1), warum dann nicht gleich true/false? Dadurch wäre dies möglich:

      Code
      player setVariable ["isDoneLoading", false, false];
      
      waitUntil {player getVariable ["isDoneLoading", false]};
    • Risk
      Kenner
      Reaktionen
      193
      Trophäen
      11
      Beiträge
      573
      • 26. April 2019 um 18:10
      • #15

      Jo danke für den hint ändere ich sofort.

      mfg Risk

      https://www.twitch.tv/theriskarma

    • Henne
      Nerd
      Reaktionen
      155
      Trophäen
      7
      Beiträge
      840
      Bilder
      7
      • 26. April 2019 um 18:34
      • #16

      Ich sehe jetzt keinen Grund, wieso das nach einem reconnect nicht mehr funktionieren sollte.

      Ich würde einfach mal Testausgaben einfügen und sehen ob und welche ausgegeben werden.

      Dadurch sollte schnell erkennbar sein, in welchem Bereich das Problem liegt.

      Anmerkung die auch ignoriert werden kann

      Nach dem ich mir das aber mal genau angeschaut habe, habe ich nun folgende Frage.

      Was soll das überhaupt bringen?

      Soweit ich es richtig gesehen habe, erstellst du einen Dialog und zeigst ein Bild, dass dann im Kreis gedreht wird.

      Die Anzahl der Drehungen, des Winkels pro Schritt und den Text, der dabei angzeigt werden soll, kann angegeben werden.

      Erst wenn das drehen des Bildes fertig ist, wird die Funktion ausgeführt (in deinen Beispielen Datenbank-Funktionen).

      Wäre es nicht sinnvoller, die Funktion aufzurufen und in der Zeit das Bild zu drehen, bis die Funktion fertig ist?

      Denn dann wird der Spieler nicht unnötig aufgehalten und er sieht wirklich wieweit geladen wurde.

    • Risk
      Kenner
      Reaktionen
      193
      Trophäen
      11
      Beiträge
      573
      • 26. April 2019 um 20:08
      • #17

      Okay hab jetzt Testweise den DIalog 5x hintereinander eingemacht. Beim 1. Connecten ist er während der init und auch nach dem spawnen da und ich bekomme auch einen Hint das er da ist.
      Beim reconnecten bekomme ich einen hint das er da ist, aber er ist nirgends da :D

      mfg Risk

      https://www.twitch.tv/theriskarma

    Registrieren oder Einloggen

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

    Registrieren

    Ähnliche Themen

    • Spawne auf der Spawninsel

      • Niklas Smolik
      • 13. April 2019 um 20:10
      • Hilfeforum
    • Spieler-ID von Datenbank auslesen

      • Alex
      • 3. März 2019 um 12:18
      • Hilfeforum
    • Arma3 server Fehler

      • OvO
      • 12. Februar 2019 um 22:27
      • Linux-Server
    • Problem mit der Datenbank-Verbindung (Windows)

      • zzockerino
      • 28. Juli 2018 um 15:29
      • Hilfeforum
    • serverseitiger remoteExec-Call wird nicht ausgeführt

      • blackfisch
      • 26. Mai 2018 um 13:54
      • Hilfeforum

    Benutzer online in diesem Thema

    • 1 Besucher

    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™