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. Hilfeforum

    Eigenen DB Eintrag

    • perx
    • 28. April 2018 um 16:29
    • Erledigt
    • perx
      Fortgeschrittener
      Reaktionen
      54
      Trophäen
      11
      Beiträge
      338
      • 28. April 2018 um 16:29
      • #1

      Hey,

      ich habe in der DB bei den players einen neuen DB-Eintrag gemacht: "quest".
      Dieser soll Standartmäßig 0 und durch ein Script später auf 1 gesetzt werden.

      Wie kann ich diesen jetzt aber in einem Script abfragen und wie kann ich in auf 1 setzen?

      Kenne mich leider kaum damit aus wie man in nem Script mit der DB kommuniziert.

      Beste Grüße,

      euer LimnosLife Team.

      _______________________________________________

      Dein Kontakt zu uns:

      E-Mail: [email protected]

      TS3: ts.limnoslife.eu

      Arma: server.limnoslife.eu
      Webseite: limnoslife.eu

    • perx
      Fortgeschrittener
      Reaktionen
      54
      Trophäen
      11
      Beiträge
      338
      • 28. April 2018 um 23:53
      • #2

      Keiner?
      Ich hab bereits vergeblich nach ähnlichen Themen gesucht.

      Ich müsste nur einen Eintrag in der players Tabelle einfügen. Dieser soll 0 oder 1 sein.

      0 = Standart
      1 = im Script setzen

      Ich weiß, dass ich dafür die fn_queryRequest, fn_insertRequest und fn_requestReceived brauche. Habe auch schon versucht, ein bisschen rumzuprobieren aber ohne Erfolg.
      Die Datenbank habe ich dahingehend bereits vorbereitet. Es scheitert wirklich nur beim Eintragen/Abrufen..

      Beste Grüße,

      euer LimnosLife Team.

      _______________________________________________

      Dein Kontakt zu uns:

      E-Mail: [email protected]

      TS3: ts.limnoslife.eu

      Arma: server.limnoslife.eu
      Webseite: limnoslife.eu

    • Julian
      Nerd
      Reaktionen
      76
      Trophäen
      8
      Beiträge
      820
      • 29. April 2018 um 09:38
      • #3
      Zitat von perx

      Keiner?
      Ich hab bereits vergeblich nach ähnlichen Themen gesucht.

      Ich müsste nur einen Eintrag in der players Tabelle einfügen. Dieser soll 0 oder 1 sein.

      0 = Standart
      1 = im Script setzen

      Ich weiß, dass ich dafür die fn_queryRequest, fn_insertRequest und fn_requestReceived brauche. Habe auch schon versucht, ein bisschen rumzuprobieren aber ohne Erfolg.
      Die Datenbank habe ich dahingehend bereits vorbereitet. Es scheitert wirklich nur beim Eintragen/Abrufen..

      was genau willst du eintragen ? Eine Zahl ? Einen Wert ?

      Hast du es schonmal versucht ?

      _query = format ["SELECT wiedudiespaltegenannthast, name FROM players WHERE wiedudiespaltegenannthast='%1'",deinwert];

      Sowürde ich es versuchen kann dir nachher aber noch was schicken

      Mit freundlichen Grüßen,

      Julian


      Bitte erst Denken und dann Fragen


      Hier lesen: das Heilige Buch der Arma3 Scripter

    • ProteusSpectrum
      Frischling
      Reaktionen
      30
      Trophäen
      10
      Beiträge
      10
      • 29. April 2018 um 10:09
      • #4

      perx, Was hast du vor?

      Questsystem, das ist klar, soll dies nur temporär oder dauerhaft sein?

      Sprich, sollst du nur während der Serverperiode auf diese Quests zugreifen oder sollst du auch nach Serverrestart darauf zugreifen?

      Solltest du nach Serverrestart auch noch darauf zugreifen sollen, kannst du deine Abfrage ganz einfach in die normalen SELECT-Statements deines Scriptes machen.

      (siehe dazu einfach die CopLevel oder so ^^)

      Sobald du deine Quest´s startest, lässt du einfach eine Variable von der geladenen 0 (aus der DB) auf 1 springen und diese Variable wird auch wie die ganzen anderen normal gespeichert, wenn du Speicherst.

      (musst es halt nur noch so einbauen)

      Oder du machst ein extra Statement dafür auf:

      UPDATE players SET quest='1' WHERE pid='%1'",_uid

      Aber ich muss sagen, dass dies schon die absoluten Basics sind, die man MINDESTENS drauf haben muss, ansonsten ist man auf der falschen Position ^^

      Mit freundlichen Grüßen

      ProteusSpectrum

    • perx
      Fortgeschrittener
      Reaktionen
      54
      Trophäen
      11
      Beiträge
      338
      • 29. April 2018 um 15:21
      • #5
      Zitat von Julian

      was genau willst du eintragen ? Eine Zahl ? Einen Wert ?

      Hast du es schonmal versucht ?

      _query = format ["SELECT wiedudiespaltegenannthast, name FROM players WHERE wiedudiespaltegenannthast='%1'",deinwert];

      Sowürde ich es versuchen kann dir nachher aber noch was schicken

      Zitat von ProteusSpectrum

      perx, Was hast du vor?

      Questsystem, das ist klar, soll dies nur temporär oder dauerhaft sein?

      Sprich, sollst du nur während der Serverperiode auf diese Quests zugreifen oder sollst du auch nach Serverrestart darauf zugreifen?

      Solltest du nach Serverrestart auch noch darauf zugreifen sollen, kannst du deine Abfrage ganz einfach in die normalen SELECT-Statements deines Scriptes machen.

      (siehe dazu einfach die CopLevel oder so ^^)

      Sobald du deine Quest´s startest, lässt du einfach eine Variable von der geladenen 0 (aus der DB) auf 1 springen und diese Variable wird auch wie die ganzen anderen normal gespeichert, wenn du Speicherst.

      (musst es halt nur noch so einbauen)

      Oder du machst ein extra Statement dafür auf:

      UPDATE players SET quest='1' WHERE pid='%1'",_uid

      Aber ich muss sagen, dass dies schon die absoluten Basics sind, die man MINDESTENS drauf haben muss, ansonsten ist man auf der falschen Position ^^

      Alles anzeigen

      Ok, also ich habe ein Questsystem bestehend aus mehreren Stufen. Ein Spieler wird so gesehen fast quer über die map geschickt. Nach jeder Stufe wird die Variable "quest" einen hochgesetzt. "[1,2,3,4,..]" dies ist aber leider nur bis zum nächsten Serverstart da. Also soll es anstatt die Variable, die DB aktualisieren. Ich weiß, dass dies zu den Basics gehört, aber ich lerne wie vielleicht offensichtlich ist noch :D. Nur verstehe ich noch nicht so ganz wie das alles mit der Kommunikation zur Datenbank funktioniert, weswegen ich eben hier nach einem Beispiel oder eben Denkanstoss suche. Ich lerne besser a la "learning by doing"

      Beste Grüße,

      euer LimnosLife Team.

      _______________________________________________

      Dein Kontakt zu uns:

      E-Mail: [email protected]

      TS3: ts.limnoslife.eu

      Arma: server.limnoslife.eu
      Webseite: limnoslife.eu

    • Julian
      Nerd
      Reaktionen
      76
      Trophäen
      8
      Beiträge
      820
      • 29. April 2018 um 15:39
      • #6
      Zitat von perx

      Ok, also ich habe ein Questsystem bestehend aus mehreren Stufen. Ein Spieler wird so gesehen fast quer über die map geschickt. Nach jeder Stufe wird die Variable "quest" einen hochgesetzt. "[1,2,3,4,..]" dies ist aber leider nur bis zum nächsten Serverstart da. Also soll es anstatt die Variable, die DB aktualisieren. Ich weiß, dass dies zu den Basics gehört, aber ich lerne wie vielleicht offensichtlich ist noch :D. Nur verstehe ich noch nicht so ganz wie das alles mit der Kommunikation zur Datenbank funktioniert, weswegen ich eben hier nach einem Beispiel oder eben Denkanstoss suche. Ich lerne besser a la "learning by doing"

      Wie heisst die Spalte wo du das um 1 hoch setzt ?

      Mit freundlichen Grüßen,

      Julian


      Bitte erst Denken und dann Fragen


      Hier lesen: das Heilige Buch der Arma3 Scripter

    • perx
      Fortgeschrittener
      Reaktionen
      54
      Trophäen
      11
      Beiträge
      338
      • 29. April 2018 um 15:42
      • #7

      "quest" in der table "players"

      Beste Grüße,

      euer LimnosLife Team.

      _______________________________________________

      Dein Kontakt zu uns:

      E-Mail: [email protected]

      TS3: ts.limnoslife.eu

      Arma: server.limnoslife.eu
      Webseite: limnoslife.eu

    • Julian
      Nerd
      Reaktionen
      76
      Trophäen
      8
      Beiträge
      820
      • 29. April 2018 um 15:52
      • #8
      Zitat von perx

      "quest" in der table "players"

      Code
      _query = format ["UPDATE players SET name='%1', cash='%2', bankacc='%3', civ_licenses='%4', civ_gear='%5', arrested='%6', civ_stats='%7', civ_alive='%8', civ_position='%9', playtime='%10' , quest = (quest + 1) WHERE pid='%11'",_name,_cash,_bank,_licenses,_gear,[_this select 8] call DB_fnc_bool,_stats,[_alive] call DB_fnc_bool,_position,_playtime_update,_uid];  
      [_query,1] call DB_fnc_asyncCall;

      So wird es glaube ich nicht funktionieren... aber vielleicht guckst du es dir mal an ...

      Habe quest mal hinzugefügt .. aber wird so nicht klappen.. denke ich weil bei jedem call DB_fnc_asyncCall es pllus 1 gerchnet wird

      Mit freundlichen Grüßen,

      Julian


      Bitte erst Denken und dann Fragen


      Hier lesen: das Heilige Buch der Arma3 Scripter

    • ProteusSpectrum
      Frischling
      Reaktionen
      30
      Trophäen
      10
      Beiträge
      10
      • 29. April 2018 um 16:19
      • #9

      So, es gibt im missions-Ordner eine Datei, wo bereits die Variable hochgezählt wird, so habe ich das jetzt verstanden.

      Diese ist natürlich nur bis zum reconnect vorhanden.

      Du gehst in die Questdatei (wo die Variable aktualisiert wird) hinein und fügst in dem entsprechenden Abschnitt folgenden Code ein:

      [DEINCASE] call SOCK_fnc_updatePartial; //Hier musst du DEINCASE durch eine Zahl ersetzen! Hier: [8] call SOCK_fnc_updatePartial;

      Nun gehen wir in den core/session/ Ordner und öffnen die fn_updatePartial.sqf Datei.

      Dort erstellen wir ein neues Case.

      BSP:

      Code
      //Questsystem
      case 8:
      
      {
      
      _packet set[2,life_QuestLevel]; //Variable musst du natürlich anpassen ^^
      
      };

      _packet setzt sich hier wiefolgt zusammen: (0) - UID, (1) - Spielerseite, (2) - nil; hier: QuestLevel, (3) - Mode

      Nun gehst du in den Life_Server-Ordner und öffnest im Ordner life_server/functions/MySQL/ die fn_updatePartial.sqf

      Auch dort legst du ein neuen Case an.

      BSP:

      Code
      case 8: //MUSS GENAU DIE GLEICHE ZAHL SEIN WIE OBEN!!!
      {
          _value = [_this,2,0,[0]] call BIS_fnc_param;    //QUestlevel wird hier abgerufen
          _value = [_value] call DB_fnc_numberSafe;        //Wert in Nummer umgewandelt
          _query = format ["UPDATE players SET quest='%1' WHERE pid='%2'",_value,_uid];
      };

      und schon wird das Level immer aktualisiert, wenn du im Quest aufsteigst

      Nun ist die Speicherung implementiert, du musst nun nur noch den Wert aus der Datenbank auslesen lassen

      Mit freundlichen Grüßen

      ProteusSpectrum

    • ProteusSpectrum
      Frischling
      Reaktionen
      30
      Trophäen
      10
      Beiträge
      10
      • 29. April 2018 um 16:22
      • #10
      Zitat von Julian
      Code
      _query = format ["UPDATE players SET name='%1', cash='%2', bankacc='%3', civ_licenses='%4', civ_gear='%5', arrested='%6', civ_stats='%7', civ_alive='%8', civ_position='%9', playtime='%10' , quest = (quest + 1) WHERE pid='%11'",_name,_cash,_bank,_licenses,_gear,[_this select 8] call DB_fnc_bool,_stats,[_alive] call DB_fnc_bool,_position,_playtime_update,_uid];  
      [_query,1] call DB_fnc_asyncCall;

      So wird es glaube ich nicht funktionieren... aber vielleicht guckst du es dir mal an ...

      Habe quest mal hinzugefügt .. aber wird so nicht klappen.. denke ich weil bei jedem call DB_fnc_asyncCall es pllus 1 gerchnet wird

      Mit dem würdest du das Questsystem total abfucken xD

      Du würdest nämlich hier bei JEDEM speichern die Questvariable hochsetzen, egal ob der User den Questteil abgeschlossen hat oder nciht

      Code
      quest = (quest + 1)

      Das habe ich noch nicht ausprobiert, also wüsste jetzt nicht ob das gehen würde.

      In diesem Fall absolut egal, weil es nicht den Sinn und Zweck erfüllen würde ^^

      Mit freundlichen Grüßen

      ProteusSpectrum

    • Marius1773
      Profi
      Reaktionen
      369
      Trophäen
      9
      Beiträge
      962
      • 29. April 2018 um 16:25
      • #11
      Zitat von ProteusSpectrum

      Mit dem würdest du das Questsystem total abfucken xD

      Du würdest nämlich hier bei JEDEM speichern die Questvariable hochsetzen, egal ob der User den Questteil abgeschlossen hat oder nciht

      Code
      quest = (quest + 1)

      Das habe ich noch nicht ausprobiert, also wüsste jetzt nicht ob das gehen würde.

      In diesem Fall absolut egal, weil es nicht den Sinn und Zweck erfüllen würde ^^

      quest = (quest + 1) würde immer bei jedem speichern die nächste Quest nehmen das ist richtig ^^

      Windows Server :love:

      Das Heilige Buch der Arma 3 Scripter, die Arma 3 Scripter Bibel: https://community.bistudio.com/wiki/Category:Scripting_Commands

    • perx
      Fortgeschrittener
      Reaktionen
      54
      Trophäen
      11
      Beiträge
      338
      • 29. April 2018 um 21:33
      • #12
      Zitat von ProteusSpectrum

      So, es gibt im missions-Ordner eine Datei, wo bereits die Variable hochgezählt wird, so habe ich das jetzt verstanden.

      Diese ist natürlich nur bis zum reconnect vorhanden.

      Du gehst in die Questdatei (wo die Variable aktualisiert wird) hinein und fügst in dem entsprechenden Abschnitt folgenden Code ein:

      [DEINCASE] call SOCK_fnc_updatePartial; //Hier musst du DEINCASE durch eine Zahl ersetzen! Hier: [8] call SOCK_fnc_updatePartial;

      Nun gehen wir in den core/session/ Ordner und öffnen die fn_updatePartial.sqf Datei.

      Dort erstellen wir ein neues Case.

      BSP:

      Code
      //Questsystem
      case 8:
      
      {
      
      _packet set[2,life_QuestLevel]; //Variable musst du natürlich anpassen ^^
      
      };

      _packet setzt sich hier wiefolgt zusammen: (0) - UID, (1) - Spielerseite, (2) - nil; hier: QuestLevel, (3) - Mode

      Nun gehst du in den Life_Server-Ordner und öffnest im Ordner life_server/functions/MySQL/ die fn_updatePartial.sqf

      Auch dort legst du ein neuen Case an.

      BSP:

      Code
      case 8: //MUSS GENAU DIE GLEICHE ZAHL SEIN WIE OBEN!!!
      {
          _value = [_this,2,0,[0]] call BIS_fnc_param;    //QUestlevel wird hier abgerufen
          _value = [_value] call DB_fnc_numberSafe;        //Wert in Nummer umgewandelt
          _query = format ["UPDATE players SET quest='%1' WHERE pid='%2'",_value,_uid];
      };

      und schon wird das Level immer aktualisiert, wenn du im Quest aufsteigst

      Nun ist die Speicherung implementiert, du musst nun nur noch den Wert aus der Datenbank auslesen lassen

      Alles anzeigen

      Vielen vielen Dank :).
      Das klappt nun soweit, auch die Abfrage aus der DB habe ich geschafft. Nun komme ich zum zweiten Problem: Wenn ich nun Anfragen will, welchen Wert die Variable hat, bekomme ich "1" anstatt 1

      sodass if (perx_quests > 0) nicht funktioniert, weil keine Zahl kommt:

      Code: fn_queryRequest
      //Quest
      _new = _queryResult select 14;
      _queryResult set[14,[_new] call DB_fnc_numberSafe];
      Code: fn_requestReceived
      perx_quests = _this select 14;

      Beste Grüße,

      euer LimnosLife Team.

      _______________________________________________

      Dein Kontakt zu uns:

      E-Mail: [email protected]

      TS3: ts.limnoslife.eu

      Arma: server.limnoslife.eu
      Webseite: limnoslife.eu

    • ProteusSpectrum
      Frischling
      Reaktionen
      30
      Trophäen
      10
      Beiträge
      10
      • 29. April 2018 um 21:47
      • #13

      Zahlen liest di so aus der Datenbank (queryRequest.sqf von der life_server)

      _tmp = _queryResult select 7;

      _queryResult set[7,[_tmp] call DB_fnc_numberSafe];

      Die 7 musst du anpassen ^^

      und in der requestReceived musst du das so machen:

      perx_quests = parseNumber(_this select 7);

      und schon ist es eine Zahl


      Also bei dir muss es dann so heißen:

      perx_quests = parseNumber(_this select 14);

      Mit freundlichen Grüßen

      ProteusSpectrum

    Registrieren oder Einloggen

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

    Registrieren

    Ähnliche Themen

    • Persistent Proficiency System (Level System/Exp System)

      • AmaZiinG
      • 7. Februar 2017 um 22:11
      • Tutorials & Releases
    • Polizeiuniformen mit Skin versehen

      • Retch
      • 7. April 2018 um 01:59
      • Hilfeforum
    • Item Array eines Schließfaches filtern ?

      • ArmA3Designs ~ MrRetroxX
      • 9. März 2018 um 21:46
      • Hilfeforum
    • Lichtkegel / Skybeam

      • sirbenson
      • 23. April 2017 um 04:48
      • Hilfeforum

    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™