Nun funktioniert wieder alles. Ich komme nun auf den Server. Danke für die Hilfe!
Ich wünsche allen einen schönen Abend!
MFG
J. Maxwell
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.
Nun funktioniert wieder alles. Ich komme nun auf den Server. Danke für die Hilfe!
Ich wünsche allen einen schönen Abend!
MFG
J. Maxwell
Soory mein Fehler.
#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;
[_ownerID] spawn ton_fnc_makeandsendp;
if (isNull _ownerID) exitWith {};
_ownerID = owner _ownerID;
_query = switch (_side) do {
// West - 12 entries returned
case west: {format ["SELECT pid, name, copcash, copbankacc, adminlevel, donorlevel, cop_licenses, coplevel, cop_gear, blacklist, cop_stats, playtime, idcard_data_cop 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, idcard_data_civ FROM players WHERE pid='%1'",_uid];};
// Independent - 11 entries returned
case independent: {format ["SELECT pid, name, cash, bankacc, adminlevel, donorlevel, med_licenses, mediclevel, med_gear, med_stats, playtime, idcard_data_med 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;
//idcard_data
_new = [(_queryResult select 12)] call DB_fnc_mresToArray;
if (_new isEqualType "") then {_new = call compile format["%1", _new];};
_queryResult set[12,_new];
};
case civilian: {
//idcard_data
_new = [(_queryResult select 13)] call DB_fnc_mresToArray;
if (_new isEqualType "") then {_new = call compile format["%1", _new];};
_queryResult set[13,_new];
_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;
/* 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],[]]);
_UnternehmenData = _uid spawn TON_fnc_queryPlayerUnternehmen;
waitUntil{scriptDone _UnternehmenData};
_queryResult pushBack (missionNamespace getVariable [format ["Unternehmen_%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;
//idcard_data
_new = [(_queryResult select 11)] call DB_fnc_mresToArray;
if (_new isEqualType "") then {_new = call compile format["%1", _new];};
_queryResult set[11,_new];
};
};
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
Hab hier mal beides eingefügt. DebugMode ist an.
#include "..\..\script_macros.hpp"
/*
File: fn_requestReceived.sqf
Author: Bryan "Tonic" Boardwine
Description:
Called by the server saying that we have a response so let's
sort through the information, validate it and if all valid
set the client up.
*/
private _count = count _this;
life_session_tries = life_session_tries + 1;
if (life_session_completed) exitWith {}; //Why did this get executed when the client already initialized?
if (life_session_tries > 3) exitWith {cutText[localize "STR_Session_Error","BLACK FADED"]; 0 cutFadeOut 999999999;};
LDGVAR((0.80),(localize "STR_Session_Received"));
//Error handling and junk..
if (isNil "_this") exitWith {[] call SOCK_fnc_insertPlayerInfo;};
if (_this isEqualType "") exitWith {[] call SOCK_fnc_insertPlayerInfo;};
if (count _this isEqualTo 0) exitWith {[] call SOCK_fnc_insertPlayerInfo;};
if ((_this select 0) isEqualTo "Error") exitWith {[] call SOCK_fnc_insertPlayerInfo;};
if (!(getPlayerUID player isEqualTo (_this select 0))) exitWith {[] call SOCK_fnc_dataQuery;};
//Parse basic player information.
CASH = parseNumber (_this select 2);
BANK = parseNumber (_this select 3);
CONST(life_adminlevel,(_this select 4));
if (LIFE_SETTINGS(getNumber,"donor_level") isEqualTo 1) then {
CONST(life_donorlevel,(_this select 5));
} else {
CONST(life_donorlevel,0);
};
//Loop through licenses
if (count (_this select 6) > 0) then {
{missionNamespace setVariable [(_x select 0),(_x select 1)];} forEach (_this select 6);
};
//Parse side specific information.
switch (playerSide) do {
case west: {
CONST(life_coplevel,(_this select 7));
CONST(life_medicLevel,0);
life_blacklisted = _this select 9;
if (LIFE_SETTINGS(getNumber,"save_playerStats") isEqualTo 1) then {
life_hunger = ((_this select 10) select 0);
life_thirst = ((_this select 10) select 1);
player setDamage ((_this select 10) select 2);
};
//idcard
if((_this select 12) isEqualTo []) then {
life_side_noidcard = true;
} else {
life_idcard_data = _this select 12;
};
};
case civilian: {
life_is_arrested = _this select 7;
CONST(life_coplevel, 0);
CONST(life_medicLevel, 0);
life_houses = _this select (_count - 3);
if (LIFE_SETTINGS(getNumber,"save_playerStats") isEqualTo 1) then {
life_hunger = ((_this select 9) select 0);
life_thirst = ((_this select 9) select 1);
player setDamage ((_this select 9) select 2);
};
//idcard
if((_this select 13) isEqualTo []) then {
life_side_noidcard = true;
} else {
life_idcard_data = _this select 13;
};
//Position
if (LIFE_SETTINGS(getNumber,"save_civilian_position") isEqualTo 1) then {
life_is_alive = _this select 10;
life_civ_position = _this select 11;
if (life_is_alive) then {
if !(count life_civ_position isEqualTo 3) then {diag_log format ["[requestReceived] Bad position received. Data: %1",life_civ_position];life_is_alive =false;};
if (life_civ_position distance (getMarkerPos "respawn_civilian") < 300) then {life_is_alive = false;};
};
};
{
_house = nearestObject [(call compile format ["%1",(_x select 0)]), "House"];
life_vehicles pushBack _house;
} forEach life_houses;
life_gangData = _this select (_count - 2);
if !(count life_gangData isEqualTo 0) then {
[] spawn life_fnc_initGang;
};
[] spawn life_fnc_initHouses;
//Unternehmen #Jonas 07.06.2018
life_UnternehmenData = _this select (_count - 2);
if !(count life_UnternehmenData isEqualTo 0) then {
[] spawn life_fnc_initUnternehmen;
};
//Kartell #Jonas 07.06.2018
life_kartellData = _this select (_count - 2);
if !(count life_kartellData isEqualTo 0) then {
[] spawn life_fnc_initKartell;
};
};
case independent: {
CONST(life_medicLevel,(_this select 7));
CONST(life_coplevel,0);
if (LIFE_SETTINGS(getNumber,"save_playerStats") isEqualTo 1) then {
life_hunger = ((_this select 9) select 0);
life_thirst = ((_this select 9) select 1);
player setDamage ((_this select 9) select 2);
};
//idcard
if((_this select 11) isEqualTo []) then {
life_side_noidcard = true;
} else {
life_idcard_data = _this select 11;
};
};
};
life_gear = _this select 8;
[true] call life_fnc_loadGear;
if (count (_this select (_count - 1)) > 0) then {
{life_vehicles pushBack _x;} forEach (_this select (_count - 1));
};
life_session_completed = true;
Alles anzeigen
Hier ist einmal unsere fn_requestReceived. Aus dem Log heraus erkennen lässt sich nur, dass er mich nach Line 49 rauswirft. Mir fällt dort aber kein Fehler auf. Habe die Datei auch schon mit der Vanilla Datei verglichen.
Moin,
seit zwei Tagen habe folgendes Problem: Unser Server ist derzeit in der Testphase und ich komme als einziger Spieler nicht auf den Server. Alle anderen kommen ohne Problem drauf. Ich hänge mal den Client Log an. Auf andere Server komme ich ohne Probleme rauf. Den MPMissionsCache habe ich auch schon öfters gelöscht. Auch ohne Parameter habe ich es versucht. Bisher ohne Erfolg. Die Mission schmeißt mich mit einem Fehler raus, den kein anderer hat und es liegt auch kein Fehler im Skript vor.
Einen schönen Nachmittag noch,
Jack Maxwell
Gut. Fehler gefunden. Danke für den Tipp B4v4r!4n_Str!k3r. Ich hab halt wieder den Wald vor lauter Bäumen nicht gesehen.
MFG J. Maxwell
So jetzt geht sie. Mein Client RPT wird nun aber davon vollgespammt: 14:34:24 Wrong color format
14:27:58 Error in expression <leUnits,
format["%1/%2/%3",_xx,_yy,_time;]
];
};
};
>
14:27:58 Error position: <;]
];
};
};
>
14:27:58 Error Fehlende ]
14:27:58 File mpmissions\__CUR_MP.Altis\core\scripts\statusBar.sqf, line 69
14:27:58 Error in expression <leUnits,
format["%1/%2/%3",_xx,_yy,_time;]
];
};
};
>
14:27:58 Error position: <;]
];
};
};
>
14:27:58 Error Fehlende ]
14:27:58 File mpmissions\__CUR_MP.Altis\core\scripts\statusBar.sqf, line 69
Alles anzeigen
Hab das Semikolon mal gelöscht. Ergebnis sieht man oben.
Moinsen,
ich haben ein Problem vorliegend, welches ich nicht beheben kann.
1. Statusleiste
Ich habe mich hier bei an dieser Leiste orientiert: [Tutorial] Statusbar 4.4 R3 und R1
Die Statusbar.sqf habe ich dementsprechend angepasst und so. Jedoch bekomme ich im Client Log immer folgendes angezeigt:
13:13:09 Error in expression <eUnits,
format["%1/%2/%3",_xx,_yy,_time];
];
};
};
>
13:13:09 Error position: <;
];
};
};
>
13:13:09 Error Fehlende ]
13:13:09 File mpmissions\__CUR_MP.Altis\core\scripts\statusBar.sqf, line 69
13:13:09 Error in expression <eUnits,
format["%1/%2/%3",_xx,_yy,_time];
];
};
};
>
13:13:09 Error position: <;
];
};
};
>
13:13:09 Error Fehlende ]
13:13:09 File mpmissions\__CUR_MP.Altis\core\scripts\statusBar.sqf, line 69
Alles anzeigen
Meine Statusbar.sqf sieht so aus:
/*
Versão : 0.2
Nome : statusBar.sqf
Autor : Bosco
Data de Criação : 07/02/2016
Descrição : Barra de Status para life,Wasteland,Epoch e Exile.
*/
waitUntil {!(isNull (findDisplay 46))};
disableSerialization;
_rscLayer = 9;
_rscLayer cutRsc["osefStatusBarAdmin","PLAIN"];
[] spawn
{
uiSleep 5;
_uid = getPlayerUID player;
while {true} do
{
uiSleep 1;
if(isNull ((uiNamespace getVariable "osefStatusBarAdmin")displayCtrl 55554)) then
{
diag_log "statusbar is null create";
disableSerialization;
_rscLayer = "osefStatusBarAdmin" call BIS_fnc_rscLayer;
_rscLayer cutRsc["osefStatusBarAdmin","PLAIN"];
};
_unit = _this select 0;
_damage = round ((1 - (damage player)) * 100);
_dinheiro = [life_cash] call life_fnc_numberText;
_banco = [life_atmbank] call life_fnc_numberText;
_serverFPS = format["%1", diag_fps];
_grid = mapGridPosition player;
_xx = (format[_grid]) select [0,3];
_yy = (format[_grid]) select [3,3];
_time = [serverTime,"HH:MM"] call BIS_fnc_secondsToString;
//Icons and position
((uiNamespace getVariable "osefStatusBarAdmin")displayCtrl 55554)ctrlSetStructuredText parseText
format["
<t color='%10'><img size='1.0' image='icons\statusleiste\jogadores.paa' color='%19'/> %1</t>
<t color='%10'><img size='1.0' image='icons\statusleiste\policia.paa' color='%19'/> %6</t>
<t color='%10'><img size='1.0' image='icons\statusleiste\resgate.paa' color='%19'/> %7</t>
<t color='%10'><img size='1.0' image='icons\statusleiste\desempenho.paa' color='%19'/> %2</t>
<t color='%10'><img size='1.0' image='icons\statusleiste\compass.paa' color='%19'/> %3</t>
<t color='%10'><img size='1.0' image='icons\statusleiste\bank.paa' color='%19'/> %4</t>
<t color='%10'><img size='1.0' image='icons\statusleiste\money.paa' color='%19'/> %5</t>
<t color='%10'><img size='1.0' image='icons\statusleiste\uptime.paa' color='%19'/> %8</t>",
//Position 2
playersnumber civilian,
_serverFPS,
_grid,
_banco,
_dinheiro,
west countSide playableUnits,
independent countSide playableUnits,
format["%1/%2/%3",_xx,_yy,_time];
];
};
};
Alles anzeigen
Ich hoffe ihr könnt mir helfen.
MFG J. Maxwell
#define ST_RIGHT 0x01
class statusBar {
idd = -1;
onLoad = "uiNamespace setVariable ['statusBar', _this select 0]";
onUnload = "uiNamespace setVariable ['statusBar', objNull]";
onDestroy = "uiNamespace setVariable ['statusBar', objNull]";
fadein = 0;
fadeout = 0;
duration = 10e10;
movingEnable = 0;
controlsBackground[] = {};
objects[] = {};
class controls {
class statusBarText {
idc = 55555;
x = 0.185 * safezoneW + safezoneX;
y = safezoneY + safezoneH - 0.035;
w = 1.5;
h = 0.10;
shadow = 1;
colorBackground[] = { 0, 0, 0, 0 }; // make the last number in the array 0 to get rid of the background
font = "PuristaSemibold";
size = "0.032";
type = 13;
style = 2;
text="Statusleiste lädt...! Bitte Warten!";
class Attributes {
align="center";
color = "#ffffff";//#5fe60c
};
};
};
};
Alles anzeigen
Es passiert gar nichts. Selber Fehler.
Ich habe nur einen neuen Dialog eingebaut. Eine Statusleiste. Dort konnte ich aber den Fehler ebenfalls nicht feststellen.
Moin,
hab ich bereits getan. Jedoch gab es keinen Treffer. Hab auch einzeln nach den Zahlen gesucht. Kein Treffer laut Notepad ++.
MFG
J. Maxwell
Guten Abend,
Ich hab seid dem letzten Serverupdate ein vollgespamtes Client RPT mit folgenden Zeilen:
22:06:14 Wrong color format 57
22:06:14 Wrong color format 5,209,852
22:06:14 Wrong color format 5,209,852
22:06:14 Wrong color format 5,209,852
22:06:14 Wrong color format 5,209,852
22:06:14 Wrong color format 5,209,852
22:06:14 Wrong color format 5,209,852
22:06:14 Wrong color format 57
22:06:14 Wrong color format 57
Ich habe keine Ahnung woran es liegen kann!
Ich hänge mal Server RPT + CLIENT RPT an
MFG J. Maxwell
Das heißt ich müsste in den Scripts, wo er die Playerid abfragt, den Code von Playerid auf Pid ändern?
Hallo,
Ich habe meinen Server mal getestet. Nach langer Zeit erscheind ein Fehler im extDB 3 Log
[20:41:50:417276 +02:00] [Thread 3488] extDB3: SQL: Error MariaDBQueryException: Unknown column 'playerid' in 'where clause'
[20:41:50:417522 +02:00] [Thread 3488] extDB3: SQL: Error MariaDBQueryException: Input: SELECT jail_time FROM players WHERE playerid='76561198160855944'
Das ist der Fehler. Vlt. könnt ihr mir ja helfen
Mfg J. Maxwell
Benötigt man für die Jail Time eigentlich einen Headless Client?
MFG J. Maxwell
Ich hätte mal mein Server RPT Log. Wobei da drin keine Fehler zu finden sind.
Hab nun alles nochmal überprüft funktioniert dennoch nicht.
1. Fehler: hab keine Ahnung wie ich den fixen soll.
2. Fehler: Habe ich eben gefixed.
3. Fehler: Habe ich auch gefixed.
MFG J. Maxwell