Füg es doch einfach manuell ein wenn es so nicht geht...
Persistent Proficiency System (Level System/Exp System)
-
- Altis Life
-
AmaZiinG -
7. Februar 2017 um 22:11
-
-
So gut,
bekomme den gleichen fehler wie dieser Typ ohne Logs.
Schaue es mir mal selber an aber überlasse es mal dem Profi -
Irgendwo muss ein Fehler in der @Life_server sein.
PS. Würde den Schwierigkeitsgrad auf 5 stellen(zumindest zum jetzigen Zeitpunkt) -
Irgendwo muss ein Fehler in der @Life_server sein.
PS. Würde den Schwierigkeitsgrad auf 5 stellen(zumindest zum jetzigen Zeitpunkt)Ich schaue mal in die 2 Live Dateien übers Wochenende.
-
ist es eigentlich egal in welcher reihenfloge cop prof usw in der life server stehen? bei query und dem andere
-
ist es eigentlich egal in welcher reihenfloge cop prof usw in der life server stehen? bei query und dem andere
Da bin ich mir nicht sicher. Hier sind die codes aus der 3.1.4.8 :
Code
Alles anzeigenServer: fn_Updaterequest.sqf replace /* File: fn_updateRequest.sqf Author: Bryan "Tonic" Boardwine Description: Ain't got time to describe it, READ THE FILE NAME! */ private["_uid","_side","_cash","_bank","_licenses","_gear","_name","_query","_thread"]; _uid = [_this,0,"",[""]] call BIS_fnc_param; _name = [_this,1,"",[""]] call BIS_fnc_param; _side = [_this,2,sideUnknown,[civilian]] call BIS_fnc_param; _cash = [_this,3,0,[0]] call BIS_fnc_param; _bank = [_this,4,5000,[0]] call BIS_fnc_param; _licenses = [_this,5,[],[[]]] call BIS_fnc_param; _gear = [_this,6,[],[[]]] call BIS_fnc_param; _prof = [_this, 7,[],[[]]] call BIS_fnc_param; //Get to those error checks. if((_uid == "") OR (_name == "")) exitWith {}; //Parse and setup some data. _name = [_name] call DB_fnc_mresString; _gear = [_gear] call DB_fnc_mresArray; _cash = [_cash] call DB_fnc_numberSafe; _bank = [_bank] call DB_fnc_numberSafe; //Does something license related but I can't remember I only know it's important? for "_i" from 0 to count(_licenses)-1 do { _bool = [(_licenses select _i) select 1] call DB_fnc_bool; _licenses set[_i,[(_licenses select _i) select 0,_bool]]; }; _licenses = [_licenses] call DB_fnc_mresArray; _prof = [_prof] call DB_fnc_mresArray; switch (_side) do { case west: {_query = format["UPDATE players SET name='%1', cash='%2', bankacc='%3', cop_gear='%4', cop_licenses='%5', cop_prof='%7' WHERE playerid='%6'",_name,_cash,_bank,_gear,_licenses,_uid,_prof];}; case civilian: {_query = format["UPDATE players SET name='%1', cash='%2', bankacc='%3', civ_licenses='%4', civ_gear='%6', arrested='%7', civ_prof='%8' WHERE playerid='%5'",_name,_cash,_bank,_licenses,_uid,_gear,[_this select 8] call DB_fnc_bool,_prof];}; case independent: {_query = format["UPDATE players SET name='%1', cash='%2', bankacc='%3', med_licenses='%4', med_gear='%6',med_prof='%7' WHERE playerid='%5'",_name,_cash,_bank,_licenses,_uid,_gear,_prof];}; }; waitUntil {sleep (random 0.3); !DB_Async_Active}; _queryResult = [_query,1] call DB_fnc_asyncCall; fn_QueryRequest.sqf: replace all /* 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","_return","_queryResult","_qResult","_handler","_thread","_tickTime","_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; /* _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 = 11; format["SELECT playerid, name, cash, bankacc, adminlevel, donatorlvl, cop_licenses, coplevel, cop_gear, cop_prof, blacklist FROM players WHERE playerid='%1'",_uid];}; case civilian: {_returnCount = 10; format["SELECT playerid, name, cash, bankacc, adminlevel, donatorlvl, civ_licenses, arrested, civ_gear, civ_prof FROM players WHERE playerid='%1'",_uid];}; case independent: {_returnCount = 10; format["SELECT playerid, name, cash, bankacc, adminlevel, donatorlvl, med_licenses, mediclevel, med_gear, med_prof FROM players WHERE playerid='%1'",_uid];}; }; waitUntil{sleep (random 0.3); !DB_Async_Active}; _tickTime = diag_tickTime; _queryResult = [_query,2] call DB_fnc_asyncCall; 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(typeName _queryResult == "STRING") exitWith { [[],"SOCK_fnc_insertPlayerInfo",_ownerID,false,true] spawn life_fnc_MP; }; if(count _queryResult == 0) exitWith { [[],"SOCK_fnc_insertPlayerInfo",_ownerID,false,true] spawn life_fnc_MP; }; //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]; //Parse licenses (Always index 6) _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]; //PROFICENCYS //Parse licenses (Always index 9) _new = [(_queryResult select 9)] call DB_fnc_mresToArray; if(typeName _new == "STRING") then {_new = call compile format["%1", _new];}; _queryResult set[9,_new]; //Convert string to number _old = _queryResult select 9; 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_numberSafe),([_data select 2,1] call DB_fnc_numberSafe) ]]; }; _queryResult set[9,_old]; //Parse data for specific side. switch (_side) do { case west: { _queryResult set[10,([_queryResult select 10,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],[]]); _gangData = _uid spawn TON_fnc_queryPlayerGang; waitUntil{scriptDone _gangData}; _queryResult pushBack (missionNamespace getVariable[format["gang_%1",_uid],[]]); }; }; _keyArr = missionNamespace getVariable [format["%1_KEYS_%2",_uid,_side],[]]; _queryResult set[13,_keyArr]; [_queryResult,"SOCK_fnc_requestReceived",_ownerID,false] spawn life_fnc_MP;
-
Also bei mir ging das einfügen ind die datenbank ohne probleme, man sollte nur auf den name Seiner Datenbank achten
Aber ich bekomme nach dem joinen einen fehler in der init.sqf und bin auf der Spawn Insel
Habe aber keine Fehlermeldungen im rpt log -
spawninsel bin ich auch gelandet xD und halt den fehler aber nicht in der init
-
Also beim einfügen sind mir auch einige fehler aufgefallen diese ich natürlich selber gleich geändert habe. daher nicht copy und past und alles ersetzen.
-
Wenns bei dir klappt kannste ja mal die Lösung posten wo was falsch war Hilfeforum un so
-
Fehler gefunden?
-
Leider nicht bin total am verzweifeln
-
Wen ihr dran verzweifelt Probier ich als neuling es lieber nicht aus Bei der 4.4R4
-
ich bin zwar hier neuling aber kenne mich mit scripts usq schon aus^^
-
This is the place to stay! wots with the spaces in the code took me 45 mins to fix the BROKEN code
-
Nicht gefunden?
-
Hatte leider keine Zeit um mich darum zu kümmern, werde heute mal schauen.
-
NVM it as google translate breaking it xD
-
Hat Irgend wer ne Version die Fuktioniert, oder ne Anleitung um die oben Beschriebenen Fehler zu Fixen?
-
Ich würde empfehlen etwas eigenes zu schreiben und dies als Vorlage zu nehmen. Da das Tutorial auf einem sehr alten Script basiert was mittlerweile sehr unperformant und unnötig geschrieben wurde.
-