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

    SQL Fahndungsliste

      • Altis Life
    • felixsch
    • 8. Februar 2020 um 22:37
    • Erledigt
    • felixsch
      Amateur
      Reaktionen
      15
      Trophäen
      9
      Beiträge
      215
      Bilder
      4
      • 8. Februar 2020 um 22:37
      • #1

      Hallo.

      Ich schreibe momentan das Fahndungslisten-System um.

      Ich habe nun eine neue DB erstellt und mich an dem Code von fn_getVehicles (life_server) orientiert.

      fn_getVehicles
      Code
      _query = format["SELECT id, side, classname, type, pid, alive, active, plate, color FROM vehicles WHERE pid='%1' AND alive='1' AND active='0' AND side='%2' AND type='%3'",_pid,_side,_type];
      
      
      _tickTime = diag_tickTime;
      _queryResult = [_query,2,true] call DB_fnc_asyncCall;
      
      if (EXTDB_SETTING(getNumber,"DebugMode") isEqualTo 1) then {
          diag_log "------------- Client Query Request -------------";
          diag_log format["QUERY: %1",_query];
          diag_log format["Time to complete: %1 (in seconds)",(diag_tickTime - _tickTime)];
          diag_log format["Result: %1",_queryResult];
          diag_log "------------------------------------------------";
      };
      
      if (_queryResult isEqualType "") exitWith {
          [[]] remoteExec ["life_fnc_impoundMenu",(owner _unit)];
      };
      
      [_queryResult,_type] remoteExec ["life_fnc_impoundMenu",_unit];
      Alles anzeigen

      So nun habe ich das ganze übertragen auf das Fahndungssystem

      Code: fn_wantedCrimes (life_server)
      #include "\life_server\script_macros.hpp"
      /*
          File: fn_wantedCrimes.sqf
          Author: ColinM
          Assistance by: Paronity
          Stress Tests by: Midgetgrimm
      
          Description:
          Grabs a list of crimes committed by a person.
      */
      private["_display","_criminal","_tab","_queryResult","_result","_ret","_crimesDb","_crimesArr","_type"];
      disableSerialization;
      _ret = [_this,0,ObjNull,[ObjNull]] call BIS_fnc_param;
      _criminal = [_this,1,[],[]] call BIS_fnc_param;
      
      //_query = format["SELECT reason, price, insert_time FROM wantedlist WHERE active='1' AND playerid='%1' ORDER BY reason",_criminal select 0];
      _query = format["SELECT reason, price, insert_time FROM wantedlist WHERE active='1' AND playerid='Meine PlayerID' ORDER BY reason"];
      _queryResult = [_query,2,true] call DB_fnc_asyncCall;
      
      _ret = owner _ret;
      
      [_queryResult] remoteExec ["life_fnc_wantedInfo",_ret];
      Alles anzeigen

      Leider liefert mich das keine Data (in PHPMyAdmin schon...)

      Code: fn_wantedInfo (Mission)
      _data = param [0,[],[[]]];
      hint str _data;

      -> hint Ergebnis: []

      Ich hoffe ihr könnt mir schnell helfen ;)

      25720-panthor-only-logo-shadow-autoscaled-pngPanthor Life DEV

      https://panthor.de (Scripter | Designer | Modder) [ehemals ReallifeRPG]

      Einmal editiert, zuletzt von felixsch (8. Februar 2020 um 22:46)

    • Joe Barbaro
      Nerd
      Reaktionen
      199
      Trophäen
      8
      Beiträge
      688
      • 8. Februar 2020 um 22:49
      • #2

      Also du könntest folgendermaßen arbeiten:

      In der fn_wantedCrimes die privates performanter machen... Sprich aus private ["x"] private _x = XXX.

      Dann nimmst du einfach private _PID = getPlayerUid remoteExecutedOwner;

      Das kannst du dann nutzen, um deine PlayerID zu kriegen.

      Dann nimm mal vllt zum testen ORDER BY X raus.

      und unten bei dem RemoteExec nimmst du statt _ret einfach remoteExecutedOwner.

      Dann in der fn_wantedInfo :

      Code
      private _data = this select 0; //geht auch alternativ mit Params
      
      hint format ["%1",_data]

      Teste das mal so.

      Alle verwendeten Script Commands sind im WIKI nachzulesen und auf Korrektheit im Syntax zu prüfen.


      Mit freundlichen Grüßen

      Joe Barbaro

      Entwickler vom Arma 3 Batch Generator


    • felixsch
      Amateur
      Reaktionen
      15
      Trophäen
      9
      Beiträge
      215
      Bilder
      4
      • 9. Februar 2020 um 00:41
      • #3

      Hat leider nichts geändert... hat danach gar nicht mehr funktioniert

      25720-panthor-only-logo-shadow-autoscaled-pngPanthor Life DEV

      https://panthor.de (Scripter | Designer | Modder) [ehemals ReallifeRPG]

    • Joe Barbaro
      Nerd
      Reaktionen
      199
      Trophäen
      8
      Beiträge
      688
      • 9. Februar 2020 um 00:53
      • #4
      Zitat von Felix von der Hase

      Hat leider nichts geändert... hat danach gar nicht mehr funktioniert

      Dann im Client Teil statt this _this nehmen und logs prüfen und immer Anhängen.

      Entwickler vom Arma 3 Batch Generator


    • felixsch
      Amateur
      Reaktionen
      15
      Trophäen
      9
      Beiträge
      215
      Bilder
      4
      • 10. Februar 2020 um 15:52
      • #5

      Ich werde die Tage mal schauen und die Logs dann schicken

      25720-panthor-only-logo-shadow-autoscaled-pngPanthor Life DEV

      https://panthor.de (Scripter | Designer | Modder) [ehemals ReallifeRPG]

    • LETUS
      Schüler
      Reaktionen
      15
      Trophäen
      9
      Beiträge
      110
      Bilder
      1
      • 12. Februar 2020 um 12:33
      • #6

      Hi,

      Teste es am besten dadurch, das du dir alle Variablen nach dem du die werte zugewiesen hast über "diag_log" im log ausgeben lässt.

      Dadurch siehst du ob auf dem Server irgendwo ein Fehler ist z.B. bei den Parametern oder wenn du den Query zusammensetzt. Wenn dir da nicht auffällt senden uns am besten den gesamten(Client/Server und EXTDB) log. Besonders "_queryResult" währe interessant da dort noch fehlermeldungen drin stehen, die du später auch auf jeden Fall auf dem Server abfangen solltest(siehe: ExtDB Wiki).

    • felixsch
      Amateur
      Reaktionen
      15
      Trophäen
      9
      Beiträge
      215
      Bilder
      4
      • 13. Februar 2020 um 19:19
      • #7
      Code
      Error in expression <[1,[[Test,100,2020-02-08 21:24:05]]]>
        Error position: <21:24:05]]]>
        Error Missing ]
      Error in expression <[1,[[Test,100,2020-02-08 21:24:05]]]>
        Error position: <21:24:05]]]>
        Error Missing ]
      Error in expression <esult = call compile _queryResult;
      if ((_queryResult select 0) isEqualTo 0) exit>
        Error position: <_queryResult select 0) isEqualTo 0) exit>
        Error Undefined variable in expression: _queryresult
      File \life_server\Functions\MySQL\fn_asyncCall.sqf [DB_fnc_asyncCall]..., line 106
      Error in expression < call DB_fnc_asyncCall;
      Alles anzeigen

      nach diag_log

      25720-panthor-only-logo-shadow-autoscaled-pngPanthor Life DEV

      https://panthor.de (Scripter | Designer | Modder) [ehemals ReallifeRPG]

    • felixsch
      Amateur
      Reaktionen
      15
      Trophäen
      9
      Beiträge
      215
      Bilder
      4
      • 22. Februar 2020 um 16:51
      • #8

      .

      25720-panthor-only-logo-shadow-autoscaled-pngPanthor Life DEV

      https://panthor.de (Scripter | Designer | Modder) [ehemals ReallifeRPG]

      Einmal editiert, zuletzt von felixsch (22. Februar 2020 um 18:31)

    • felixsch
      Amateur
      Reaktionen
      15
      Trophäen
      9
      Beiträge
      215
      Bilder
      4
      • 22. Februar 2020 um 18:32
      • #9
      Code
      _data = [["Mein Name",[["1","Testgrund1","50",[2020,2,8,21,24,5]],["2","Testgrund2","100",[2020,2,14,19,7,44]]]]];
      
      {
      private _playername = (_x select 0);
      private _rest = (_x select 1);
      systemChat str _playername;
      systemChat str _rest;
          _list lbAdd format["%1", (_playername)];
          _list lbSetData [(_list)-1,(str _rest)];
      } forEach _data;

      Folgende Fehlermeldung:

      Code
      18:15:45 Error in expression <(_playername)];
      _list lbSetData [(_list)-1,(str _rest)];
      } forEach _data;
      
      ctrlS>
      18:15:45   Error position: <-1,(str _rest)];
      } forEach _data;
      
      ctrlS>
      18:15:45   Error -: Typ Control, erwartet Zahl,Array,Keine Zahl
      18:15:45 File core\pmenu\fn_wantedList.sqf [life_fnc_wantedList]..., line 124
      Alles anzeigen

      25720-panthor-only-logo-shadow-autoscaled-pngPanthor Life DEV

      https://panthor.de (Scripter | Designer | Modder) [ehemals ReallifeRPG]

    • Henne
      Nerd
      Reaktionen
      155
      Trophäen
      7
      Beiträge
      840
      Bilder
      7
      • 22. Februar 2020 um 18:57
      • #10

      Du möchtest von einer Liste eine eins subtrahieren.

      Was soll denn da für ein Wert deiner Meinung rauskommen?

      Da dies nicht funktioniert, weißt dich der Fehler darauf hin, dass die Liste keine Zahl ist.

      Schreib die Stelle um, was auch immer du da machen willst, dann klappt es auch.

    • felixsch
      Amateur
      Reaktionen
      15
      Trophäen
      9
      Beiträge
      215
      Bilder
      4
      • 22. Februar 2020 um 21:43
      • #11

      lbSize hat gefehlt. Danke :)

      Jetzt habe ich aber folgendes Problem:

      Ich muss diesen Array
      [[123,name,grund,...],[321,name,grund,...],[321,namegrund,...],[123,name,grund,...]]

      in folgenden Umwandeln:
      [[123,name,[[grund,...],[grund,...]],[321,name,[[grund,...],[grund,...]]]

      also: alle Gründe (und weitere Informationen) zusammenfassen und dann gesammelt, per PlayerID ausgeben

      wie mache ich das am besten? Ich überlege seit mehreren Stunden ein paar Code Schnipsel währen echt super :)

      25720-panthor-only-logo-shadow-autoscaled-pngPanthor Life DEV

      https://panthor.de (Scripter | Designer | Modder) [ehemals ReallifeRPG]

    • Henne
      Nerd
      Reaktionen
      155
      Trophäen
      7
      Beiträge
      840
      Bilder
      7
      • 22. Februar 2020 um 22:17
      • #12

      Das ist eigentlich recht einfach.

      Code: ! PSEUDOCODE ! -
      _array sort true
      _arrayNew = []
      _entry = []
      {
          if _entry == []
              _entry = [_x#0, _x#1, [_x#2]]
          else
              _entry#2 pushBack _x#2
      
          if _forEachIndex+1 != count _array
          && {_array#(_forEachIndex+1)#0 != _x#0}
              _arrayNew pushBack _entry
              _entry = []
      } for _array
      Alles anzeigen

      Gibt natürlich noch viele andere Wege.

    • felixsch
      Amateur
      Reaktionen
      15
      Trophäen
      9
      Beiträge
      215
      Bilder
      4
      • 22. Februar 2020 um 22:29
      • #13

      Also zur Kontrolle:

      Code
      private _array = [[123,name,grund,...],[321,name,grund,...],[321,namegrund,...],[123,name,grund,...]];
      _array sort true;
      private _arrayNew = [];
      private _entry = [];
      {
       if(_entry isEqualTo []) then {
           _entry = [_x select 0, _x select 1, [_x select 2]];
       } else {
           (_entry select 2) pushBack (_x select 2);
       }
       if(_forEachIndex+1 != count _array && {_array select (_forEachIndex+1) select 0 != _x select 0}) then {
           _arrayNew pushBack _entry;
           _entry = [];
       }
      } forEach _array;
      Alles anzeigen

      Und da kommt dann das raus was oben angegeben ist?

      25720-panthor-only-logo-shadow-autoscaled-pngPanthor Life DEV

      https://panthor.de (Scripter | Designer | Modder) [ehemals ReallifeRPG]

    • Henne
      Nerd
      Reaktionen
      155
      Trophäen
      7
      Beiträge
      840
      Bilder
      7
      • 22. Februar 2020 um 22:34
      • #14

      Syntaxfehler in Zeile 10 (} -> };).

      Habe es nur auf die schnelle überlegt und nicht selbst getestet.

      Aber probiere es doch mal aus. ;)

    • felixsch
      Amateur
      Reaktionen
      15
      Trophäen
      9
      Beiträge
      215
      Bilder
      4
      • 22. Februar 2020 um 22:42
      • #15

      Gut nach ausprobieren folgendes Ergebnis:

      Verwendeter Code
      Code
      private _array = [["123","Name1","Grund1","Information"],["123","Name1","Grund2","Information"],["321","Name2","Grund3","Information"]]; 
      _array sort true; 
      private _arrayNew = []; 
      private _entry = []; 
      { 
       if(_entry isEqualTo []) then { 
           _entry = [_x select 0, _x select 1, [_x select 2]]; 
       } else { 
           (_entry select 2) pushBack (_x select 2); 
       } ;
       if(_forEachIndex+1 != count _array && {_array select (_forEachIndex+1) select 0 != _x select 0}) then { 
           _arrayNew pushBack _entry; 
           _entry = []; 
       } ;
      } forEach _array;
      
      hint str _arrayNew;
      Alles anzeigen

      Das kam heraus:
      1. (bei Array wie oben)
      [["123","Grün",["Grund1","Grund2"]]]

      2. (bei allen 3 Einträgen select 0)
      []

      Also es fehlen alle anderen Einträge, diese müssten noch irgendwie in den inneren Array, sprich aus
      ["Grund1","Grund2"] müsste [["Grund1","Information",[2020,02,22,22,41,00]],["Grund1","Information",[2020,02,22,22,41,00]]] werden. Sprich alle anderen Werte nach dem Namen und der PlayerID müssten in in einen eigenen Array jeweils.

      Und irgendwie geht, wie bei 2. beschrieben, das ganze bei drei gleichen Einträgen (also 3mal "123") nicht mehr.

      25720-panthor-only-logo-shadow-autoscaled-pngPanthor Life DEV

      https://panthor.de (Scripter | Designer | Modder) [ehemals ReallifeRPG]

    • Henne
      Nerd
      Reaktionen
      155
      Trophäen
      7
      Beiträge
      840
      Bilder
      7
      • 22. Februar 2020 um 23:08
      • #16

      Kleiner Logikfehler, so klappt es aber:

      Code
      private _array = [["123","Name1","Grund1","Information"],["123","Name1","Grund2","Information"],["321","Name2","Grund3","Information"]];  
      _array sort true;  
      private _arrayNew = [];  
      private _entry = [];  
      {  
          if(_entry isEqualTo []) then {  
              _entry = [_x select 0, _x select 1, [_x select 2]]
          } else {  
              (_entry select 2) pushBack (_x select 2)
          }; 
          if(_forEachIndex+1 != count _array) then {
              if (_array select (_forEachIndex+1) select 0 != _x select 0) then {  
                  _arrayNew pushBack _entry;  
                  _entry = []
              }
          } else {
              _arrayNew pushBack _entry
          }
      } forEach _array;
      Alles anzeigen

      [["123","Name1","Grund1","Information"],["123","Name1","Grund2","Information"],["321","Name2","Grund3","Information"]]

      wird zu

      [["123","Name1",["Grund1","Grund2"]],["321","Name2",["Grund3"]]]

    • felixsch
      Amateur
      Reaktionen
      15
      Trophäen
      9
      Beiträge
      215
      Bilder
      4
      • 22. Februar 2020 um 23:16
      • #17
      Code
      private _array = [["123","Name1","Grund1","Information"],["123","Name1","Grund2","Information"],["321","Name2","Grund3","Information"]];  
      _array sort true;  
      private _arrayNew = [];  
      private _entry = [];  
      {  
          if(_entry isEqualTo []) then {  
              _entry = [_x select 0, _x select 1, [[_x select 2,_x select 3]]]; 
          } else {  
              (_entry select 2) pushBack [(_x select 2),(_x select 3)]; 
          };  
          if(_forEachIndex+1 != count _array) then { 
              if (_array select (_forEachIndex+1) select 0 != _x select 0) then {  
                  _arrayNew pushBack _entry;  
                  _entry = []; 
              } 
          } else { 
              _arrayNew pushBack _entry; 
          } 
      } forEach _array;
      
      hint str _arrayNew;
      Alles anzeigen

      mit einer kleinen Erweiterung klappt es :)

      25720-panthor-only-logo-shadow-autoscaled-pngPanthor Life DEV

      https://panthor.de (Scripter | Designer | Modder) [ehemals ReallifeRPG]

    • Henne
      Nerd
      Reaktionen
      155
      Trophäen
      7
      Beiträge
      840
      Bilder
      7
      • 22. Februar 2020 um 23:21
      • #18

      Was für einer Erweiterung?

      Warum fügst du die ; überall wieder hinzu, die ich entfernt habe?

    • felixsch
      Amateur
      Reaktionen
      15
      Trophäen
      9
      Beiträge
      215
      Bilder
      4
      • 23. Februar 2020 um 00:02
      • #19
      Code
      if(_entry isEqualTo []) then {  
              _entry = [_x select 0, _x select 1, [[_x select 2,_x select 3,_x select 4,_x select 5]]]; 
          } else {  
              (_entry select 2) pushBack [(_x select 2),(_x select 3),(_x select 4),(_x select 5)]; 
          };

      hab das jetzt so gemacht.

      Funktioniert eigentlich recht gut. Danke dir auf jeden Fall :)

      25720-panthor-only-logo-shadow-autoscaled-pngPanthor Life DEV

      https://panthor.de (Scripter | Designer | Modder) [ehemals ReallifeRPG]

    • Henne
      Nerd
      Reaktionen
      155
      Trophäen
      7
      Beiträge
      840
      Bilder
      7
      • 23. Februar 2020 um 00:24
      • #20

      Wunderbar wenn es so klappt, wie du es dir vorgestellt hast.

      Kleine Anmerkung, dies kannst du austauschen wenn du möchtest:

      [_x select 2,_x select 3,_x select 4,_x select 5] -> _x select [2, 4]

    Registrieren oder Einloggen

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

    Registrieren

    Ähnliche Themen

    • Abfrage

      • Genre1001
      • 23. November 2019 um 21:02
      • Hilfeforum
    • Fahndungsliste Liste über dem PC Bildschirm in game Öffnen

      • gruescho I TikroMilan
      • 3. April 2019 um 18:37
      • 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™