diff --git a/SQF/dayz_server/compile/server_playerSetup.sqf b/SQF/dayz_server/compile/server_playerSetup.sqf index 17ece4894..cea9a494a 100644 --- a/SQF/dayz_server/compile/server_playerSetup.sqf +++ b/SQF/dayz_server/compile/server_playerSetup.sqf @@ -217,10 +217,10 @@ _playerObj setVariable ["lastPos",getPosATL _playerObj]; _clientID = owner _playerObj; _randomKey = []; -_randomInput = toArray "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890!@#$^*"; for "_i" from 0 to 12 do { - _randomKey set [count _randomKey, (_randomInput call BIS_fnc_selectRandom)]; + _randomKey set [_i, (ceil(random 128)) + 256]; //Latin Extended-A characters not filtered in publicvariableval.txt }; +_randomKey = toString _randomKey; _findIndex = dayz_serverPUIDArray find _playerID; if (_findIndex > -1) then { dayz_serverClientKeys set [_findIndex, [_clientID,_randomKey]]; diff --git a/SQF/dayz_server/compile/server_updateObject.sqf b/SQF/dayz_server/compile/server_updateObject.sqf index 02340966f..6a8d975fe 100644 --- a/SQF/dayz_server/compile/server_updateObject.sqf +++ b/SQF/dayz_server/compile/server_updateObject.sqf @@ -188,11 +188,11 @@ _object_killed = { _exitReason = switch true do { //Can't use owner because player may already be dead, can't use distance because player may be far from vehicle wreck - case ([_clientKey,dayz_serverKey] call BIS_fnc_areEqual): {""}; + case (_clientKey == dayz_serverKey): {""}; case (_index < 0): { format["Server_UpdateObject error: PUID NOT FOUND ON SERVER. PV ARRAY: %1",_this] }; - case !([((dayz_serverClientKeys select _index) select 1),_clientKey] call BIS_fnc_areEqual): { + case ((dayz_serverClientKeys select _index) select 1 != _clientKey): { format["Server_UpdateObject error: CLIENT AUTH KEY INCORRECT OR UNRECOGNIZED. PV ARRAY: %1",_this] }; case (alive _object && {!(_class isKindOf "TentStorage_base" or _class isKindOf "IC_Tent")}): { diff --git a/SQF/dayz_server/compile/server_verifySender.sqf b/SQF/dayz_server/compile/server_verifySender.sqf index b299002c3..ef2681423 100644 --- a/SQF/dayz_server/compile/server_verifySender.sqf +++ b/SQF/dayz_server/compile/server_verifySender.sqf @@ -26,7 +26,7 @@ _exitReason = switch true do { case (_index < 0): { format["%1 error: PUID NOT FOUND ON SERVER. PV ARRAY: %2",_function,_params] }; - case (((dayz_serverClientKeys select _index) select 0 != owner _player) or !([((dayz_serverClientKeys select _index) select 1),_clientKey] call BIS_fnc_areEqual)): { + case (((dayz_serverClientKeys select _index) select 0 != owner _player) or ((dayz_serverClientKeys select _index) select 1 != _clientKey)): { format["%1 error: CLIENT AUTH KEY INCORRECT OR UNRECOGNIZED. PV ARRAY: %2",_function,_params] }; default {""}; diff --git a/SQF/dayz_server/init/server_functions.sqf b/SQF/dayz_server/init/server_functions.sqf index 39f7356e0..803179faa 100644 --- a/SQF/dayz_server/init/server_functions.sqf +++ b/SQF/dayz_server/init/server_functions.sqf @@ -13,10 +13,11 @@ call compile preprocessFileLineNumbers "\z\addons\dayz_code\loot\compile.sqf"; BIS_Effects_Burn = {}; dayz_disconnectPlayers = []; -dayz_serverKey = []; -for "_i" from 0 to 12 do { +dayz_serverKey = [59]; //makes sure client is kicked by publicvariableval.txt if they try to send it +for "_i" from 1 to 12 do { dayz_serverKey set [_i, ceil(random 128)]; }; +dayz_serverKey = toString dayz_serverKey; server_playerLogin = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerLogin.sqf"; server_playerSetup = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_playerSetup.sqf"; server_onPlayerDisconnect = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_onPlayerDisconnect.sqf";