Also ich hab alles im TUT gemacht und Request hab ich verändert weil der Server nicht mehr ging
Dazu hab ich in der fn_requestReceived das Level von 13 auf 14 geändert da dort schon ein Ausweis war.
Hast du alle dinge die daran hängen geändert ?
Also ich hab alles im TUT gemacht und Request hab ich verändert weil der Server nicht mehr ging
Dazu hab ich in der fn_requestReceived das Level von 13 auf 14 geändert da dort schon ein Ausweis war.
Hast du alle dinge die daran hängen geändert ?
Ist das ganze auch für die 4.4.4 möglich
ja das funzt auch mit der 4.4
ok danke musste paar sachen ändern aber ich muss mich wieso erstmal an ein paar fehler ran setzten
Habe einen fehler in der fn_queryRequest.sqf
Error :
13:31:33 Error in expression <ew select 2] call TON_fnc_setPlayTime;
_tmp = _queryResult select>
13:31:33 Error position: < _tmp = _queryResult select>
13:31:33 Error Invalid number in expression
13:31:33 File \life_server\Functions\MySQL\fn_queryRequest.sqf [DB_fnc_queryRequest], line 182
13:31:33 Error in expression <ew select 2] call TON_fnc_setPlayTime;
_tmp = _queryResult select>
13:31:33 Error position: < _tmp = _queryResult select>
13:31:33 Error Invalid number in expression
13:31:33 File \life_server\Functions\MySQL\fn_queryRequest.sqf [DB_fnc_queryRequest], line 182
Alles anzeigen
Meine Datei :
#include "\life_server\script_macros.hpp"
/*
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","_queryResult","_tickTime","_tmp"];
_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;
_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 - 13 entries returned
case civilian: {format ["SELECT pid, name, cash, bankacc, adminlevel, donorlevel, civ_licenses, arrested, civ_gear, civ_stats, civ_alive, civ_position, playtime, EXP, LEVEL 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];};
};
_tickTime = diag_tickTime;
_queryResult = [_query,2] 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 {
[] remoteExecCall ["SOCK_fnc_insertPlayerInfo",_ownerID];
};
if (count _queryResult isEqualTo 0) exitWith {
[] remoteExecCall ["SOCK_fnc_insertPlayerInfo",_ownerID];
};
//Blah conversion thing from a2net->extdb
_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 (_new isEqualType "") 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 (_new isEqualType "") 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)];
//Parse Stats
_new = [(_queryResult select 10)] call DB_fnc_mresToArray;
if (_new isEqualType "") then {_new = call compile format ["%1", _new];};
_queryResult set[10,_new];
//Playtime
_new = [(_queryResult select 11)] call DB_fnc_mresToArray;
if (_new isEqualType "") then {_new = call compile format ["%1", _new];};
_index = TON_fnc_playtime_values_request find [_uid, _new];
if (_index != -1) then {
TON_fnc_playtime_values_request set[_index,-1];
TON_fnc_playtime_values_request = TON_fnc_playtime_values_request - [-1];
TON_fnc_playtime_values_request pushBack [_uid, _new];
} else {
TON_fnc_playtime_values_request pushBack [_uid, _new];
};
[_uid,_new select 0] call TON_fnc_setPlayTime;
};
case civilian: {
_queryResult set[7,([_queryResult select 7,1] call DB_fnc_bool)];
//Parse Stats
_new = [(_queryResult select 9)] call DB_fnc_mresToArray;
if (_new isEqualType "") then {_new = call compile format ["%1", _new];};
_queryResult set[9,_new];
//Position
_queryResult set[10,([_queryResult select 10,1] call DB_fnc_bool)];
_new = [(_queryResult select 11)] call DB_fnc_mresToArray;
if (_new isEqualType "") then {_new = call compile format ["%1", _new];};
_queryResult set[11,_new];
//Playtime
_new = [(_queryResult select 12)] call DB_fnc_mresToArray;
if (_new isEqualType "") then {_new = call compile format ["%1", _new];};
_index = TON_fnc_playtime_values_request find [_uid, _new];
if (_index != -1) then {
TON_fnc_playtime_values_request set[_index,-1];
TON_fnc_playtime_values_request = TON_fnc_playtime_values_request - [-1];
TON_fnc_playtime_values_request pushBack [_uid, _new];
} else {
TON_fnc_playtime_values_request pushBack [_uid, _new];
};
[_uid,_new select 2] call TON_fnc_setPlayTime;
_tmp = _queryResult select 13;
_queryResult set[12,[_tmp] call DB_fnc_numberSafe];
_tmp = _queryResult select 14;
_queryResult set[13,[_tmp] call DB_fnc_numberSafe];
/* Make sure nothing else is added under here */
_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],[]]);
};
case independent: {
//Parse Stats
_new = [(_queryResult select 9)] call DB_fnc_mresToArray;
if (_new isEqualType "") then {_new = call compile format ["%1", _new];};
_queryResult set[9,_new];
//Playtime
_new = [(_queryResult select 10)] call DB_fnc_mresToArray;
if (_new isEqualType "") then {_new = call compile format ["%1", _new];};
_index = TON_fnc_playtime_values_request find [_uid, _new];
if !(_index isEqualTo -1) then {
TON_fnc_playtime_values_request set[_index,-1];
TON_fnc_playtime_values_request = TON_fnc_playtime_values_request - [-1];
TON_fnc_playtime_values_request pushBack [_uid, _new];
} else {
TON_fnc_playtime_values_request pushBack [_uid, _new];
};
[_uid,_new select 1] call TON_fnc_setPlayTime;
};
};
publicVariable "TON_fnc_playtime_values_request";
_keyArr = missionNamespace getVariable [format ["%1_KEYS_%2",_uid,_side],[]];
_queryResult pushBack _keyArr;
_queryResult remoteExec ["SOCK_fnc_requestReceived",_ownerID];
Alles anzeigen
Weiß jemand wie man das fixt ?
häng mal bitte die extDB logs an und die kompletten logs
Hier, bitteschön
so du hast vergessen das mit der exp und dem level einzufügen im case civilian
case civilian: {
_queryResult set[7,([_queryResult select 7,1] call DB_fnc_bool)];
//Parse Stats
_new = [(_queryResult select 9)] call DB_fnc_mresToArray;
if (_new isEqualType "") then {_new = call compile format ["%1", _new];};
_queryResult set[9,_new];
//Position
_queryResult set[10,([_queryResult select 10,1] call DB_fnc_bool)];
_new = [(_queryResult select 11)] call DB_fnc_mresToArray;
if (_new isEqualType "") then {_new = call compile format ["%1", _new];};
_queryResult set[11,_new];
//Playtime
_new = [(_queryResult select 12)] call DB_fnc_mresToArray;
if (_new isEqualType "") then {_new = call compile format ["%1", _new];};
_index = TON_fnc_playtime_values_request find [_uid, _new];
if (_index != -1) then {
TON_fnc_playtime_values_request set[_index,-1];
TON_fnc_playtime_values_request = TON_fnc_playtime_values_request - [-1];
TON_fnc_playtime_values_request pushBack [_uid, _new];
} else {
TON_fnc_playtime_values_request pushBack [_uid, _new];
};
[_uid,_new select 2] call TON_fnc_setPlayTime;
_tmp = _queryResult select 13;
_queryResult set[12,[_tmp] call DB_fnc_numberSafe];
_tmp = _queryResult select 14;
_queryResult set[13,[_tmp] call DB_fnc_numberSafe];
/* Make sure nothing else is added under here */
_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],[]]);
};
Alles anzeigen
Dank dir funktioniert jetzt einwandfrei. Natürlich auch ein großes Danke an Risk der das alles kostenfrei zu verfügung stellt.
Doch noch ein kleines Problem, unzwar wie verbinde ich jetzt diese config mit dem Script.
Habe die Config mit der Config_Master.hpp verknüpft.
und die fn_handleEXP.sqf habe ich im functions ordern und in der functions.hpp eingetragen.
Jedoch kriege ich bis jetzt kein Levelup wenn ich die entsprechende EXP erreicht habe.
Deine Aussage war so UnDEUTSCHlich das sie keiner Verstanden hat ...
Auf Seite 4 dieses Beitrag findet man ja eine Config.
Diese sorgt so wie ich es verstehe dafür das, dass level automatisch hochgesetzt wird bei einer bestimmten Anazhl von EXP.
Ich habe sie jetzt in der Config_Master.hpp eingebunden mithilfe von "#include".
Jedoch funktioniert das net ganz.
Da ich vermute das ich die falsch eingefügt habe wollte ich nachfragen wie man die Config denn richtig hinzufügt.
Config einbinden wie du es schon gemacht hast ...
In der handleExp siehst du ja das er aus der config liest darin steht nur wann es nen Level up fürderhin gibt also wie viele exp du benötigst
hallo das level steigt bei mir nicht
hey hey
ich bekomme beim erstellen der DB leider immer die selbe meldung
SQL-Befehl:
ALTER TABLE `altislife`.`players`
ADD COLUMN `EXP` INT(100) NOT NULL DEFAULT 0
ADD COLUMN `LEVEL` INT(100) NOT NULL DEFAULT 0
#1064 - Fehler in der SQL-Syntax. Bitte die korrekte Syntax im Handbuch nachschlagen bei 'ADD COLUMN `LEVEL` INT(100) NOT NULL DEFAULT 0' in Zeile 3
Alles anzeigenhey hey
ich bekomme beim erstellen der DB leider immer die selbe meldung
Fehler
SQL-Befehl:
CodeALTER TABLE `altislife`.`players` ADD COLUMN `EXP` INT(100) NOT NULL DEFAULT 0 ADD COLUMN `LEVEL` INT(100) NOT NULL DEFAULT 0
#1064 - Fehler in der SQL-Syntax. Bitte die korrekte Syntax im Handbuch nachschlagen bei 'ADD COLUMN `LEVEL` INT(100) NOT NULL DEFAULT 0' in Zeile 3
ALTER TABLE `altislife`.`players`
ADD COLUMN `EXP` INT(100) NOT NULL DEFAULT 0,
ADD COLUMN `LEVEL` INT(100) NOT NULL DEFAULT 0
mehrere Anfragen mit Komma seperiert. habs im tut gefixt
Der Meldung zur folge wird der code von meinem Anbieter geblockt oder wie ist das zu verstehen.
ALTER TABLE `altislife`.`players`
ADD COLUMN `EXP` INT(100) NOT NULL DEFAULT 0,
ADD COLUMN `LEVEL` INT(100) NOT NULL DEFAULT 0
#1142 - ALTER Befehl nicht erlaubt für Benutzer 'altislife'@'localhost' auf Tabelle 'players'
Der Meldung zur folge wird der code von meinem Anbieter geblockt oder wie ist das zu verstehen.
CodeALTER TABLE `altislife`.`players` ADD COLUMN `EXP` INT(100) NOT NULL DEFAULT 0, ADD COLUMN `LEVEL` INT(100) NOT NULL DEFAULT 0
#1142 - ALTER Befehl nicht erlaubt für Benutzer 'altislife'@'localhost' auf Tabelle 'players'
Das bedeutet dass der Benutzer altislife keine Berechtigung für diese Aktion besitzt. Bei welchem Anbieter bist du denn?