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: 20 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

    Globale Variablen in einer Config Datei nutzen

    • moeck
    • 8. November 2017 um 22:57
    • Erledigt
    • moeck
      Erleuchteter
      Reaktionen
      632
      Trophäen
      9
      Beiträge
      3.160
      Bilder
      9
      • 8. November 2017 um 22:57
      • #1

      Moin,

      wie oben schon geschrieben möchte ich gern in einer Config Datei globale Variablen nutzen um den Verkaufspreis festzulegen. Anbei mal ein Beispiel wie ich mir das vorstelle.

      Code
      class VirtualItems {
          //Virtual Items
      
          
          class oilp {
              variable = "oilp";
              displayName = "STR_Item_OilP";
              weight = 2;
              buyPrice = -1;
              sellPrice = OILP_SELL; // diese ist als globale Variable definiert.
              illegal = false;
              edible = -1;
              icon = "";
          };
          class pickaxe {
              variable = "pickaxe";
              displayName = "STR_Item_Pickaxe";
              weight = 2;
              buyPrice = 1200;
              sellPrice = 350;
              illegal = false;
              edible = -1;
              icon = "icons\ico_pickaxe.paa";
          };
      };
      Alles anzeigen

      Eventuell hat wer eine Idee wie man das lösen kann.

      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 ?

    • blackfisch
      Legende
      Reaktionen
      2.944
      Trophäen
      10
      Beiträge
      5.966
      Dateien
      6
      Bilder
      63
      • 8. November 2017 um 23:22
      • #2

      geht nicht. Ende :P kannst maximal Konstanten in der Config selbst definieren mit #define

      #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!

      ______________________

    • moeck
      Erleuchteter
      Reaktionen
      632
      Trophäen
      9
      Beiträge
      3.160
      Bilder
      9
      • 9. November 2017 um 00:16
      • #3

      Es geht doch ^^ als Beispiel mal die fn_virt_sell.sqf

      C
      #include "..\..\script_macros.hpp"
      /*
          File: fn_virt_sell.sqf
          Author: Bryan "Tonic" Boardwine
      
          Description:
          Sell a virtual item to the store / shop
      */
      private ["_type","_index","_price","_amount","_name"];
      if ((lbCurSel 2402) isEqualTo -1) exitWith {};
      _type = lbData[2402,(lbCurSel 2402)];
      if (M_CONFIG(isNumber,"VirtualItems",_type,"sellPrice")) then {
          _price = M_CONFIG(getNumber,"VirtualItems",_type,"sellPrice");
      } else {
          _price = M_CONFIG(getText,"VirtualItems",_type,"sellPrice");
          _price = call compile _price;
      };
      
      if (_price isEqualTo -1) exitWith {};
      
      _amount = ctrlText 2405;
      if (!([_amount] call TON_fnc_isnumber)) exitWith {hint localize "STR_Shop_Virt_NoNum";};
      _amount = parseNumber (_amount);
      if (_amount > (ITEM_VALUE(_type))) exitWith {hint localize "STR_Shop_Virt_NotEnough"};
      if ((time - life_action_delay) < 0.2) exitWith {hint localize "STR_NOTF_ActionDelay";};
      life_action_delay = time;
      
      _price = (_price * _amount);
      _name = M_CONFIG(getText,"VirtualItems",_type,"displayName");
      if ([false,_type,_amount] call life_fnc_handleInv) then {
          hint format [localize "STR_Shop_Virt_SellItem",_amount,(localize _name),[_price] call life_fnc_numberText];
          CASH = CASH + _price;
          [0] call SOCK_fnc_updatePartial;
          [] call life_fnc_virt_update;
      };
      
      if (life_shop_type isEqualTo "drugdealer") then {
          private ["_array","_ind","_val"];
          _array = life_shop_npc getVariable ["sellers",[]];
          _ind = [getPlayerUID player,_array] call TON_fnc_index;
          if (!(_ind isEqualTo -1)) then {
              _val = ((_array select _ind) select 2);
              _val = _val + _price;
              _array set[_ind,[getPlayerUID player,profileName,_val]];
              life_shop_npc setVariable ["sellers",_array,true];
          } else {
              _array pushBack [getPlayerUID player,profileName,_price];
              life_shop_npc setVariable ["sellers",_array,true];
          };
      };
      
      if (life_shop_type isEqualTo "gold" && (LIFE_SETTINGS(getNumber,"noatm_timer")) > 0) then {
          [] spawn {
              life_use_atm = false;
              sleep ((LIFE_SETTINGS(getNumber,"noatm_timer")) * 60);
              life_use_atm = true;
          };
      };
      
      [3] call SOCK_fnc_updatePartial;
      Alles anzeigen

      man muss die Zeile

      _price = M_CONFIG(getNumber,"VirtualItems",_type,"sellPrice");

      durch das ersetzen ^^

      Code
      if (M_CONFIG(isNumber,"VirtualItems",_type,"sellPrice")) then {
          _price = M_CONFIG(getNumber,"VirtualItems",_type,"sellPrice");
      } else {
          _price = M_CONFIG(getText,"VirtualItems",_type,"sellPrice");
          _price = call compile _price;
      };

      dann funktioniert das.

      Gruß,

      moeck

      P.s.: blackfisch : kannste zu machen

      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 ?

    • br1zey
      Meister
      Reaktionen
      881
      Trophäen
      11
      Beiträge
      2.458
      Dateien
      2
      Bilder
      58
      • 9. November 2017 um 00:23
      • #4

      dan ist es aber keine Globale Variable :P

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

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

    • moeck
      Erleuchteter
      Reaktionen
      632
      Trophäen
      9
      Beiträge
      3.160
      Bilder
      9
      • 9. November 2017 um 00:29
      • #5

      doch OILP_SELL ist eine globale Variable die gesetzt wird und ich wollte nur an den Inhalt der Variablen rankommen 8o

      Code
      OILP_SELL= random (10000);
      publicVariable "OILP_SELL";

      und die berechnung findet auf dem life_server statt

      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 ?

      2 Mal editiert, zuletzt von moeck (9. November 2017 um 00:36)

    • Kaibu
      Amateur
      Reaktionen
      141
      Trophäen
      9
      Beiträge
      166
      Bilder
      31
      • 9. November 2017 um 13:16
      • #6

      Ich habe keine Ahnung davon aber moeck aber das geht rein aus der Sicht eines C Compilers wie Arma ihn benutzt nicht.

      ReallifeRPG Admin seit 2014

      Disclaimer: Falls nicht ausdrücklich markiert sind alle Aussagen lediglich meine eigenen und spiegeln nicht die Ansichten des Projektes ReallifeRPG.de da.

    • moeck
      Erleuchteter
      Reaktionen
      632
      Trophäen
      9
      Beiträge
      3.160
      Bilder
      9
      • 9. November 2017 um 15:16
      • #7
      Zitat von Kaibu

      Ich habe keine Ahnung davon aber moeck aber das geht rein aus der Sicht eines C Compilers wie Arma ihn benutzt nicht.

      Also so wie ich das oben gepostet habe, funktioniert es. Das habe ich gestern erfolgreich getestet.

      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 ?

    • Kaibu
      Amateur
      Reaktionen
      141
      Trophäen
      9
      Beiträge
      166
      Bilder
      31
      • 9. November 2017 um 17:48
      • #8

      Sehr interessant, welches komische PBO-Tool lässt dich das überhaupt packen ?

      Und was passiert wenn dein OIL nur eine globale "Clientseitige" ist und nicht via dieser Drecks publicVariable Funktion gesetzt ist.

      Oder was passiert wenn ein Client die Variable noch nicht via publicVariable bekommen hat (lag etc) und die Funktion gecalled wird ?

      ReallifeRPG Admin seit 2014

      Disclaimer: Falls nicht ausdrücklich markiert sind alle Aussagen lediglich meine eigenen und spiegeln nicht die Ansichten des Projektes ReallifeRPG.de da.

    • OPTiX
      Anfänger
      Reaktionen
      95
      Trophäen
      11
      Beiträge
      71
      • 9. November 2017 um 17:56
      • #9
      Zitat von Kaibu

      Sehr interessant, welches komische PBO-Tool lässt dich das überhaupt packen ?

      Und was passiert wenn dein OIL nur eine globale "Clientseitige" ist und nicht via dieser Drecks publicVariable Funktion gesetzt ist.

      Oder was passiert wenn ein Client die Variable noch nicht via publicVariable bekommen hat (lag etc) und die Funktion gecalled wird ?

      Er schreibt doch nur entweder eine Zahl oder Code als String im Feld, das lässt sich doch von jedem PBO Tool packen.

    • OPTiX
      Anfänger
      Reaktionen
      95
      Trophäen
      11
      Beiträge
      71
      • 9. November 2017 um 18:00
      • #10
      Zitat von moeck

      doch OILP_SELL ist eine globale Variable die gesetzt wird und ich wollte nur an den Inhalt der Variablen rankommen 8o

      Code
      OILP_SELL= random (10000);
      publicVariable "OILP_SELL";

      und die berechnung findet auf dem life_server statt

      Du solltest ggf in der Konfig sowas wie "(missionnamespace getvariable ['Vorname', 5000])" verwenden, für den Fall, dass die Variable nicht existiert.

    • Kaibu
      Amateur
      Reaktionen
      141
      Trophäen
      9
      Beiträge
      166
      Bilder
      31
      • 9. November 2017 um 18:17
      • #11

      Das das jeglicher C Konvention wiederspricht sei Mal dahingestellt..

      ReallifeRPG Admin seit 2014

      Disclaimer: Falls nicht ausdrücklich markiert sind alle Aussagen lediglich meine eigenen und spiegeln nicht die Ansichten des Projektes ReallifeRPG.de da.

    • moeck
      Erleuchteter
      Reaktionen
      632
      Trophäen
      9
      Beiträge
      3.160
      Bilder
      9
      • 9. November 2017 um 18:25
      • #12

      und wer sagt dass ich den kram im client erzeuge ^^

      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 ?

    • Kaibu
      Amateur
      Reaktionen
      141
      Trophäen
      9
      Beiträge
      166
      Bilder
      31
      • 9. November 2017 um 18:50
      • #13

      Hatte deinen call compile übersehen, Frage mich aber immernoch welches PBO-tool dich die .hpp so packen lässt (wenn das der gesamte Inhalt ist). Arma müsste da auch Fehler schmeißen beim laden..

      ReallifeRPG Admin seit 2014

      Disclaimer: Falls nicht ausdrücklich markiert sind alle Aussagen lediglich meine eigenen und spiegeln nicht die Ansichten des Projektes ReallifeRPG.de da.

      Einmal editiert, zuletzt von Kaibu (9. November 2017 um 18:57)

    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™