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: 22 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. Tutorials & Releases

    [Tutorial] Getrennte Bankkonten für Civ, Medic & Cops (very Easy)

      • Altis Life
    • Joe Barbaro
    • 11. August 2019 um 21:11
    • Joe Barbaro
      Nerd
      Reaktionen
      199
      Trophäen
      8
      Beiträge
      688
      • 11. August 2019 um 21:11
      • #1

      Moin liebe Community,

      da ich das die letzten Tage mal gefragt wurde, teile ich euch hiermit eine Anleitung für das Trennen von Bankkonten.

      Getestet auf der AltisLife 5.0 aber Altis Life Version != SQF "Version".

      Sachen die auf der Altis Life 5.0 funktionieren, gehen auch auf jeder anderen Version.

      Hierbei ist dann aber ggf. mehr zu bearbeiten.

      Zudem verbiete ich das TUT ohne mein Einverständnis zu verbreiten.

      Viel Spaß:P

      Schritt 1:

      Im ersten Schritt fügen wir in die Datenbank in die Player Tabelle 3 neue Spalten ein.

      Hierfür gehen wir in ein SQL Programm unserer Wahl, gehen in die Players Tabelle und führen dort folgenden Code aus.

      SQL: Bank.sql
      ALTER TABLE players ADD `civbank` int(100) NOT NULL DEFAULT '0';
      ALTER TABLE players ADD `copbank` int(100) NOT NULL DEFAULT '0';
      ALTER TABLE players ADD `medbank` int(100) NOT NULL DEFAULT '0';

      Damit erstellen wir 3 neue Spalten in der DB, in denen wir den Bank Geldbetrag speichern.

      Zur weitern Erklärung zum Thema Datenbanken, ExtDB verweise ich gerne hier rauf -->[TUTORIAL] DER UMGANG MIT EXTDB3 & MYSQL<--

      Schritt 2:

      Im 2ten Schritt kümmern wir uns um die Implementierung Ingame.

      Dafür entpacken und öffnen wir den Life_Server.

      Dort gehen wir zu Functions\MySQL\fn_queryRequest.sqf und öffnen diese.

      Dort ändern wir

      Code
      _query = switch (_side) do {
          // West - 11 entries returned
          case west: {format ["SELECT pid, name, cash, bankacc, adminlevel, donorlevel, cop_licenses, coplevel, cop_gear, blacklist, cop_stats, playtime FROM players WHERE pid='%1'",_uid];};
          // Civilian - 12 entries returned
          case civilian: {format ["SELECT pid, name, cash, bankacc, adminlevel, donorlevel, civ_licenses, arrested, civ_gear, civ_stats, civ_alive, civ_position, playtime, Jail_Time, Coins FROM players WHERE pid='%1'",_uid];};
          // Independent - 10 entries returned
          case independent: {format ["SELECT pid, name, cash, bankacc, adminlevel, donorlevel, med_licenses, mediclevel, med_gear, med_stats, playtime FROM players WHERE pid='%1'",_uid];};
      };

      zu

      Code
      _query = switch (_side) do {
          // West - 11 entries returned
          case west: {format ["SELECT pid, name, cash, copbank, adminlevel, donorlevel, cop_licenses, coplevel, cop_gear, blacklist, cop_stats, playtime FROM players WHERE pid='%1'",_uid];};
          // Civilian - 12 entries returned
          case civilian: {format ["SELECT pid, name, cash, civbank, adminlevel, donorlevel, civ_licenses, arrested, civ_gear, civ_stats, civ_alive, civ_position, playtime FROM players WHERE pid='%1'",_uid];};
          // Independent - 10 entries returned
          case independent: {format ["SELECT pid, name, cash, medbank, adminlevel, donorlevel, med_licenses, mediclevel, med_gear, med_stats, playtime FROM players WHERE pid='%1'",_uid];};
      };

      Was haben wir getan? Nun wir haben ganz einfach Pro Seite die Abfrage von bankacc auf die jeweilige Spalte verwiesen.

      Sprich im Case West: copbank im Case Civilian: civbank und im Case Independent: medbank eingesetzt.

      Schritt 3:

      Im 3ten Schritt verändern wir die Functions\MYSQL\fn_updatePartial.sqf.

      In dieser ändern wir den Case 1 zu:

      Code
      case 1: {
       switch (_side) do {
       case west:{
       _value = [_this,2,0,[0]] call BIS_fnc_param;
       _value = [_value] call DB_fnc_numberSafe;
       _query = format ["UPDATE players SET copbank='%1' WHERE pid='%2'",_value,_uid];
       };
       case civilian: {
       _value = [_this,2,0,[0]] call BIS_fnc_param;
       _value = [_value] call DB_fnc_numberSafe;
       _query = format ["UPDATE players SET civbank='%1' WHERE pid='%2'",_value,_uid];
       };
       case independent: {
       _value = [_this,2,0,[0]] call BIS_fnc_param;
       _value = [_value] call DB_fnc_numberSafe;
       _query = format ["UPDATE players SET medbank='%1' WHERE pid='%2'",_value,_uid];
       };
       };
       };
      Alles anzeigen
      Schritt 4:

      Im 4ten Schritt ändern wir die Functions\MYSQL\fn_UpdateRequest.sqf.

      Dort ändern wir bankacc zur jeweiligen Spalte.

      Code
      switch (_side) do {
          case west: {_query = format ["UPDATE players SET name='%1', cash='%2', bankacc='%3', cop_gear='%4', cop_licenses='%5', cop_stats='%6', playtime='%7' WHERE pid='%8'",_name,_cash,_bank,_gear,_licenses,_stats,_playtime_update,_uid];};
          case civilian: {_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' 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];};
          case independent: {_query = format ["UPDATE players SET name='%1', cash='%2', bankacc='%3', med_licenses='%4', med_gear='%5', med_stats='%6', playtime='%7' WHERE pid='%8'",_name,_cash,_bank,_licenses,_gear,_stats,_playtime_update,_uid];};
      };

      wird zu

      Code
      switch (_side) do {
          case west: {_query = format ["UPDATE players SET name='%1', cash='%2', copbank='%3', cop_gear='%4', cop_licenses='%5', cop_stats='%6', playtime='%7' WHERE pid='%8'",_name,_cash,_bank,_gear,_licenses,_stats,_playtime_update,_uid];};
          case civilian: {_query = format ["UPDATE players SET name='%1', cash='%2', civbank='%3', civ_licenses='%4', civ_gear='%5', arrested='%6', civ_stats='%7', civ_alive='%8', civ_position='%9', playtime='%10' 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];};
          case independent: {_query = format ["UPDATE players SET name='%1', cash='%2', medbank='%3', med_licenses='%4', med_gear='%5', med_stats='%6', playtime='%7' WHERE pid='%8'",_name,_cash,_bank,_licenses,_gear,_stats,_playtime_update,_uid];};
      };
      Schritt 5:

      Gleich geschafft.

      Jetzt ändern wir noch die Functions\MYSQL\fn_InsertRequest.sqf zu:

      Code
      #include "\life_server\script_macros.hpp"
      /*
          File: fn_insertRequest.sqf
          Author: Bryan "Tonic" Boardwine
          Description:
          Adds a player to the database upon first joining of the server.
          Recieves information from core\sesison\fn_insertPlayerInfo.sqf
      */
      private ["_queryResult","_query","_alias"];
      params [
          "_uid",
          "_name",
          ["_money",-1,[0]],
          ["_bank",-1,[0]],
          ["_returnToSender",objNull,[objNull]]
      ];
      
      //Error checks
      if ((_uid isEqualTo "") || (_name isEqualTo "")) exitWith {systemChat "Bad UID or name";}; //Let the client be 'lost' in 'transaction'
      if (isNull _returnToSender) exitWith {systemChat "ReturnToSender is Null!";}; //No one to send this to!
      
      _query = format ["SELECT pid, name FROM players WHERE pid='%1'",_uid];
      
      
      _tickTime = diag_tickTime;
      _queryResult = [_query,2] call DB_fnc_asyncCall;
      
      if (EXTDB_SETTING(getNumber,"DebugMode") isEqualTo 1) then {
          diag_log "------------- Insert 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 "------------------------------------------------";
      };
      
      //Double check to make sure the client isn't in the database...
      if (_queryResult isEqualType "") exitWith {[] remoteExecCall ["SOCK_fnc_dataQuery",(owner _returnToSender)];}; //There was an entry!
      if !(count _queryResult isEqualTo 0) exitWith {[] remoteExecCall ["SOCK_fnc_dataQuery",(owner _returnToSender)];};
      
      //Clense and prepare some information.
      _name = [_name] call DB_fnc_mresString; //Clense the name of bad chars.
      _alias = [[_name]] call DB_fnc_mresArray;
      _money = [_money] call DB_fnc_numberSafe;
      _bank = [_bank] call DB_fnc_numberSafe;
      
      //Prepare the query statement..
      _query = format ["INSERT INTO players (pid, name, cash, copbank, civbank, medbank, aliases, cop_licenses, med_licenses, civ_licenses, civ_gear, cop_gear, med_gear) VALUES('%1', '%2', '%3', '%4', '%5', '%6', '%7','""[]""','""[]""','""[]""','""[]""','""[]""','""[]""')",
          _uid,
          _name,
          _money,
          _bank,
          _bank,
          _bank,
          _alias
      ];
      
      [_query,1] call DB_fnc_asyncCall;
      [] remoteExecCall ["SOCK_fnc_dataQuery",(owner _returnToSender)];
      Alles anzeigen
      Schritt 6:

      Schritt 5:

      Als letztes packen wir noch den Life_Server zurück in eine PBO.

      Das wars auch schon;)

      Wie bereits gesagt alles sehr Simpel.

      Sollten dennoch Probleme auftreten, bin ich gerne bereit Support zu leisten.

      Edit: Danke an Deathman der mir meine Schusseligkeit aufgezeigt hat.

      Hier noch ein kleiner Zusatz von Deathman für getrenntes Cash ~NICHT VON MIR GETESTET~ Support übernimmt Deathman

      Zitat von Deathman

      Wie immer BACKUP MACHEN VOLL LIFE_SERVER UND MISSION!!

      So ich bin dann Fertig mit dem Cash für jede Seite kann ja Joe noch Hinzufügen

      Es ist alles so wie mit dem Bank sehr Simpel wie ganz oben schon gesagt


      Dan fangen wir mal an nä

      Da gehen wir erstmal in die fn_queryRequest.sqf

      und sucht folgendes

      fn_queryRequest.sqf
      CSS
      _query = switch (_side) do {
       // West - 11 entries returned
       case west: {format ["SELECT pid, name, cash, copbank, adminlevel, donorlevel, cop_licenses, coplevel, cop_gear, blacklist, cop_stats, playtime FROM players WHERE pid='%1'",_uid];};
       // Civilian - 12 entries returned
       case civilian: {format ["SELECT pid, name, cash, civbank, adminlevel, donorlevel, civ_licenses, arrested, civ_gear, civ_stats, civ_alive, civ_position, playtime FROM players WHERE pid='%1'",_uid];};
       // Independent - 10 entries returned
       case independent: {format ["SELECT pid, name, cash, medbank, adminlevel, donorlevel, med_licenses, mediclevel, med_gear, med_stats, playtime FROM players WHERE pid='%1'",_uid];};
      };

      mit dem hier

      fn_queryRequest.sqf
      CSS
      _query = switch (_side) do {
       // West - 11 entries returned
       case west: {format ["SELECT pid, name, copcash, copbank, adminlevel, donorlevel, cop_licenses, coplevel, cop_gear, blacklist, cop_stats, playtime FROM players WHERE pid='%1'",_uid];};
       // Civilian - 12 entries returned
       case civilian: {format ["SELECT pid, name, civcash, civbank, adminlevel, donorlevel, civ_licenses, arrested, civ_gear, civ_stats, civ_alive, civ_position, playtime FROM players WHERE pid='%1'",_uid];};
       // Independent - 10 entries returned
       case independent: {format ["SELECT pid, name, medcash, medbank, adminlevel, donorlevel, med_licenses, mediclevel, med_gear, med_stats, playtime FROM players WHERE pid='%1'",_uid];};
      };

      Dan gehen wir in die fn_updateRequest.sqf

      dort ersetzt das hier

      fn_updateRequest.sqf
      CSS
      switch (_side) do {
       case west: {_query = format ["UPDATE players SET name='%1', cash='%2', copbank='%3', cop_gear='%4', cop_licenses='%5', cop_stats='%6', playtime='%7' WHERE pid='%8'",_name,_cash,_bank,_gear,_licenses,_stats,_playtime_update,_uid];};
       case civilian: {_query = format ["UPDATE players SET name='%1', cash='%2', civbank='%3', civ_licenses='%4', civ_gear='%5', arrested='%6', civ_stats='%7', civ_alive='%8', civ_position='%9', playtime='%10' 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];};
       case independent: {_query = format ["UPDATE players SET name='%1', cash='%2', medbank='%3', med_licenses='%4', med_gear='%5', med_stats='%6', playtime='%7' WHERE pid='%8'",_name,_cash,_bank,_licenses,_gear,_stats,_playtime_update,_uid];};
      };

      mit dem hier

      fn_updateRequest.sqf
      CSS
      switch (_side) do {
       case west: {_query = format ["UPDATE players SET name='%1', copcash='%2', copbank='%3', cop_gear='%4', cop_licenses='%5', cop_stats='%6', playtime='%7' WHERE pid='%8'",_name,_cash,_bank,_gear,_licenses,_stats,_playtime_update,_uid];};
       case civilian: {_query = format ["UPDATE players SET name='%1', civcash='%2', civbank='%3', civ_licenses='%4', civ_gear='%5', arrested='%6', civ_stats='%7', civ_alive='%8', civ_position='%9', playtime='%10' 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];};
       case independent: {_query = format ["UPDATE players SET name='%1', medcash='%2', medbank='%3', med_licenses='%4', med_gear='%5', med_stats='%6', playtime='%7' WHERE pid='%8'",_name,_cash,_bank,_licenses,_gear,_stats,_playtime_update,_uid];};
      };

      Dann geht es in die fn_insertRequest.sqf und ersetzt alles mit dem hier

      fn_insertRequest.sqf
      CSS
      #include "\life_server\script_macros.hpp"
      /*
       File: fn_insertRequest.sqf
       Author: Bryan "Tonic" Boardwine
       Description:
       Adds a player to the database upon first joining of the server.
       Recieves information from core\sesison\fn_insertPlayerInfo.sqf
      */
      private ["_queryResult","_query","_alias"];
      params [
       "_uid",
       "_name",
       ["_money",-1,[0]],
       ["_bank",-1,[0]],
       ["_returnToSender",objNull,[objNull]]
      ];
      //Error checks
      if ((_uid isEqualTo "") || (_name isEqualTo "")) exitWith {systemChat "Bad UID or name";}; //Let the client be 'lost' in 'transaction'
      if (isNull _returnToSender) exitWith {systemChat "ReturnToSender is Null!";}; //No one to send this to!
      _query = format ["SELECT pid, name FROM players WHERE pid='%1'",_uid];
      _tickTime = diag_tickTime;
      _queryResult = [_query,2] call DB_fnc_asyncCall;
      if (EXTDB_SETTING(getNumber,"DebugMode") isEqualTo 1) then {
       diag_log "------------- Insert 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 "------------------------------------------------";
      };
      //Double check to make sure the client isn't in the database...
      if (_queryResult isEqualType "") exitWith {[] remoteExecCall ["SOCK_fnc_dataQuery",(owner _returnToSender)];}; //There was an entry!
      if !(count _queryResult isEqualTo 0) exitWith {[] remoteExecCall ["SOCK_fnc_dataQuery",(owner _returnToSender)];};
      //Clense and prepare some information.
      _name = [_name] call DB_fnc_mresString; //Clense the name of bad chars.
      _alias = [[_name]] call DB_fnc_mresArray;
      _money = [_money] call DB_fnc_numberSafe;
      _bank = [_bank] call DB_fnc_numberSafe;
      //Prepare the query statement..
      _query = format ["INSERT INTO players (pid, name, copcash, civcash, medcash, copbank, civbank, medbank, aliases, cop_licenses, med_licenses, civ_licenses, civ_gear, cop_gear, med_gear) VALUES('%1', '%2', '%3', '%4', '%5', '%6', '%7','""[]""','""[]""','""[]""','""[]""','""[]""','""[]""')",
       _uid,
       _name,
       _money,
       _bank,
       _bank,
       _bank,
       _alias
      ];
      [_query,1] call DB_fnc_asyncCall;
      [] remoteExecCall ["SOCK_fnc_dataQuery",(owner _returnToSender)];
      Alles anzeigen

      Zu guter letzt gehen wir in die fn_updatePartial.sqf

      und ersetzt das hier

      fn_updatePartial.sqf
      CSS
      case 0: {
              _value = [_this,2,0,[0]] call BIS_fnc_param;
              _value = [_value] call DB_fnc_numberSafe;
              _query = format ["UPDATE players SET cash='%1' WHERE pid='%2'",_value,_uid];
          };

      mit dem hier

      fn_updatePartial.sqf
      CSS
      case 0: {
            switch (_side) do {
              case west: {
                _value = [_this,2,0,[0]] call BIS_fnc_param;
                _value = [_value] call DB_fnc_numberSafe;
                _query = format ["UPDATE players SET copcash='%1' WHERE pid='%2'",_value,_uid];
              };
              case civilian: {
                _value = [_this,2,0,[0]] call BIS_fnc_param;
                _value = [_value] call DB_fnc_numberSafe;
                _query = format ["UPDATE players SET civcash='%1' WHERE pid='%2'",_value,_uid];
              };
              case independent: {
                _value = [_this,2,0,[0]] call BIS_fnc_param;
                _value = [_value] call DB_fnc_numberSafe;
                _query = format ["UPDATE players SET medcash='%1' WHERE pid='%2'",_value,_uid];
              };
            };
          };
      Alles anzeigen

      Und als alertezer schritt geht ihr wieder in die datenbank und auf erue Tabelle Player und fügt dort das hier ein

      Spoiler anzeigen
      SQL
      ALTER TABLE players ADD `civcash` int(100) NOT NULL DEFAULT '0';
      ALTER TABLE players ADD `copcash` int(100) NOT NULL DEFAULT '0';
      ALTER TABLE players ADD `medcash` int(100) NOT NULL DEFAULT '0';

      So Bite Joe kein ding musst dich net noch so anstrengen heheh

      :thumbup: trozdem Super gemacht

      Alles anzeigen

      Mit freundlichen Grüßen

      Joe Barbaro

      Entwickler vom Arma 3 Batch Generator


      3 Mal editiert, zuletzt von Joe Barbaro (9. September 2019 um 18:31)

    • warsteiner
      Amateur
      Reaktionen
      20
      Trophäen
      11
      Beiträge
      257
      • 7. September 2019 um 19:21
      • #2

      Moin ich habe aktuell das Problem, das wenn neue Spieler connecten das Geld immernoch auf die spalte bankacc geht und nicht auf civbank, copbank oder medbank

    • flippa
      Fortgeschrittener
      Reaktionen
      30
      Trophäen
      8
      Beiträge
      319
      • 7. September 2019 um 20:17
      • #3

      Hast du die pbo neugepackt

    • warsteiner
      Amateur
      Reaktionen
      20
      Trophäen
      11
      Beiträge
      257
      • 7. September 2019 um 20:41
      • #4

      ja wenn ich mir geld auf civbank über die db gebe habe ich das auch nur bei neuen spielern nicht

      EDIT: oder kann/muss ich die spalte bankacc aus der db entfernen?

    • flippa
      Fortgeschrittener
      Reaktionen
      30
      Trophäen
      8
      Beiträge
      319
      • 7. September 2019 um 21:18
      • #5

      Eigentlich nicht, schau mal in deiner fn_queryrequest ob da noch irgendwo bankacc steht. Wenn ja mach das mit dem ändern nochmal

    • Joe Barbaro
      Nerd
      Reaktionen
      199
      Trophäen
      8
      Beiträge
      688
      • 8. September 2019 um 01:28
      • #6

      bankacc kann eigentlich weg, jedoch habe ich sie drin gelassen da sie ja sonst nicht stört.

      Wir haben ja alle Werte an die anderen spalten übergeben.

      Logs wären auch interessant.


      Mit freundlichen Grüßen

      Joe Barbaro

      Entwickler vom Arma 3 Batch Generator


    • warsteiner
      Amateur
      Reaktionen
      20
      Trophäen
      11
      Beiträge
      257
      • 8. September 2019 um 07:04
      • #7

      Arma3_x64_2019-09-08_06-56-06.rpt  arma3server_x64_2019-09-07_23-45-00.rpt

    • Joe Barbaro
      Nerd
      Reaktionen
      199
      Trophäen
      8
      Beiträge
      688
      • 8. September 2019 um 11:51
      • #8

      Also perse nen Haufen Mod Fehler aber nix was das jetzt beeinträchtigen könnte.

      Schau nochmal genau durch ob du alle Schritte befolgt hast.

      Wäre mir neu wenn daran was nicht gehen könnte.


      Mit freundlichen Grüßen

      Joe Barbaro

      Entwickler vom Arma 3 Batch Generator


    • warsteiner
      Amateur
      Reaktionen
      20
      Trophäen
      11
      Beiträge
      257
      • 8. September 2019 um 13:21
      • #9

      Habe gerade noch einmal nachgeschaut, Tabellen in der DB sind da Änderungen im Life_Server wurden auch gemacht ich hatte jetzt sogar noch die Spalte für den ADAC in die DB eingefügt aber immernoch das gleichefn_queryRequest.sqf

    • warsteiner
      Amateur
      Reaktionen
      20
      Trophäen
      11
      Beiträge
      257
      • 8. September 2019 um 13:22
      • #10
      Spoiler anzeigen

      CREATE TABLE `players` (

      `uid` INT(6) NOT NULL AUTO_INCREMENT,

      `name` VARCHAR(32) NOT NULL,

      `aliases` TEXT NOT NULL,

      `pid` VARCHAR(17) NOT NULL,

      `cash` INT(100) NOT NULL DEFAULT 0,

      `coplevel` ENUM('0','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20') NOT NULL DEFAULT '0',

      `bankacc` INT(100) NOT NULL DEFAULT 0,

      `mediclevel` ENUM('0','1','2','3','4','5') NOT NULL DEFAULT '0',

      `civ_licenses` TEXT NOT NULL,

      `cop_licenses` TEXT NOT NULL,

      `med_licenses` TEXT NOT NULL,

      `civ_gear` TEXT NOT NULL,

      `cop_gear` TEXT NOT NULL,

      `med_gear` TEXT NOT NULL,

      `civ_stats` VARCHAR(32) NOT NULL DEFAULT '"[100,100,0]"',

      `cop_stats` VARCHAR(32) NOT NULL DEFAULT '"[100,100,0]"',

      `med_stats` VARCHAR(32) NOT NULL DEFAULT '"[100,100,0]"',

      `arrested` TINYINT(1) NOT NULL DEFAULT 0,

      `adminlevel` ENUM('0','1','2','3','4','5') NOT NULL DEFAULT '0',

      `donorlevel` ENUM('0','1','2','3','4','5') NOT NULL DEFAULT '0',

      `blacklist` TINYINT(1) NOT NULL DEFAULT 0,

      `civ_alive` TINYINT(1) NOT NULL DEFAULT 0,

      `civ_position` VARCHAR(64) NOT NULL DEFAULT '"[]"',

      `playtime` VARCHAR(32) NOT NULL DEFAULT '"[0,0,0]"',

      `insert_time` TIMESTAMP NOT NULL DEFAULT current_timestamp(),

      `last_seen` TIMESTAMP NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),

      `gang_id` INT(11) NOT NULL DEFAULT -1,

      `gang_perm_id` INT(11) NOT NULL DEFAULT -1,

      `IsCop` TINYINT(1) NOT NULL DEFAULT 0,

      `IsEMT` TINYINT(1) NOT NULL DEFAULT 0,

      `IsAdac` TINYINT(1) NOT NULL DEFAULT 0,

      `num` VARCHAR(10) NOT NULL DEFAULT '0',

      `contact` TEXT NULL DEFAULT NULL,

      `sms` INT(10) NOT NULL DEFAULT 0,

      `appel` INT(10) NOT NULL DEFAULT 0,

      `annuaire` ENUM('0','1') NOT NULL DEFAULT '0',

      `idcard_data_civ` VARCHAR(500) NOT NULL DEFAULT '"[]"',

      `idcard_data_cop` VARCHAR(500) NOT NULL DEFAULT '"[]"',

      `idcard_data_med` VARCHAR(500) NOT NULL DEFAULT '"[]"',

      `online` TINYINT(1) NOT NULL DEFAULT 0,

      `adac_licenses` TEXT NOT NULL,

      `adac_gear` TEXT NOT NULL,

      `adaclevel` ENUM('0','1','2','3','4','5') NOT NULL DEFAULT '0',

      `adac_stats` VARCHAR(32) NOT NULL DEFAULT '"[100,100,0]"',

      `civbank` INT(100) NOT NULL DEFAULT 0,

      `copbank` INT(100) NOT NULL DEFAULT 0,

      `medbank` INT(100) NOT NULL DEFAULT 0,

      `adacbank` INT(100) NOT NULL DEFAULT 0,

      PRIMARY KEY (`uid`),

      UNIQUE INDEX `pid` (`pid`),

      INDEX `name` (`name`),

      INDEX `blacklist` (`blacklist`)

      )

      COLLATE='utf8mb4_general_ci'

      ENGINE=InnoDB

      AUTO_INCREMENT=164

      ;

    • Joe Barbaro
      Nerd
      Reaktionen
      199
      Trophäen
      8
      Beiträge
      688
      • 9. September 2019 um 00:18
      • #11

      Hm und es wird auf die bankAcc geworfen oder wie?

      Du musst natürlich sicher stellen, dass du den Eintrag bankacc im Lifeserver script überschreibst mit copbank....


      Mit freundlichen Grüßen

      Joe Barbaro

      Entwickler vom Arma 3 Batch Generator


    • warsteiner
      Amateur
      Reaktionen
      20
      Trophäen
      11
      Beiträge
      257
      • 9. September 2019 um 09:20
      • #12

      Ja ich war gestern auch noch mit mehreren auf den serverr und als die geld eingezahlt haben wurde das auf bankacc gepackt und nicht civbank

    • Deathman
      Profi
      Reaktionen
      259
      Trophäen
      10
      Beiträge
      676
      Dateien
      12
      Bilder
      106
      • 9. September 2019 um 10:34
      • #13

      Ehmm mal so ne Frage aber ich glaube das dass Tut nicht so ganz volständig ist meine Meinung

    • Deathman
      Profi
      Reaktionen
      259
      Trophäen
      10
      Beiträge
      676
      Dateien
      12
      Bilder
      106
      • 9. September 2019 um 10:36
      • #14

      Weil bankacc ist ja nicht nur dort definiert sondern auch überall anders das heißt wenn du irgend was einzahlst musst du auch ein Side Switch machen oder sehe ich das falsch aber nicht nur bei einzahlen sondern überall wo das verwendet wird

    • Deathman
      Profi
      Reaktionen
      259
      Trophäen
      10
      Beiträge
      676
      Dateien
      12
      Bilder
      106
      • 9. September 2019 um 11:16
      • #15

      Ich bin mir zwar nicht ganz sicher aber in der fn_updatePartial.sqf müsste das dann doch im case 1 so aussehen

      fn_updatePartial.sqf
      Code
      case 1: {
            _query = switch (side) do {
                case west:{
                  _value = [_this,2,0,[0]] call BIS_fnc_param;
                  _value = [_value] call DB_fnc_numberSafe;
                  _query = format ["UPDATE players SET copbank='%1' WHERE pid='%2'",_value,_uid];
                };
                case civilian: {
                  _value = [_this,2,0,[0]] call BIS_fnc_param;
                  _value = [_value] call DB_fnc_numberSafe;
                  _query = format ["UPDATE players SET civbank='%1' WHERE pid='%2'",_value,_uid];
                };
                case independent: {
                  _value = [_this,2,0,[0]] call BIS_fnc_param;
                  _value = [_value] call DB_fnc_numberSafe;
                  _query = format ["UPDATE players SET medbank='%1' WHERE pid='%2'",_value,_uid];
                };
            };
          };
      Alles anzeigen

      Und dann noch in die fn_updateRequest.sqf

      und dort einegtlich das hier

      fn_updateRequest.sqf
      Code
      switch (_side) do {
          case west: {_query = format ["UPDATE players SET name='%1', cash='%2', bankacc='%3', cop_gear='%4', cop_licenses='%5', cop_stats='%6', playtime='%7' WHERE pid='%8'",_name,_cash,_bank,_gear,_licenses,_stats,_playtime_update,_uid];};
          case civilian: {_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' 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];};
          case independent: {_query = format ["UPDATE players SET name='%1', cash='%2', bankacc='%3', med_licenses='%4', med_gear='%5', med_stats='%6', playtime='%7' WHERE pid='%8'",_name,_cash,_bank,_licenses,_gear,_stats,_playtime_update,_uid];};
      };

      Zu dem Hier um ändern

      fn_updateRequest.sqf
      Code
      switch (_side) do {
          case west: {_query = format ["UPDATE players SET name='%1', cash='%2', copbank='%3', cop_gear='%4', cop_licenses='%5', cop_stats='%6', playtime='%7' WHERE pid='%8'",_name,_cash,_bank,_gear,_licenses,_stats,_playtime_update,_uid];};
          case civilian: {_query = format ["UPDATE players SET name='%1', cash='%2', civbank='%3', civ_licenses='%4', civ_gear='%5', arrested='%6', civ_stats='%7', civ_alive='%8', civ_position='%9', playtime='%10' 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];};
          case independent: {_query = format ["UPDATE players SET name='%1', cash='%2', medbank='%3', med_licenses='%4', med_gear='%5', med_stats='%6', playtime='%7' WHERE pid='%8'",_name,_cash,_bank,_licenses,_gear,_stats,_playtime_update,_uid];};
      };

      Das was jetzt nur den Life_server anghet weil du musst ja am anfang auch das Geld setzten lassen und im CLient muss du dann auch bissel was anpassen ist eingetlich fast das gleiche wie hier also mit dem Switch side gendöns Bla

    • Joe Barbaro
      Nerd
      Reaktionen
      199
      Trophäen
      8
      Beiträge
      688
      • 9. September 2019 um 12:13
      • #16

      #Updated

      Danke Deathman

      Entwickler vom Arma 3 Batch Generator


    • Deathman
      Profi
      Reaktionen
      259
      Trophäen
      10
      Beiträge
      676
      Dateien
      12
      Bilder
      106
      • 9. September 2019 um 15:54
      • #17

      Joe tu mal das side in der fn_updatePartial.sqf im den switch antsatt so side so machen _side und noch was mach ich gleich für dich das jeder auch sein eignes Cash hat Cop Med Civ ok achja das _query = muss vor dem switch auch noch weg fehler von mir ich dummerschen müsste dann so aussehen

      Spoiler anzeigen
      Code
      case 1: {
            switch (_side) do {
              case west: {
                _value = [_this,2,0,[0]] call BIS_fnc_param;
                _value = [_value] call DB_fnc_numberSafe;
                _query = format ["UPDATE players SET copbank='%1' WHERE pid='%2'",_value,_uid];
              };
              case civilian: {
                _value = [_this,2,0,[0]] call BIS_fnc_param;
                _value = [_value] call DB_fnc_numberSafe;
                _query = format ["UPDATE players SET civbank='%1' WHERE pid='%2'",_value,_uid];
              };
              case independent: {
                _value = [_this,2,0,[0]] call BIS_fnc_param;
                _value = [_value] call DB_fnc_numberSafe;
                _query = format ["UPDATE players SET medbank='%1' WHERE pid='%2'",_value,_uid];
              };
            };
          };
      Alles anzeigen

    • Deathman
      Profi
      Reaktionen
      259
      Trophäen
      10
      Beiträge
      676
      Dateien
      12
      Bilder
      106
      • 9. September 2019 um 16:41
      • #18

      Wie immer BACKUP MACHEN VOLL LIFE_SERVER UND MISSION!!

      So ich bin dann Fertig mit dem Cash für jede Seite kann ja Joe noch Hinzufügen

      Es ist alles so wie mit dem Bank sehr Simpel wie ganz oben schon gesagt


      Dan fangen wir mal an nä

      Da gehen wir erstmal in die fn_queryRequest.sqf

      und sucht folgendes

      fn_queryRequest.sqf
      CSS
      _query = switch (_side) do {
       // West - 11 entries returned
       case west: {format ["SELECT pid, name, cash, copbank, adminlevel, donorlevel, cop_licenses, coplevel, cop_gear, blacklist, cop_stats, playtime FROM players WHERE pid='%1'",_uid];};
       // Civilian - 12 entries returned
       case civilian: {format ["SELECT pid, name, cash, civbank, adminlevel, donorlevel, civ_licenses, arrested, civ_gear, civ_stats, civ_alive, civ_position, playtime FROM players WHERE pid='%1'",_uid];};
       // Independent - 10 entries returned
       case independent: {format ["SELECT pid, name, cash, medbank, adminlevel, donorlevel, med_licenses, mediclevel, med_gear, med_stats, playtime FROM players WHERE pid='%1'",_uid];};
      };

      mit dem hier

      fn_queryRequest.sqf
      CSS
      _query = switch (_side) do {
       // West - 11 entries returned
       case west: {format ["SELECT pid, name, copcash, copbank, adminlevel, donorlevel, cop_licenses, coplevel, cop_gear, blacklist, cop_stats, playtime FROM players WHERE pid='%1'",_uid];};
       // Civilian - 12 entries returned
       case civilian: {format ["SELECT pid, name, civcash, civbank, adminlevel, donorlevel, civ_licenses, arrested, civ_gear, civ_stats, civ_alive, civ_position, playtime FROM players WHERE pid='%1'",_uid];};
       // Independent - 10 entries returned
       case independent: {format ["SELECT pid, name, medcash, medbank, adminlevel, donorlevel, med_licenses, mediclevel, med_gear, med_stats, playtime FROM players WHERE pid='%1'",_uid];};
      };

      Dan gehen wir in die fn_updateRequest.sqf

      dort ersetzt das hier

      fn_updateRequest.sqf
      CSS
      switch (_side) do {
       case west: {_query = format ["UPDATE players SET name='%1', cash='%2', copbank='%3', cop_gear='%4', cop_licenses='%5', cop_stats='%6', playtime='%7' WHERE pid='%8'",_name,_cash,_bank,_gear,_licenses,_stats,_playtime_update,_uid];};
       case civilian: {_query = format ["UPDATE players SET name='%1', cash='%2', civbank='%3', civ_licenses='%4', civ_gear='%5', arrested='%6', civ_stats='%7', civ_alive='%8', civ_position='%9', playtime='%10' 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];};
       case independent: {_query = format ["UPDATE players SET name='%1', cash='%2', medbank='%3', med_licenses='%4', med_gear='%5', med_stats='%6', playtime='%7' WHERE pid='%8'",_name,_cash,_bank,_licenses,_gear,_stats,_playtime_update,_uid];};
      };

      mit dem hier

      fn_updateRequest.sqf
      CSS
      switch (_side) do {
       case west: {_query = format ["UPDATE players SET name='%1', copcash='%2', copbank='%3', cop_gear='%4', cop_licenses='%5', cop_stats='%6', playtime='%7' WHERE pid='%8'",_name,_cash,_bank,_gear,_licenses,_stats,_playtime_update,_uid];};
       case civilian: {_query = format ["UPDATE players SET name='%1', civcash='%2', civbank='%3', civ_licenses='%4', civ_gear='%5', arrested='%6', civ_stats='%7', civ_alive='%8', civ_position='%9', playtime='%10' 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];};
       case independent: {_query = format ["UPDATE players SET name='%1', medcash='%2', medbank='%3', med_licenses='%4', med_gear='%5', med_stats='%6', playtime='%7' WHERE pid='%8'",_name,_cash,_bank,_licenses,_gear,_stats,_playtime_update,_uid];};
      };

      Dann geht es in die fn_insertRequest.sqf und ersetzt alles mit dem hier

      fn_insertRequest.sqf
      CSS
      #include "\life_server\script_macros.hpp"
      /*
       File: fn_insertRequest.sqf
       Author: Bryan "Tonic" Boardwine
       Description:
       Adds a player to the database upon first joining of the server.
       Recieves information from core\sesison\fn_insertPlayerInfo.sqf
      */
      private ["_queryResult","_query","_alias"];
      params [
       "_uid",
       "_name",
       ["_money",-1,[0]],
       ["_bank",-1,[0]],
       ["_returnToSender",objNull,[objNull]]
      ];
      //Error checks
      if ((_uid isEqualTo "") || (_name isEqualTo "")) exitWith {systemChat "Bad UID or name";}; //Let the client be 'lost' in 'transaction'
      if (isNull _returnToSender) exitWith {systemChat "ReturnToSender is Null!";}; //No one to send this to!
      _query = format ["SELECT pid, name FROM players WHERE pid='%1'",_uid];
      _tickTime = diag_tickTime;
      _queryResult = [_query,2] call DB_fnc_asyncCall;
      if (EXTDB_SETTING(getNumber,"DebugMode") isEqualTo 1) then {
       diag_log "------------- Insert 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 "------------------------------------------------";
      };
      //Double check to make sure the client isn't in the database...
      if (_queryResult isEqualType "") exitWith {[] remoteExecCall ["SOCK_fnc_dataQuery",(owner _returnToSender)];}; //There was an entry!
      if !(count _queryResult isEqualTo 0) exitWith {[] remoteExecCall ["SOCK_fnc_dataQuery",(owner _returnToSender)];};
      //Clense and prepare some information.
      _name = [_name] call DB_fnc_mresString; //Clense the name of bad chars.
      _alias = [[_name]] call DB_fnc_mresArray;
      _money = [_money] call DB_fnc_numberSafe;
      _bank = [_bank] call DB_fnc_numberSafe;
      //Prepare the query statement..
      _query = format ["INSERT INTO players (pid, name, copcash, civcash, medcash, copbank, civbank, medbank, aliases, cop_licenses, med_licenses, civ_licenses, civ_gear, cop_gear, med_gear) VALUES('%1', '%2', '%3', '%4', '%5', '%6', '%7','""[]""','""[]""','""[]""','""[]""','""[]""','""[]""')",
       _uid,
       _name,
       _money,
       _bank,
       _bank,
       _bank,
       _alias
      ];
      [_query,1] call DB_fnc_asyncCall;
      [] remoteExecCall ["SOCK_fnc_dataQuery",(owner _returnToSender)];
      Alles anzeigen

      Zu guter letzt gehen wir in die fn_updatePartial.sqf

      und ersetzt das hier

      fn_updatePartial.sqf
      CSS
      case 0: {
              _value = [_this,2,0,[0]] call BIS_fnc_param;
              _value = [_value] call DB_fnc_numberSafe;
              _query = format ["UPDATE players SET cash='%1' WHERE pid='%2'",_value,_uid];
          };

      mit dem hier

      fn_updatePartial.sqf
      CSS
      case 0: {
            switch (_side) do {
              case west: {
                _value = [_this,2,0,[0]] call BIS_fnc_param;
                _value = [_value] call DB_fnc_numberSafe;
                _query = format ["UPDATE players SET copcash='%1' WHERE pid='%2'",_value,_uid];
              };
              case civilian: {
                _value = [_this,2,0,[0]] call BIS_fnc_param;
                _value = [_value] call DB_fnc_numberSafe;
                _query = format ["UPDATE players SET civcash='%1' WHERE pid='%2'",_value,_uid];
              };
              case independent: {
                _value = [_this,2,0,[0]] call BIS_fnc_param;
                _value = [_value] call DB_fnc_numberSafe;
                _query = format ["UPDATE players SET medcash='%1' WHERE pid='%2'",_value,_uid];
              };
            };
          };
      Alles anzeigen

      Und als alertezer schritt geht ihr wieder in die datenbank und auf erue Tabelle Player und fügt dort das hier ein

      Spoiler anzeigen
      SQL
      ALTER TABLE players ADD `civcash` int(100) NOT NULL DEFAULT '0';
      ALTER TABLE players ADD `copcash` int(100) NOT NULL DEFAULT '0';
      ALTER TABLE players ADD `medcash` int(100) NOT NULL DEFAULT '0';

      So Bite Joe kein ding musst dich net noch so anstrengen heheh

      :thumbup: trozdem Super gemacht

    • warsteiner
      Amateur
      Reaktionen
      20
      Trophäen
      11
      Beiträge
      257
      • 9. September 2019 um 18:10
      • #19
      Spoiler anzeigen

      /*

      File: fn_updatePartial.sqf

      Author: Bryan "Tonic" Boardwine

      Description:

      Takes partial data of a player and updates it, this is meant to be

      less network intensive towards data flowing through it for updates.

      */

      private ["_uid","_side","_value","_value1","_value2","_mode","_query"];

      _uid = [_this,0,"",[""]] call BIS_fnc_param;

      _side = [_this,1,sideUnknown,[civilian]] call BIS_fnc_param;

      _mode = [_this,3,-1,[0]] call BIS_fnc_param;

      if (_uid isEqualTo "" || _side isEqualTo sideUnknown) exitWith {}; //Bad.

      _query = "";

      switch (_mode) do {

      case 0: {

      switch (_side) do {

      case west: {

      _value = [_this,2,0,[0]] call BIS_fnc_param;

      _value = [_value] call DB_fnc_numberSafe;

      _query = format ["UPDATE players SET copcash='%1' WHERE pid='%2'",_value,_uid];

      };

      case civilian: {

      _value = [_this,2,0,[0]] call BIS_fnc_param;

      _value = [_value] call DB_fnc_numberSafe;

      _query = format ["UPDATE players SET civcash='%1' WHERE pid='%2'",_value,_uid];

      };

      case independent: {

      _value = [_this,2,0,[0]] call BIS_fnc_param;

      _value = [_value] call DB_fnc_numberSafe;

      _query = format ["UPDATE players SET medcash='%1' WHERE pid='%2'",_value,_uid];

      };

      case east: {

      _value = [_this,2,0,[0]] call BIS_fnc_param;

      _value = [_value] call DB_fnc_numberSafe;

      _query = format ["UPDATE players SET adaccash='%1' WHERE pid='%2'",_value,_uid];

      };

      };

      };

      case 1: {

      switch (_side) do {

      case west: {

      _value = [_this,2,0,[0]] call BIS_fnc_param;

      _value = [_value] call DB_fnc_numberSafe;

      _query = format ["UPDATE players SET copbank='%1' WHERE pid='%2'",_value,_uid];

      };

      case civilian: {

      _value = [_this,2,0,[0]] call BIS_fnc_param;

      _value = [_value] call DB_fnc_numberSafe;

      _query = format ["UPDATE players SET civbank='%1' WHERE pid='%2'",_value,_uid];

      };

      case independent: {

      _value = [_this,2,0,[0]] call BIS_fnc_param;

      _value = [_value] call DB_fnc_numberSafe;

      _query = format ["UPDATE players SET medbank='%1' WHERE pid='%2'",_value,_uid];

      };

      case independent: {

      _value = [_this,2,0,[0]] call BIS_fnc_param;

      _value = [_value] call DB_fnc_numberSafe;

      _query = format ["UPDATE players SET adacbank='%1' WHERE pid='%2'",_value,_uid];

      };

      };

      };

      case 2: {

      _value = [_this,2,[],[[]]] call BIS_fnc_param;

      //Does something license related but I can't remember I only know it's important?

      for "_i" from 0 to count(_value)-1 do {

      _bool = [(_value select _i) select 1] call DB_fnc_bool;

      _value set[_i,[(_value select _i) select 0,_bool]];

      };

      _value = [_value] call DB_fnc_mresArray;

      switch (_side) do {

      case west: {_query = format ["UPDATE players SET cop_licenses='%1' WHERE pid='%2'",_value,_uid];};

      case civilian: {_query = format ["UPDATE players SET civ_licenses='%1' WHERE pid='%2'",_value,_uid];};

      case independent: {_query = format ["UPDATE players SET med_licenses='%1' WHERE pid='%2'",_value,_uid];};

      case east: {_query = format["UPDATE players SET adac_licenses='%1' WHERE pid='%2'",_value,_uid];};

      };

      };

      case 3: {

      _value = [_this,2,[],[[]]] call BIS_fnc_param;

      _value = [_value] call DB_fnc_mresArray;

      switch (_side) do {

      case west: {_query = format ["UPDATE players SET cop_gear='%1' WHERE pid='%2'",_value,_uid];};

      case civilian: {_query = format ["UPDATE players SET civ_gear='%1' WHERE pid='%2'",_value,_uid];};

      case independent: {_query = format ["UPDATE players SET med_gear='%1' WHERE pid='%2'",_value,_uid];};

      case east: {_query = format["UPDATE players SET adac_gear='%1' WHERE pid='%2'",_value,_uid];};

      };

      };

      case 4: {

      _value = [_this,2,false,[true]] call BIS_fnc_param;

      _value = [_value] call DB_fnc_bool;

      _value2 = [_this,4,[],[[]]] call BIS_fnc_param;

      _value2 = if (count _value2 isEqualTo 3) then {_value2} else {[0,0,0]};

      _value2 = [_value2] call DB_fnc_mresArray;

      _query = format ["UPDATE players SET civ_alive='%1', civ_position='%2' WHERE pid='%3'",_value,_value2,_uid];

      };

      case 5: {

      _value = [_this,2,false,[true]] call BIS_fnc_param;

      _value = [_value] call DB_fnc_bool;

      _query = format ["UPDATE players SET arrested='%1' WHERE pid='%2'",_value,_uid];

      };

      case 6: {

      _value1 = [_this,2,0,[0]] call BIS_fnc_param;

      _value2 = [_this,4,0,[0]] call BIS_fnc_param;

      _value1 = [_value1] call DB_fnc_numberSafe;

      _value2 = [_value2] call DB_fnc_numberSafe;

      _query = format ["UPDATE players SET cash='%1', bankacc='%2' WHERE pid='%3'",_value1,_value2,_uid];

      };

      case 7: {

      _array = [_this,2,[],[[]]] call BIS_fnc_param;

      [_uid,_side,_array,0] call TON_fnc_keyManagement;

      };

      };

      if (_query isEqualTo "") exitWith {};

      [_query,1] call DB_fnc_asyncCall;

      In der fn_updatePartial muss da nich aucn noch was in case 6 geändert werden? ich hbe das gerade mal getestet, und wenn ich mit jeweils 100k auf civcash und civbank gebe geht es zahl ich es ein/aus ist es wieder bei cash und bankacc

    • Deathman
      Profi
      Reaktionen
      259
      Trophäen
      10
      Beiträge
      676
      Dateien
      12
      Bilder
      106
      • 9. September 2019 um 18:30
      • #20

      naja Cash und bankacc kannst du löschen aber da können wir klein noch was machen

    Registrieren oder Einloggen

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

    Registrieren

    Tags

    • Altis Life
    • extDB 3
    • getrennte Konten

    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™