Guten Tag,
daher mein letztes Thema gelöscht wurde wegen den pastebin links...
Schribe ich es erneut:
Was ist mein Problem?
Wenn ich mich einlogge und nicht in der Datenbank bin klappt alles wie es soll, jedoch wenn ich bereits in der datenbank bin kriege ich einen error im server-log
dieser besage dass ein " ] " fehlen würde, was aber nicht der fall ist (oder ich bin zu blind)
Daten
- Error Log
Code
14:16:41 "::::::::::::: Player exists: true"
14:16:41 "extDB2: uisleep [4]: 401.043"
14:16:41 "QueryRequest: UID: 76561198083918406 - [7.65612e+16,""Fry Braun"",0,2500,0,1,""[[``license_civ_driver``,0],[``license_civ_air``,0],[``license_civ_heroin``,0],[``license_civ_marijuana``,0],[``license_civ_gang``,0],[``license_civ_boat``,0],[``license_civ_oil``,0],[``license_civ_dive``,0],[``license_civ_truck``,0],[``license_civ_gun``,0],[``license_civ_rebel``,0],[``license_civ_coke``,0],[``license_civ_diamond``,0],[``license_civ_copper``,0],[``license_civ_iron``,0],[``license_civ_sand``,0],[``license_civ_salt``,0],[``license_civ_bjerky``,0],[``license_civ_home``,0],[``license_civ_coal``,0],[``license_civ_Bruchstein``,0],[``license_civ_meth``,0],[``license_civ_Schnaps``,0],[``license_civ_Saft``,0],[``license_civ_Zement``,0],[``license_civ_Stahl``,0],[``license_civ_Krabben``,0],[``license_civ_Dosenfisch``,0],[``license_civ_WKompL``,0],[``license_civ_FahrzeugT``,0],[``license_civ_Kerosin``,0],[``license_civ_Ton``,0],[``license_civ_gangdmw``,0],[``license_civ_base01``,0],[``license_civ_base02``,0],[``license_civ
14:16:41 "extDB2: uisleep [4]: 401.144"
14:16:42 "extDB2: uisleep [4]: 401.245"
14:16:42 "extDB2: uisleep [4]: 401.348"
14:16:42 Error in expression <[[''license_civ_driver'',0],[''license_civ_a>
14:16:42 Error position: <license_civ_driver'',0],[''license_civ_a>
14:16:42 Error Missing ]
14:16:42 Error in expression <[[''license_civ_driver'',0],[''license_civ_a>
14:16:42 Error position: <license_civ_driver'',0],[''license_civ_a>
14:16:42 Error Missing ]
14:16:42 Error in expression <ay = call compile format["%1", _array];
_array;
};
_new = [(_queryResult selec>
14:16:42 Error position: <_array;
};
_new = [(_queryResult selec>
14:16:42 Error Undefined variable in expression: _array
14:16:42 File life_server\Functions\MySQL\fn_queryRequest.sqf, line 85
14:16:42 Error in expression <[''U_PMC_BgPolo_GrnPants'','''',''tf_anprc1>
14:16:42 Error position: <U_PMC_BgPolo_GrnPants'','''',''tf_anprc1>
14:16:42 Error Missing ]
14:16:42 Error in expression <[''U_PMC_BgPolo_GrnPants'','''',''tf_anprc1>
14:16:42 Error position: <U_PMC_BgPolo_GrnPants'','''',''tf_anprc1>
14:16:42 Error Missing ]
14:16:42 Error in expression <ay = call compile format["%1", _array];
_array;
};
_new = [(_queryResult selec>
14:16:42 Error position: <_array;
};
_new = [(_queryResult selec>
14:16:42 Error Undefined variable in expression: _array
14:16:42 File life_server\Functions\MySQL\fn_queryRequest.sqf, line 85
14:16:42 Error in expression <] call _DB_fnc_mresToArray;
if(typeName _new == "STRING") then {_new = call comp>
14:16:42 Error position: <_new == "STRING") then {_new = call comp>
14:16:42 Error Undefined variable in expression: _new
14:16:42 File life_server\Functions\MySQL\fn_queryRequest.sqf, line 90
14:16:42 "extDB2: uisleep [4]: 401.489"
Alles anzeigen
- fn_queryRequest
Code
/*
File: fn_queryRequest.sqf
Author: Bryan "Tonic" Boardwine
Description:
Handles the incoming request and sends an asynchronous query
request to the database.
Return:
ARRAY - If array has 0 elements it should be handled as an error in client-side files.
STRING - The request had invalid handles or an unknown error and is logged to the RPT.
*/
private["_uid","_side","_query","_query2","_query3","_query4","_return","_queryResult","_queryResult2","_queryResult3","_queryResult4","_qResult","_handler","_thread","_loops","_returnCount"];
_uid = [_this,0,"",[""]] call BIS_fnc_param;
_side = [_this,1,sideUnknown,[civilian]] call BIS_fnc_param;
_ownerID = [_this,2,ObjNull,[ObjNull]] call BIS_fnc_param;
if(isNull _ownerID) exitWith {};
_ownerID = owner _ownerID;
_result = ([format["ExistPlayerInfo:%1", _uid], 2] call DB_fnc_asyncCall) select 0;
diag_log format["::::::::::::: Player exists: %1",_result];
if(!_result) exitWith
{
[[],"SOCK_fnc_insertPlayerInfo",_ownerID,false,true] spawn life_fnc_MP;
};
/* _returnCount is the count of entries we are expecting back from the async call. The other part is well the SQL statement.*/
_query = switch(_side) do {
case west: {_returnCount = 9; format["QueryRequest+West:%1",_uid];}; //9+19
case civilian: {_returnCount = 9; format["QueryRequest+Civilian:%1",_uid];}; //9+19
case independent: {_returnCount = 8; format["QueryRequest+Independent:%1",_uid];}; //8+19
};
//waitUntil{sleep (random 0.3); !DB_Async_Active};
_queryResult = [_query,2,false] call DB_fnc_asyncCall;
diag_log format ["QueryRequest: UID: %1 - %2", _uid, _queryResult];
// SKILLSYS
_query2 = format["SKILLSYS:%1",_uid];
//waitUntil{sleep (random 0.3); !DB_Async_Active};
_queryResult2 = [_query2,2,false] call DB_fnc_asyncCall;
_queryresult3 = "";
_queryresult4 = "";
if(_side == civilian)then
{
// Position + Health
_query3 = format["POSITION+HEALTH:%1",_uid];
//waitUntil{sleep (random 0.3); !DB_Async_Active};
_queryResult3 = [_query3,2,false] call DB_fnc_asyncCall;
//LeftGang?
_query4 = format["ReqLeaveGang:%1",_uid];
//waitUntil{sleep (random 0.3); !DB_Async_Active};
_queryResult4 = [_query4,2,false] call DB_fnc_asyncCall;
};
//Blah conversion thing from a2net->extdb
private["_tmp"];
_tmp = _queryResult select 2;
_queryResult set[2,[_tmp] call DB_fnc_numberSafe];
_tmp = _queryResult select 3;
_queryResult set[3,[_tmp] call DB_fnc_numberSafe];
_DB_fnc_mresToArray =
{
private["_array"];
_array = [_this,0,"",[""]] call BIS_fnc_param;
if(_array == "") exitWith {[]};
_array = toArray(_array);
for "_i" from 0 to (count _array)-1 do
{
_sel = _array select _i;
if(_sel == 96) then
{
_array set[_i,39];
};
};
_array = toString(_array);
_array = call compile format["%1", _array];
_array;
};
//Parse licenses
_new = [(_queryResult select 6)] call _DB_fnc_mresToArray;
if(typeName _new == "STRING") then {_new = call compile format["%1", _new];};
_queryResult set[6,_new];
//Convert tinyint to boolean
_old = _queryResult select 6;
for "_i" from 0 to (count _old)-1 do {
_data = _old select _i;
_old set[_i,[_data select 0, ([_data select 1,1] call DB_fnc_bool)]];
};
_queryResult set[6,_old];
_new = [(_queryResult select 8)] call _DB_fnc_mresToArray;
if(typeName _new == "STRING") then {_new = call compile format["%1", _new];};
_queryResult set[8,_new];
//Parse data for specific side.
switch (_side) do
{
case west:
{
_queryResult set[9,([_queryResult select 9,1] call DB_fnc_bool)];
};
case civilian: {
_queryResult set[7,([_queryResult select 7,1] call DB_fnc_bool)];
_houseData = _uid spawn TON_fnc_fetchPlayerHouses;
waitUntil {scriptDone _houseData};
_queryResult pushBack (missionNamespace getVariable[format["houses_%1",_uid],[]]);
diag_log format[":missionNamespace: %1",_queryResult];
_gangData = _uid spawn TON_fnc_queryPlayerGang;
waitUntil{scriptDone _gangData};
_queryResult pushBack (missionNamespace getVariable[format["gang_%1",_uid],[]]);
diag_log format[":missionNamespace: %1",_queryResult];
// D41 - Spieler gestorben?
_tmp = _queryResult select 9;
_queryResult set[13,[_tmp] call DB_fnc_numberSafe];
};
};
_keyArr = missionNamespace getVariable [format["%1_KEYS_%2",_uid,_side],[]];
_queryResult set[12,_keyArr];
//Karma abfrage
_tmp = _queryResult select 5;
_queryResult set[14,[_tmp] call DB_fnc_numberSafe];
//Skillpunkte
_tmp = _queryResult2 select 0;
_queryResult set[15,[_tmp] call DB_fnc_numberSafe];
_tmp = _queryResult2 select 1;
_queryResult set[16,[_tmp] call DB_fnc_numberSafe];
_tmp = _queryResult2 select 2;
_queryResult set[17,[_tmp] call DB_fnc_numberSafe];
_tmp = _queryResult2 select 3;
_queryResult set[18,[_tmp] call DB_fnc_numberSafe];
_tmp = _queryResult2 select 4;
_queryResult set[19,[_tmp] call DB_fnc_numberSafe];
_tmp = _queryResult2 select 5;
_queryResult set[20,[_tmp] call DB_fnc_numberSafe];
_tmp = _queryResult2 select 6;
_queryResult set[21,[_tmp] call DB_fnc_numberSafe];
_tmp = _queryResult2 select 7;
_queryResult set[22,[_tmp] call DB_fnc_numberSafe];
_tmp = _queryResult2 select 8;
_queryResult set[23,[_tmp] call DB_fnc_numberSafe];
_tmp = _queryResult2 select 9;
_queryResult set[24,[_tmp] call DB_fnc_numberSafe];
_tmp = _queryResult2 select 10;
_queryResult set[25,[_tmp] call DB_fnc_numberSafe];
_tmp = _queryResult2 select 11;
_queryResult set[26,[_tmp] call DB_fnc_numberSafe];
_tmp = _queryResult2 select 12;
_queryResult set[27,[_tmp] call DB_fnc_numberSafe];
_tmp = _queryResult2 select 13;
_queryResult set[28,[_tmp] call DB_fnc_numberSafe];
_tmp = _queryResult2 select 14;
_queryResult set[29,[_tmp] call DB_fnc_numberSafe];
_tmp = _queryResult2 select 15;
_queryResult set[30,[_tmp] call DB_fnc_numberSafe];
_tmp = _queryResult2 select 16;
_queryResult set[31,[_tmp] call DB_fnc_numberSafe];
_tmp = _queryResult2 select 17;
_queryResult set[32,[_tmp] call DB_fnc_numberSafe];
_tmp = _queryResult2 select 18;
_queryResult set[33,[_tmp] call DB_fnc_numberSafe];
_tmp = _queryResult2 select 19;
_queryResult set[34,[_tmp] call DB_fnc_numberSafe];
if(_side == civilian)then
{
_tmp = _queryResult3 select 0;
if(isNil "_tmp")then{_tmp = [[0,0,0],[0,0,0,0]]};
_queryResult set[35,_tmp];
_tmp = _queryResult4 select 0;
_queryResult set[50,[_tmp] call DB_fnc_numberSafe]; //50 weil Platz lassen, f?r weitere Skills.
};
[_queryResult,"SOCK_fnc_requestReceived",_ownerID,false] call life_fnc_MP;
Alles anzeigen
- extDB2 sql_custom_v2 abfrage
Code
[QueryRequest+Civilian]
SQL1_1 = SELECT playerid, name, cash, bankacc, adminlevel, Karma, civ_licenses, arrested, civ_gear, died FROM players WHERE playerid = ?;
SQL1_INPUTS = 1
Number of Inputs = 1
OUTPUT = 1, 2-String, 3, 4, 5, 6, 7, 8, 9, 10
Gerne bin ich auch bereits Hilfe via TeamViewer zu erhalten falls mehrere Daten gesichtet werden müssten...
Freundliche Grüsse
Global Hive