denn fehler maverrick\weaponshops\config.cpp habe ich shon gelöst hatte ich ; anstat ,
und der zweite ist leider von infista habe das ganze aber auch schon ohne infistar getestet und da hat es leider auch nicht geklappt
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.
denn fehler maverrick\weaponshops\config.cpp habe ich shon gelöst hatte ich ; anstat ,
und der zweite ist leider von infista habe das ganze aber auch schon ohne infistar getestet und da hat es leider auch nicht geklappt
Hi NN ich habe schon seid geraumer zeit ein fehler bei mir auf dem server und zwahr wenn jemand stirbt und wiederbelebt wird liegen alles sachen auf dem boden (Klamotten, rucksack, waffen etc )
Mittlerweile bin ich echt am werzweilflehn.
ich habe gesehen das hier schon mal ein post über das thema wahr aber es wurde da leider keine lösung gefunden (oder gefunden und nicht gepostet)
Wäre echt nett wenn mir jemand helfen könnte und freu mich auch über jede hilfe
Selber denken tuhe ich das es irgenwie an der Loadgear liegt
Den fehler nicht beachten ist schon gelöst
File mpmissions\__cur_mp.Altis\maverick\weaponshops\config.cpp, line 104: Config: ';' used as a separator in the array
Logs im anhang
Mfg Luci
also Müsste Ich beides einfügen ?
Hi Lucian erstmal hammer nett von dir das du das alles veröfentlichst. Aber ich habe mal ne frage zu dem life_hc und life_shared wenn ich jetzt zumbeispiel dein gang_systemauf meinem server haben möchte Muss ich die den auch erstellen oder wol liegt der sinn in den Ordnern.
Es tut mir leid ich kann dir leider nicht weiter helfen
Kucke mal jetzt
#include "..\..\script_macros.hpp"
/*
File: fn_playerSkins.sqf
Author: Daniel Stuart
Description:
Sets skins for players by their side and uniform.
*/
private ["_skinName"];
switch (playerSide) do {
case civilian: {
if (LIFE_SETTINGS(getNumber,"civ_skins") isEqualTo 1) then {
if (uniform player isEqualTo "U_C_Poloshirt_blue") then {
player setObjectTextureGlobal [0, "textures\civilian_uniform_1.jpg"];
};
if (uniform player isEqualTo "U_C_Poloshirt_burgundy") then {
player setObjectTextureGlobal [0, "textures\civilian_uniform_2.jpg"];
};
if (uniform player isEqualTo "U_C_Poloshirt_stripped") then {
player setObjectTextureGlobal [0, "textures\civilian_uniform_3.jpg"];
};
if (uniform player isEqualTo "U_C_Poloshirt_tricolour") then {
player setObjectTextureGlobal [0, "textures\civilian_uniform_4.jpg"];
};
if (uniform player isEqualTo "U_C_Poloshirt_salmon") then {
player setObjectTextureGlobal [0, "textures\civilian_uniform_5.jpg"];
};
if (uniform player isEqualTo "U_C_Poloshirt_redwhite") then {
player setObjectTextureGlobal [0, "textures\civilian_uniform_6.jpg"];
};
if (uniform player isEqualTo "U_C_Commoner1_1") then {
player setObjectTextureGlobal [0, "textures\civilian_uniform_7.jpg"];
};
};
};
case west: {
if(uniform player == "U_Rangemaster") then {
player setObjectTextureGlobal [0, "textures\cop_uniform.jpg"];
};
if ((backpack player) == "B_Bergen_dgtl_f") then {
(unitbackpack player) setObjectTextureGlobal [0,""];
};
if ((FETCH_CONST(life_coplevel) >= 3) && ((uniform player) == "U_B_CombatUniform_mcam_worn")) then {
player setObjectTextureGlobal [0, "textures\cop_uniform2.jpg"];
};
if ((FETCH_CONST(life_coplevel) >= 5) && ((uniform player) == "U_B_CTRG_1")) then {
player setObjectTextureGlobal [0, "textures\SEK.jpg"];
};
};
};
case independent: {
if (uniform player == "U_Rangemaster") then {
player setObjectTextureGlobal [0, "textures\medic_uniform.jpg"];
};
if ((FETCH_CONST(life_mediclevel) >= 3) && ((uniform player) == "U_B_CombatUniform_mcam_worn")) then {
player setObjectTextureGlobal [0, "textures\FW_Uniform.jpg"];
};
};
};
};
Alles anzeigen
Ok habe es jetzt noch mal um probiert und so gemacht
//XP
_tmp = _queryResult select 14;
_queryResult set[16,[_tmp] call DB_fnc_numberSafe];
//LEVEL
_tmp = _queryResult select 15;
_queryResult set[17,[_tmp] call DB_fnc_numberSafe];
Und
Leider aber noch ein fehler in den logs und zwar
12:24:06 Error in expression <use"];
life_vehicles pushBack _house;
} forEach life_houses;
life_gangData = _t>
12:24:06 Error position: <forEach life_houses;
life_gangData = _t>
12:24:06 Error foreach: Typ Zahl, erwartet Array
12:24:06 File core\session\fn_requestReceived.sqf [SOCK_fnc_requestReceived], line 149
Jemand ne lösung
Komplette 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 - 12 entries returned
case west: {format ["SELECT playerid, name, cash, bankacc, adminlevel, donorlevel, cop_licenses, coplevel, cop_gear, blacklist, cop_stats, playtime, idcard_data_cop FROM players WHERE playerid='%1'",_uid];};
// Civilian - 13 entries returned
case civilian: {format ["SELECT playerid, name, cash, bankacc, adminlevel, donorlevel, civ_licenses, arrested, civ_gear, civ_stats, civ_alive, civ_position, playtime, EXP, LEVEL,idcard_data_civ FROM players WHERE playerid='%1'",_uid];};
// Independent - 11 entries returned
case independent: {format ["SELECT playerid, name, cash, bankacc, adminlevel, donorlevel, med_licenses, mediclevel, med_gear, med_stats, playtime, idcard_data_med FROM players WHERE playerid='%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: {
//XP
_tmp = _queryResult select 14;
_queryResult set[16,[_tmp] call DB_fnc_numberSafe];
//LEVEL
_tmp = _queryResult select 15;
_queryResult set[17,[_tmp] call DB_fnc_numberSafe];
//idcard_data
_new = [(_queryResult select 15)] 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],[]]);
};
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 set[16,_keyArr];
_queryResult remoteExec ["SOCK_fnc_requestReceived",_ownerID];
Alles anzeigen
Und
#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["_array"];
life_session_tries = life_session_tries + 1;
if (life_session_completed) exitWith {}; //Why did this get executed when the client already initialized? F*cking arma...
if (life_session_tries > 3) exitWith {cutText[localize "STR_Session_Error","BLACK FADED"]; 0 cutFadeOut 999999999;};
0 cutText [localize "STR_Session_Received","BLACK FADED"];
0 cutFadeOut 9999999;
//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;};
//Lets make sure some vars are not set before hand.. If they are get rid of them, hopefully the engine purges past variables but meh who cares.
if (!isServer && (!isNil "life_adminlevel" || !isNil "life_coplevel" || !isNil "life_donorlevel")) exitWith {
sleep 0.9;
failMission "END";
};
//Parse basic player information.
CASH = parseNumber (_this select 2);
BANK = parseNumber (_this select 3);
CONST(life_adminlevel,parseNumber (_this select 4));
if (LIFE_SETTINGS(getNumber,"donor_level") isEqualTo 1) then {
CONST(life_donorlevel,parseNumber (_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);
};
life_gear = _this select 8;
[true] call life_fnc_loadGear;
//Parse side specific information.
switch (playerSide) do {
case west: {
CONST(life_coplevel, parseNumber(_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: {
diag_log format["THIS: %1",_this];
life_is_arrested = _this select 7;
CONST(life_coplevel, 0);
CONST(life_medicLevel, 0);
life_houses = _this select 14;
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);
};
life_EXP = (_this select 16);
life_LEVEL = (_this select 17);
//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 != 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 15;
if (!(count life_gangData isEqualTo 0)) then {
[] spawn life_fnc_initGang;
};
[] spawn life_fnc_initHouses;
};
case independent: {
CONST(life_medicLevel, parseNumber(_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;
};
};
};
if (count (_this select 16) > 0) then {
{life_vehicles pushBack _x;} forEach (_this select 16);
};
life_session_completed = true;
Alles anzeigen
Das wäre ne möglichkeit
Aber Ich meine du kannst nur 2 skins auf eine kleidung packen wenn sie unterschiedliche ränge haben aber den must du dich auch enscheiden ob du skin 1 oder skin 2 haben möchtest er kann den nur die kleidung für sein rang nehmen und nicht für denn rang da drunter
if (uniform player isEqualTo "classname") then {
_skinName = "textures\P1.jpg";
if (LIFE_SETTINGS(getNumber,"cop_extendedSkins") isEqualTo 1) then {
if (FETCH_CONST(life_coplevel) >= 1) then {
_skinName = ["textures\P1",(FETCH_CONST(life_coplevel)),".jpg"] joinString "";
};
};
player setObjectTextureGlobal [0, _skinName];
};
if (uniform player isEqualTo "classname") then {
_skinName = "textures\P1.jpg";
if (LIFE_SETTINGS(getNumber,"cop_extendedSkins") isEqualTo 1) then {
if (FETCH_CONST(life_coplevel) >= 2) then {
_skinName = ["textures\P1",(FETCH_CONST(life_coplevel)),".jpg"] joinString "";
};
};
player setObjectTextureGlobal [0, _skinName];
};
Alles anzeigen
Ich glaube er meint die fn_playerSkins.sqf
Muss ich auch was in der queryRequeständern ?
//XP
_tmp = _queryResult select 13;
_queryResult set[15,[_tmp] call DB_fnc_numberSafe];
//LEVEL
_tmp = _queryResult select 14;
_queryResult set[16,[_tmp] call DB_fnc_numberSafe];
und den
also einfach bei der queryRequest xp auf _queryResult set[15,[_tmp] call DB_fnc_numberSafe];zu _queryResult set[17,[_tmp] call DB_fnc_numberSafe];
und den einfach bei life_EXP = (_this select 15); zu life_EXP = (_this select 17); oder muss ich noch was beachten ?
Hi habe jetzt noch am abend ein bischen rum probiert habe den eigentlichen fehler raus aber da ist jetzt noch ein anderer drinne
10:17:15 Error in expression <use"]; life_vehicles pushBack _house; } forEach life_houses;
life_gangData = _t>
10:17:15 Error position: <forEach life_houses; life_gangData = _t>
10:17:15 Error foreach: Typ Zahl, erwartet Array
10:17:15 File core\session\fn_requestReceived.sqf [SOCK_fnc_requestReceived], line 149
Ich glaube es liegt daran das life_gangData = _this select 15; weil meine exp auch select 15 haben oder kennt jemand ne andere lösung ?
Immer noch der fehler
20:06:54 Error in expression <eNumber (_this select 15);
life_LEVEL = parseNumber (_this select 16);
if((_thi>
20:06:54 Error position: <parseNumber (_this select 16);
if((_thi>
20:06:54 Error parsenumber: Typ Array, erwartet Bool,Zeichenfolge
20:06:54 File core\session\fn_requestReceived.sqf [SOCK_fnc_requestReceived], line 120
kann ich den rein tehoretisch einfach 99 und 98 benutzen oder wo muss ich die zahl anpassen ?
db eintrag ist drinne das mit dem bank_obj wahr aber schin immer so und zahlen dreher wie meinst du das ? das bei dem select ne falsche zahl steht ?
Nicht mer genau den gleichen fehler aber immer noch vorhanden aber schon mal danke
Ich teste kurz
Hier Bitte und danke für die hilfe