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
So: 18 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

    Neue Datenbankabfrage einfügen

    • Pr3datoR
    • 20. April 2017 um 00:45
    • Geschlossen
    • Erledigt
    • Pr3datoR
      Anfänger
      Reaktionen
      3
      Trophäen
      9
      Beiträge
      59
      • 20. April 2017 um 00:45
      • #1

      Hallo,

      wie füge ich eine neue Datenbankabfrage ein? Ich will nämlich Waffen bei Cops z.B. nicht auf die normale coplevel-Spalte in der Datenbank beziehen sondern auf z.B. department. Habe es auch bereits versucht, aber funktioniert nicht.

      Meine fn_queryRequest.sqf in der life_server.pbo

      Spoiler anzeigen
      Code
      _query = switch(_side) do {
          case west: {_returnCount = 11; format["SELECT playerid, name, cash, bankacc, adminlevel, donatorlvl, department, cop_licenses, coplevel, cop_gear, blacklist, cop_stats FROM players WHERE playerid='%1'",_uid];};

      Und meine fn_requestReceived.sqf

      Spoiler anzeigen
      Code
      #include "..\..\script_macros.hpp"
      /*
          File: fn_requestReceived.sqf
          Author: Bryan "Tonic" Boardwine
      
          Description:
          Called by the server saying that we have a response so let's
          sort through the information, validate it and if all valid
          set the client up.
      */
      private["_array"];
      life_session_tries = life_session_tries + 1;
      if(life_session_completed) exitWith {}; //Why did this get executed when the client already initialized? ****** arma...
      if(life_session_tries > 3) exitWith {cutText[localize "STR_Session_Error","BLACK FADED"]; 0 cutFadeOut 999999999;};
      
      0 cutText [localize "STR_Session_Received","BLACK FADED"];
      0 cutFadeOut 9999999;
      
      //Error handling and junk..
      if(isNil "_this") exitWith {[] call SOCK_fnc_insertPlayerInfo;};
      if(EQUAL(typeName _this,"STRING")) exitWith {[] call SOCK_fnc_insertPlayerInfo;};
      if(EQUAL(count _this,0)) exitWith {[] call SOCK_fnc_insertPlayerInfo;};
      if(EQUAL(SEL(_this,0),"Error")) exitWith {[] call SOCK_fnc_insertPlayerInfo;};
      if(!(EQUAL(steamid,SEL(_this,0)))) exitWith {[] call SOCK_fnc_dataQuery;};
      
      //Lets make sure some vars are not set before hand.. If they are get rid of them, hopefully the engine purges past variables but meh who cares.
      if(!isServer && (!isNil "life_adminlevel" OR !isNil "life_coplevel" OR !isNil "life_donator" OR !isNil life_department)) exitWith {
          [profileName,getPlayerUID player,"VariablesAlreadySet"] remoteExecCall ["SPY_fnc_cookieJar",RSERV];
          [profileName,format["Variables set before client initialization...\nlife_adminlevel: %1\nlife_coplevel: %2\nlife_donator: %3\nlife_department: %4",life_adminlevel,life_coplevel,life_donator,life_department]] remoteExecCall ["SPY_fnc_notifyAdmins",RCLIENT];
          sleep 0.9;
          failMission "SpyGlass";
      };
      
      //Parse basic player information.
      CASH = parseNumber (SEL(_this,2));
      BANK = parseNumber (SEL(_this,3));
      CONST(life_adminlevel,parseNumber (SEL(_this,4)));
      CONST(life_donator,0);
      
      //Loop through licenses
      if(count (SEL(_this,6)) > 0) then {
          {SVAR_MNS [SEL(_x,0),SEL(_x,1)];} foreach (SEL(_this,6));
      };
      
      life_gear = SEL(_this,8);
      [true] call life_fnc_loadGear;
      
      //Parse side specific information.
      switch(playerSide) do {
          case west: {
              CONST(life_coplevel, parseNumber(SEL(_this,7)));
              CONST(life_medicLevel,0);
              life_blacklisted = SEL(_this,9);
              if(EQUAL(LIFE_SETTINGS(getNumber,"save_playerStats"),1)) then {
                  life_hunger = SEL(SEL(_this,10),0);
                  life_thirst = SEL(SEL(_this,10),1);
              };
          };
      
          case civilian: {
              life_is_arrested = SEL(_this,7);
              CONST(life_coplevel, 0);
              CONST(life_medicLevel, 0);
              life_houses = SEL(_this,10);
              if(EQUAL(LIFE_SETTINGS(getNumber,"save_playerStats"),1)) then {
                  life_hunger = SEL(SEL(_this,9),0);
                  life_thirst = SEL(SEL(_this,9),1);
              };
              {
                  _house = nearestBuilding (call compile format["%1", SEL(_x,0)]);
                  life_vehicles pushBack _house;
              } foreach life_houses;
      
              life_gangData = SEL(_this,11);
              if(!(EQUAL(count life_gangData,0))) then {
                  [] spawn life_fnc_initGang;
              };
              [] spawn life_fnc_initHouses;
          };
      
          case independent: {
              CONST(life_medicLevel, parseNumber(SEL(_this,7)));
              CONST(life_coplevel,0);
              if(EQUAL(LIFE_SETTINGS(getNumber,"save_playerStats"),1)) then {
                  life_hunger = SEL(SEL(_this,9),0);
                  life_thirst = SEL(SEL(_this,9),1);
              };
          };
      };
      
      if(count (SEL(_this,13)) > 0) then {
          {life_vehicles pushBack _x;} foreach (SEL(_this,13));
      };
      
      life_session_completed = true;
      Alles anzeigen

      Benutzt wird hier Altis life 4.4.

    • PierreAmyf
      Schüler
      Reaktionen
      39
      Trophäen
      10
      Beiträge
      127
      • 20. April 2017 um 02:56
      • #2

      was meinst du mit waffen ? weil die cops haben cop_gear ???? aber wenn du jetzt von tonic neue abfragenn einfügen willst dann guck dir folgende dateien an Server seitig -- fn_queryRequest, fn_updateRequest, fn_insertRequest, Client seitig -- fn_insertPlayerInfo, fn_updateRequest, fn_requestReceived

    • Pr3datoR
      Anfänger
      Reaktionen
      3
      Trophäen
      9
      Beiträge
      59
      • 20. April 2017 um 11:35
      • #3

      Ich meine damit, dass wir aus diesen:

      Code
      level[] = { "life_coplevel", "SCALAR", 4, "Du bist kein SWAT Mitglied!" };

      dass machen:

      Code
      level[] = { "life_department", "SCALAR", 4, "Du bist kein SWAT Mitglied!" };

      Also das die Datenbankabfrage von der coplevel-Spalte auf die department-Spalte verlegt wird.

      Einmal editiert, zuletzt von Pr3datoR (20. April 2017 um 13:30)

    • PierreAmyf
      Schüler
      Reaktionen
      39
      Trophäen
      10
      Beiträge
      127
      • 20. April 2017 um 13:44
      • #4

      das heißt du willst nur die cop variable um ändern in department dann musst du in allen scripts wo die abfragen drinne sind auch alles ändern an besten einfach note pad strg und f und dann life_coplevel einfach durch life_department ersetzten.

    • Rom
      Kenner
      Reaktionen
      156
      Beiträge
      533
      • 20. April 2017 um 13:51
      • #5

      Meine Meinung ist, wenn man die Datenbank-Spalte von coplevel in departmentlevel umbenenn und in den SQL-Abfragen auch die Spalten ändert, aber der Effekt für den Spieler mit nur einem Level in dieser Fraktion gleich bleibt, dass es eigentlich unnötig ist.

      Oder meinst du dass du für die Cops quasi zwei Coplevel hast:

      - life_coplevel

      - life_departmentlevel

      Wenn du aber einfach eine Variable ändern willst, weil Baum, ist es unnötig und kann unnötig zu Problemen führen, wenn man nicht alles, was durch die Änderung beeinflusst werden kann, beachtet.

      Denn das verstehe ich daraus:

      Zitat von Pr3datoR

      Also das die Datenbankabfrage von der coplevel-Spalte auf die department-Spalte verlegt wird.

      Wenn ich etwas missverstanden habe, hoppala

    • Pr3datoR
      Anfänger
      Reaktionen
      3
      Trophäen
      9
      Beiträge
      59
      • 20. April 2017 um 13:52
      • #6

      Naja aber da ich das ganze nur bei den Waffen so haben will und nicht bei den Fahrzeugen muss ich das drin lassen. Also serverseitig geht das ganze auch nur clientseitig kann er die nicht abfragen.

      Hier mal meine requestRecieved:

      Spoiler anzeigen
      Code
      #include "..\..\script_macros.hpp"
      /*
          File: fn_requestReceived.sqf
          Author: Bryan "Tonic" Boardwine
      
          Description:
          Called by the server saying that we have a response so let's
          sort through the information, validate it and if all valid
          set the client up.
      */
      private["_array"];
      life_session_tries = life_session_tries + 1;
      if(life_session_completed) exitWith {}; //Why did this get executed when the client already initialized? ****** arma...
      if(life_session_tries > 3) exitWith {cutText[localize "STR_Session_Error","BLACK FADED"]; 0 cutFadeOut 999999999;};
      
      0 cutText [localize "STR_Session_Received","BLACK FADED"];
      0 cutFadeOut 9999999;
      
      //Error handling and junk..
      if(isNil "_this") exitWith {[] call SOCK_fnc_insertPlayerInfo;};
      if(EQUAL(typeName _this,"STRING")) exitWith {[] call SOCK_fnc_insertPlayerInfo;};
      if(EQUAL(count _this,0)) exitWith {[] call SOCK_fnc_insertPlayerInfo;};
      if(EQUAL(SEL(_this,0),"Error")) exitWith {[] call SOCK_fnc_insertPlayerInfo;};
      if(!(EQUAL(steamid,SEL(_this,0)))) exitWith {[] call SOCK_fnc_dataQuery;};
      
      //Lets make sure some vars are not set before hand.. If they are get rid of them, hopefully the engine purges past variables but meh who cares.
      if(!isServer && (!isNil "life_adminlevel" OR !isNil "life_coplevel" OR !isNil "life_donator" OR !isNil "life_department")) exitWith {
          [profileName,getPlayerUID player,"VariablesAlreadySet"] remoteExecCall ["SPY_fnc_cookieJar",RSERV];
          [profileName,format["Variables set before client initialization...\nlife_adminlevel: %1\nlife_coplevel: %2\nlife_donator: %3\nlife_department: %4",life_adminlevel,life_coplevel,life_donator,life_department]] remoteExecCall ["SPY_fnc_notifyAdmins",RCLIENT];
          sleep 0.9;
          failMission "SpyGlass";
      };
      
      //Parse basic player information.
      CASH = parseNumber (SEL(_this,2));
      BANK = parseNumber (SEL(_this,3));
      CONST(life_adminlevel,parseNumber (SEL(_this,4)));
      CONST(life_donator,0);
      
      //Loop through licenses
      if(count (SEL(_this,6)) > 0) then {
          {SVAR_MNS [SEL(_x,0),SEL(_x,1)];} foreach (SEL(_this,6));
      };
      
      life_gear = SEL(_this,8);
      [true] call life_fnc_loadGear;
      
      //Parse side specific information.
      switch(playerSide) do {
          case west: {
              CONST(life_coplevel, parseNumber(SEL(_this,7)));
              CONST(life_department,parseNumber (SEL(_this,10)));
              CONST(life_medicLevel,0);
              life_blacklisted = SEL(_this,9);
              if(EQUAL(LIFE_SETTINGS(getNumber,"save_playerStats"),1)) then {
                  life_hunger = SEL(SEL(_this,11),0);
                  life_thirst = SEL(SEL(_this,11),1);
              };
          };
      
          case civilian: {
              life_is_arrested = SEL(_this,7);
              CONST(life_coplevel, 0);
              CONST(life_medicLevel, 0);
              life_houses = SEL(_this,10);
              if(EQUAL(LIFE_SETTINGS(getNumber,"save_playerStats"),1)) then {
                  life_hunger = SEL(SEL(_this,9),0);
                  life_thirst = SEL(SEL(_this,9),1);
              };
              {
                  _house = nearestBuilding (call compile format["%1", SEL(_x,0)]);
                  life_vehicles pushBack _house;
              } foreach life_houses;
      
              life_gangData = SEL(_this,11);
              if(!(EQUAL(count life_gangData,0))) then {
                  [] spawn life_fnc_initGang;
              };
              [] spawn life_fnc_initHouses;
          };
      
          case independent: {
              CONST(life_medicLevel, parseNumber(SEL(_this,7)));
              CONST(life_coplevel,0);
              if(EQUAL(LIFE_SETTINGS(getNumber,"save_playerStats"),1)) then {
                  life_hunger = SEL(SEL(_this,9),0);
                  life_thirst = SEL(SEL(_this,9),1);
              };
          };
      };
      
      if(count (SEL(_this,13)) > 0) then {
          {life_vehicles pushBack _x;} foreach (SEL(_this,13));
      };
      
      life_session_completed = true;
      Alles anzeigen
      Zitat

      Oder meinst du dass du für die Cops quasi zwei Coplevel hast:

      Ja so will ich das.

      2 Mal editiert, zuletzt von Pr3datoR (20. April 2017 um 14:13)

    • Pr3datoR
      Anfänger
      Reaktionen
      3
      Trophäen
      9
      Beiträge
      59
      • 20. April 2017 um 15:52
      • #7

      So es funktioniert :) Hatte, wie oft, ein Komma vergessen und dadurch funktionierte es nicht.

    Registrieren oder Einloggen

    Du bist noch kein Mitglied von Native-Servers.com? Registriere dich kostenlos und werde Teil einer großartigen Community!

    Benutzerkonto erstellen

    Tags

    • Datenbankabfrage #

    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™