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
Do: 19 Juni 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

    Spieler Processen schneller, manche langsamer

    • Brizi Jaeger
    • 15. Mai 2017 um 00:06
    • Geschlossen
    • Erledigt
    • Brizi Jaeger
      Profi
      Reaktionen
      291
      Trophäen
      11
      Beiträge
      1.025
      • 15. Mai 2017 um 00:06
      • #1

      Hello,

      Ich habe heute von mind. 12 Spielern reportet bekommen das es bei manchen schneller Processen geht und bei manchen langsamer ganz egal beide haben die Lizenz,

      jetzt eben von anderen Spielern sagen diese mir wenn man ranzoomt auf die Karte dann geht das Processen ends schnell.

      Jemand ein Plan wieso, oder selber Erfahrung damit gehabt?

      Processdatei

      Code
      #include "..\..\script_macros.hpp"
      /*
          File: fn_processAction.sqf
          Author: Bryan "Tonic" Boardwine
          Modified : NiiRoZz
      
          Description:
          Master handling for processing an item.
          NiiRoZz : Added multiprocess
      */
      private["_vendor","_type","_itemInfo","_oldItem","_newItemWeight","_newItem","_oldItemWeight","_cost","_upp","_hasLicense","_itemName","_oldVal","_ui","_progress","_pgText","_cP","_materialsRequired","_materialsGiven","_noLicenseCost","_text","_filter","_totalConversions","_minimumConversions"];
      _vendor = [_this,0,ObjNull,[ObjNull]] call BIS_fnc_param;
      _type = [_this,3,"",[""]] call BIS_fnc_param;
      //Error check
      if (isNull _vendor || _type isEqualTo "" || (player distance _vendor > 10)) exitWith {};
      life_action_inUse = false;//Lock out other actions during processing.
      
      if (isClass (missionConfigFile >> "ProcessAction" >> _type)) then {
          _filter = false;
          _materialsRequired = M_CONFIG(getArray,"ProcessAction",_type,"MaterialsReq");
          _materialsGiven = M_CONFIG(getArray,"ProcessAction",_type,"MaterialsGive");
          _noLicenseCost = M_CONFIG(getNumber,"ProcessAction",_type,"NoLicenseCost");
          _text = M_CONFIG(getText,"ProcessAction",_type,"Text");
      } else {_filter = true;};
      
      if (_filter) exitWith {life_action_inUse = false;};
      
      _itemInfo = [_materialsRequired,_materialsGiven,_noLicenseCost,(localize format["%1",_text])];
      if (count _itemInfo isEqualTo 0) exitWith {life_action_inUse = false;};
      
      //Setup vars.
      _oldItem = _itemInfo select 0;
      _newItem = _itemInfo select 1;
      _cost = _itemInfo select 2;
      _upp = _itemInfo select 3;
      _exit = false;
      if (count _oldItem isEqualTo 0) exitWith {life_action_inUse = false;};
      
      _totalConversions = [];
      {
          _var = ITEM_VALUE(_x select 0);
          if (_var isEqualTo 0) exitWith {_exit = true;};
          if (_var < (_x select 1)) exitWith {_exit = true;};
          _totalConversions pushBack (floor (_var/(_x select 1)));
      } forEach _oldItem;
      
      if (_exit) exitWith {life_is_processing = false; hint localize "STR_NOTF_NotEnoughItemProcess"; life_action_inUse = false;};
      
      if (_vendor in [mari_processor,coke_processor,heroin_processor]) then {
          _hasLicense = true;
      } else {
          _hasLicense = LICENSE_VALUE(_type,"civ");
      };
      
      _cost = _cost * (count _oldItem);
      
      _minimumConversions = _totalConversions call BIS_fnc_lowestNum;
      _oldItemWeight = 0;
      {
          _weight = ([_x select 0] call life_fnc_itemWeight) * (_x select 1);
          _oldItemWeight = _oldItemWeight + _weight;
      } count _oldItem;
      
      _newItemWeight = 0;
      {
          _weight = ([_x select 0] call life_fnc_itemWeight) * (_x select 1);
          _newItemWeight = _newItemWeight + _weight;
      } count _newItem;
      
      _exit = false;
      
      if (_newItemWeight > _oldItemWeight) then {
          _netChange = _newItemWeight - _oldItemWeight;
          _freeSpace = life_maxWeight - life_carryWeight;
          if (_freeSpace < _netChange) exitWith {_exit = true;};
          _minimumConversions = floor(_freeSpace / _netChange);
      };
      
      if (_exit) exitWith {hint localize "STR_Process_Weight"; life_is_processing = false; life_action_inUse = false;};
      
      //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 {
          for "_i" from 0 to 1 step 0 do {
              sleep  0.12;
              _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; life_action_inUse = false;};
      
          {
              [false,(_x select 0),((_x select 1)*(_minimumConversions))] call life_fnc_handleInv;
          } count _oldItem;
      
          {
              [true,(_x select 0),((_x select 1)*(_minimumConversions))] call life_fnc_handleInv;
          } count _newItem;
      
          5 cutText ["","PLAIN"];
          if (_minimumConversions isEqualTo (_totalConversions call BIS_fnc_lowestNum)) then {hint localize "STR_NOTF_ItemProcess";} else {hint localize "STR_Process_Partial";};
          life_is_processing = false; life_action_inUse = false;
      } else {
          if (CASH < _cost) exitWith {hint format[localize "STR_Process_License",[_cost] call life_fnc_numberText]; 5 cutText ["","PLAIN"]; life_is_processing = false; life_action_inUse = false;};
      
          for "_i" from 0 to 1 step 0 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; life_action_inUse = false;};
          if (CASH < _cost) exitWith {hint format[localize "STR_Process_License",[_cost] call life_fnc_numberText]; 5 cutText ["","PLAIN"]; life_is_processing = false; life_action_inUse = false;};
      
          {
              [false,(_x select 0),((_x select 1)*(_minimumConversions))] call life_fnc_handleInv;
          } count _oldItem;
      
          {
              [true,(_x select 0),((_x select 1)*(_minimumConversions))] call life_fnc_handleInv;
          } count _newItem;
      
          5 cutText ["","PLAIN"];
          if (_minimumConversions isEqualTo (_totalConversions call BIS_fnc_lowestNum)) then {hint localize "STR_NOTF_ItemProcess";} else {hint localize "STR_Process_Partial";};
          CASH = CASH - _cost;
          life_is_processing = false; life_action_inUse = false;
      };
      Alles anzeigen
    • blackfisch
      Legende
      Reaktionen
      2.944
      Trophäen
      10
      Beiträge
      5.966
      Dateien
      6
      Bilder
      63
      • 15. Mai 2017 um 00:23
      • #2

      sleep -> uiSleep

      Wieso?

      Bei sleep ist die Dauer abhängig von der Framerate ("The sleep precision is given by a framerate")

      Bei uiSleep wird die Systemzeit zur Berechnung genutzt und ist dadurch unabhängig von den FPS ("uiSleep is basically using the system time [...] and not simulation time")

      Dadurch ist auch der "Bug" mit dem schnelleren Verarbeiten auf der Map behoben.

      Siehe auch:

      https://community.bistudio.com/wiki/sleep

      https://community.bistudio.com/wiki/uiSleep

      #MakeArmaNotWar

      Kein Support via PN & Steam! / No Support via DM & Steam!


      Mit freundlichen Grüßen
      blackfisch
      ______________________

      Web: blackfisch.me

      GitHub: GitHub.com/blackfisch

      Mail: [email protected]

      ______________________
      Wichtige Links:
      [Erklärung|Leitfaden] Code Optimierung

      [Tutorial] life_fnc_MP zu remoteExec

      Ohne Logs & entsprechende Dateien kein Support!

      ______________________

    • Brizi Jaeger
      Profi
      Reaktionen
      291
      Trophäen
      11
      Beiträge
      1.025
      • 15. Mai 2017 um 00:29
      • #3

      LoL eine Sache mehr gelernt vielen Dank! :D

    • Kuchenplatte
      Erleuchteter
      Reaktionen
      1.013
      Beiträge
      3.387
      Dateien
      7
      Bilder
      10
      • 15. Mai 2017 um 08:12
      • #4
      Zitat von Brizi Jaeger

      LoL eine Sache mehr gelernt vielen Dank! :D

      wusste ich auch noch nicht 0_o

      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

    • MWZflyer
      Anfänger
      Reaktionen
      12
      Trophäen
      9
      Beiträge
      41
      • 24. Mai 2017 um 02:20
      • #5
      Zitat von blackfisch

      sleep -> uiSleep

      Wieso?

      Bei sleep ist die Dauer abhängig von der Framerate ("The sleep precision is given by a framerate")

      Bei uiSleep wird die Systemzeit zur Berechnung genutzt und ist dadurch unabhängig von den FPS ("uiSleep is basically using the system time [...] and not simulation time")

      Dadurch ist auch der "Bug" mit dem schnelleren Verarbeiten auf der Map behoben.

      Siehe auch:

      https://community.bistudio.com/wiki/sleep

      https://community.bistudio.com/wiki/uiSleep

      Alles anzeigen

      Wirklich hilfreich vielen Dank, war mir so auch noch nicht bekannt.^^

    • Brizi Jaeger
      Profi
      Reaktionen
      291
      Trophäen
      11
      Beiträge
      1.025
      • 24. Mai 2017 um 15:16
      • #6
      Zitat von MWZflyer

      Wirklich hilfreich vielen Dank, war mir so auch noch nicht bekannt.^^

      beim reparieren etc ist es auch so falls du das fixen willst

    Registrieren oder Einloggen

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

    Registrieren

    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™