Ich habe mir gedacht, dass ich hier mal ein Tutorial mache, wie man getrennte Konten für die Zivilisten und die Cops erstellt.
Das Tutorial stammt ursprünglich aus dem altisliferpg.com Forum von gregben13. Ich übersetze dieses lediglich.
Dann fangen wir mal an.
1. Öffnet eure @[lexicon]extDB[/lexicon]\[lexicon]extDB[/lexicon]\db_custom\altis-life-rpg-4.ini (Bei extDB2: @extDB2\[lexicon]extdb[/lexicon]\SQL_CUSTOM_V2\altis-life-rpg-4.ini
Ersetzt:
Spoiler anzeigen
[playerInfoInsert]
;;
SQL1_1 = INSERT INTO players
;;1 2 3 4 5 6 7 8 9 10 11
SQL1_2 = (playerid, name, cash, bankacc, aliases, cop_licenses, med_licenses, civ_licenses, civ_gear, cop_gear, med_gear)
SQL1_3 = VALUES(?,?,?,?,?,?,?,?,?,?,?);
SQL1_INPUTS = 1, 2-String, 3, 4, 5, 6, 7, 8, 9, 10, 11
Number of Inputs = 11
;;______________________________________________________________
Mit:
Spoiler anzeigen
[playerInfoInsert]
;;
SQL1_1 = INSERT INTO players
;;1 2 3 4 5 6 7 8 9 10 11 12 13
SQL1_2 = (playerid, name, cash, bankacc, westcash, westbankacc, aliases, cop_licenses, med_licenses, civ_licenses, civ_gear, cop_gear, med_gear)
SQL1_3 = VALUES(?,?,?,?,?,?,?,?,?,?,?,?,?);
SQL1_INPUTS = 1, 2-String, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13
Number of Inputs = 13
;;______________________________________________________________
Dann ersetzt noch:
Spoiler anzeigen
[playerWestInfo]
;;
SQL1_1 = SELECT playerid, name, cash, bankacc, adminlevel, donatorlvl, cop_licenses, coplevel, cop_gear, blacklist FROM players WHERE playerid=?;
SQL1_INPUTS = 1
Number of Inputs = 1
OUTPUT = 1-String, 2-String, 3, 4, 5-String, 6-String, 7, 8-String, 9, 10
;;______________________________________________________________
Mit:
Spoiler anzeigen
[playerWestInfo]
;;
SQL1_1 = SELECT playerid, name, westcash, westbankacc, adminlevel, donatorlvl, cop_licenses, coplevel, cop_gear, blacklist FROM players WHERE playerid=?;
SQL1_INPUTS = 1
Number of Inputs = 1
OUTPUT = 1-String, 2-String, 3, 4, 5-String, 6-String, 7, 8-String, 9, 10
;;______________________________________________________________
Dann scrollt ihr ein wenig runter und ersetzt:
Spoiler anzeigen
[playerWestUpdate]
;;
SQL1_1 = UPDATE players
;;1 2 3 4 5 6
SQL1_2 = SET name=?, cash=?, bankacc=?, cop_gear=?, cop_licenses=? WHERE playerid=?
SQL1_INPUTS = 1-String, 2, 3, 4, 5, 6
Number of Inputs = 6
;;______________________________________________________________
Mit:
Spoiler anzeigen
[playerWestUpdate]
;;
SQL1_1 = UPDATE players
;;1 2 3 4 5 6
SQL1_2 = SET name=?, westcash=?, westbankacc=?, cop_gear=?, cop_licenses=? WHERE playerid=?;
SQL1_INPUTS = 1-String, 2, 3, 4, 5, 6
Number of Inputs = 6
;;______________________________________________________________
Danach fügt ihr unter playerUpdateBank das hier ein:
Spoiler anzeigen
[playerWestUpdateBank]
;;
SQL1_1 = UPDATE players
SQL1_2 = SET westbankacc=? WHERE playerid=?;
SQL1_INPUTS = 1, 2
Number of Inputs = 2
;;______________________________________________________________
Und unter playerUpdateBank+Cash:
Spoiler anzeigen
[playerWestUpdateBank+Cash]
;;
SQL1_1 = UPDATE players
SQL1_2 = SET westcash=?, westbankacc=? WHERE playerid=?;
SQL1_INPUTS = 1, 2, 3
Number of Inputs = 3
;;______________________________________________________________
So, mit dieser Datei wären wir dann soweit fertig.
2. Jetzt öffnet ihr eure life_server\Functions\MySQL\fn_updatePartial.sqf
Dort ersetzt ihr einfach:
Spoiler anzeigen
case 1: {
_value = [_this,2,0,[0]] call BIS_fnc_param;
_value = [_value] call DB_fnc_numberSafe;
_query = format["UPDATE players SET bankacc='%1' WHERE playerid='%2'",_value,_uid];
};
Mit:
Spoiler anzeigen
case 1: {
_value = [_this,2,0,[0]] call BIS_fnc_param;
_value = [_value] call DB_fnc_numberSafe;
switch(_side)do {
case civilian: {_query = format["playerUpdateBank:%1:%2",_value,_uid];};
case west: {_query = format["playerWestUpdateBank:%1:%2",_value,_uid];};
case independent: {_query = format["playerUpdateBank:%1:%2",_value,_uid];};
};
};
Dann scrollt nach unten und ersetzt:
Spoiler anzeigen
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 playerid='%3'",_value1,_value2,_uid];
};
Mit:
Spoiler anzeigen
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;
switch(_side)do {
case civilian: {_query = format["playerUpdateBank+Cash:%1:%2:%3",_value1,_value2,_uid];};
case west: {_query = format["playerWestUpdateBank+Cash:%1:%2:%3",_value1,_value2,_uid];};
case independent: {_query = format["playerUpdateBank+Cash:%1:%2:%3",_value1,_value2,_uid];};
};
};
Das war es mit dieser Datei.
3. Öffnet eure life_server\Functions\MySQL\fn_insertRequest.sqf
Ersetzt hier nur:
Spoiler anzeigen
//Prepare the query statement..
_query = format["playerInfoInsert:%1:%2:%3:%4:%5:%6:%7:%8:%9:%10:%11",
_uid,
_name,
_money,
_bank,
_alias,
[], // Cop Licenses
[], // Med Licenses
[], // Civ Licenses
[], // Civ Gear
[], // Cop Gear
[] // Med Gear
];
Mit:
Spoiler anzeigen
//Prepare the query statement..
_query = format["playerInfoInsert:%1:%2:%3:%4:%5:%6:%7:%8:%9:%10:%11:%12:%13",
_uid,
_name,
_money,
_bank,
_money,
_bank,
_alias,
[], // Cop Licenses
[], // Med Licenses
[], // Civ Licenses
[], // Civ Gear
[], // Cop Gear
[] // Med Gear
];
4. Als letztes müsst ihr noch eine SQL in eurer Datenbank ausführen.
Diese bekommt diesen Inhalt:
ALTER TABLE `players` ADD `westcash` int(100) NOT NULL DEFAULT '0';ALTER TABLE `players` ADD `westbankacc` int(100) NOT NULL DEFAULT '0';
Das war es auch schon.
Ich persönlich habe es auf der 4.4 Version getestet.
Denke aber, dass ab 4.0 aufwärts alles abdeckt.
Habt ein wenig Nachsicht, wenn es nicht ganz so schön geworden ist.
Das war mein erstes Tut.