From 3fb87c4da533052328176fda6df26c445ae81273 Mon Sep 17 00:00:00 2001 From: AirwavesMan Date: Sun, 27 Dec 2020 13:19:46 +0100 Subject: [PATCH] Re-arrange server_changeCode --- SQF/dayz_server/compile/server_changeCode.sqf | 130 +++++++++--------- .../eventHandlers/server_eventHandler.sqf | 1 + SQF/dayz_server/init/server_functions.sqf | 5 +- 3 files changed, 66 insertions(+), 70 deletions(-) diff --git a/SQF/dayz_server/compile/server_changeCode.sqf b/SQF/dayz_server/compile/server_changeCode.sqf index ce17a4b8f..37ac06af4 100644 --- a/SQF/dayz_server/compile/server_changeCode.sqf +++ b/SQF/dayz_server/compile/server_changeCode.sqf @@ -2,81 +2,77 @@ changeCode - Safe, Lockbox and Door code changing script by salival (https://github.com/oiad) */ -"SK_changeCode" addPublicVariableEventHandler {(_this select 1) call server_changeCode}; +private ["_backpacks","_charID","_characterID","_clientID","_coins","_dir","_holder","_inventory","_key","_lockedClass","_magazines","_message","_name","_object","_objectID","_objectUID","_ownerID","_ownerPUID","_player","_playerUID","_pos","_typeOf","_vector","_weapons","_worldSpace","_clientKey","_exitReason"]; -server_changeCode = { - private ["_backpacks","_charID","_characterID","_clientID","_coins","_dir","_holder","_inventory","_key","_lockedClass","_magazines","_message","_name","_object","_objectID","_objectUID","_ownerID","_ownerPUID","_player","_playerUID","_pos","_typeOf","_vector","_weapons","_worldSpace","_clientKey","_exitReason"]; +if (count _this < 4) exitWith {diag_log "server_changeCode error: Improper parameter format";}; - if (count _this < 4) exitWith {diag_log "server_changeCode error: Improper parameter format";}; +_player = _this select 0; +_object = _this select 1; +_characterID = _this select 2; +_clientKey = _this select 3; - _player = _this select 0; - _object = _this select 1; - _characterID = _this select 2; - _clientKey = _this select 3; +_typeOf = typeOf _object; +if !(_typeOf in DZE_unlockedStorage) exitWith {diag_log "server_changeCode called with invalid storage object!"}; - _typeOf = typeOf _object; - if !(_typeOf in DZE_unlockedStorage) exitWith {diag_log "server_changeCode called with invalid storage object!"}; +_lockedClass = getText (configFile >> "CfgVehicles" >> _typeOf >> "lockedClass"); +_pos = _object getVariable ["OEMPos",getPosATL _object]; +_dir = getDir _object; +_vector = [vectorDir _object, vectorUp _object]; +_charID = _object getVariable ["CharacterID","0"]; +_objectID = _object getVariable ["ObjectID","0"]; +_objectUID = _object getVariable ["ObjectUID","0"]; +_ownerID = _object getVariable ["ownerPUID","0"]; +_name = ["unknown player",name _player] select (alive _player); +_clientID = owner _player; +_playerUID = getPlayerUID _player; - _lockedClass = getText (configFile >> "CfgVehicles" >> _typeOf >> "lockedClass"); - _pos = _object getVariable ["OEMPos",getPosATL _object]; - _dir = getDir _object; - _vector = [vectorDir _object, vectorUp _object]; - _charID = _object getVariable ["CharacterID","0"]; - _objectID = _object getVariable ["ObjectID","0"]; - _objectUID = _object getVariable ["ObjectUID","0"]; - _ownerID = _object getVariable ["ownerPUID","0"]; - _name = ["unknown player",name _player] select (alive _player); - _clientID = owner _player; - _playerUID = getPlayerUID _player; +if (isNull _player) then {diag_log "ERROR: server_changeCode called with Null player object";}; +if (isNull _object) exitWith {diag_log format["ERROR: server_changeCode called with Null object by %1 (%2).",_name,_playerUID];}; - if (isNull _player) then {diag_log "ERROR: server_changeCode called with Null player object";}; - if (isNull _object) exitWith {diag_log format["ERROR: server_changeCode called with Null object by %1 (%2).",_name,_playerUID];}; +_exitReason = [_this,"changeCode",_pos,_clientKey,_PlayerUID,_player] call server_verifySender; +if (_exitReason != "") exitWith {diag_log _exitReason}; - _exitReason = [_this,"changeCode",_pos,_clientKey,_PlayerUID,_player] call server_verifySender; - if (_exitReason != "") exitWith {diag_log _exitReason}; +_weapons = getWeaponCargo _object; +_magazines = getMagazineCargo _object; +_backpacks = getBackpackCargo _object; +if (Z_singleCurrency) then {_coins = _object getVariable ["cashMoney",0];}; - _weapons = getWeaponCargo _object; - _magazines = getMagazineCargo _object; - _backpacks = getBackpackCargo _object; - if (Z_singleCurrency) then {_coins = _object getVariable ["cashMoney",0];}; +[_objectID,_objectUID,_object] call server_deleteObjDirect; - [_objectID,_objectUID,_object] call server_deleteObjDirect; +_holder = _lockedClass createVehicle [0,0,0]; +_holder setDir _dir; +_holder setVariable ["memDir",_dir,true]; +_holder setVectorDirAndUp _vector; +_holder setPosATL _pos; +_holder setVariable ["CharacterID",_characterID,true]; +_holder setVariable ["OEMPos",_pos,true]; - _holder = _lockedClass createVehicle [0,0,0]; - _holder setDir _dir; - _holder setVariable ["memDir",_dir,true]; - _holder setVectorDirAndUp _vector; - _holder setPosATL _pos; - _holder setVariable ["CharacterID",_characterID,true]; - _holder setVariable ["OEMPos",_pos,true]; - - if (DZE_permanentPlot) then { - _ownerPUID = if (_charID == "0000" || _charID == "10000") then {_playerUID} else {_ownerID}; - _worldSpace = [_dir,_pos,_ownerPUID,_vector]; - _holder setVariable ["ownerPUID",_ownerPUID,true]; - } else { - _worldSpace = [_dir,_pos]; - }; - - if (Z_singleCurrency) then {_holder setVariable ["cashMoney",_coins,true];}; - - _objectUID = _worldSpace call dayz_objectUID2; - _holder setVariable ["ObjectUID",_objectUID,true]; - - deleteVehicle _object; - - _inventory = [_weapons,_magazines,_backpacks]; - _holder setVariable ["WeaponCargo",_weapons,false]; - _holder setVariable ["MagazineCargo",_magazines,false]; - _holder setVariable ["BackpackCargo",_backpacks,false]; - - [_characterID,_holder,_worldSpace,_inventory,_player,_clientKey] call server_publishObj; - - if (Z_singleCurrency) then { - _key = format["CHILD:309:%1:",_objectUID] + str _inventory + ":" + str _coins + ":"; - _key call server_hiveWrite; - }; - - _message = format ["CHANGE CODE: %1 (%2) changed the code for %3 to %4 @%5 %6",_name,_playerUID,_lockedClass,_characterID,mapGridPosition _player,_pos]; - diag_log _message; +if (DZE_permanentPlot) then { + _ownerPUID = if (_charID == "0000" || _charID == "10000") then {_playerUID} else {_ownerID}; + _worldSpace = [_dir,_pos,_ownerPUID,_vector]; + _holder setVariable ["ownerPUID",_ownerPUID,true]; +} else { + _worldSpace = [_dir,_pos]; }; + +if (Z_singleCurrency) then {_holder setVariable ["cashMoney",_coins,true];}; + +_objectUID = _worldSpace call dayz_objectUID2; +_holder setVariable ["ObjectUID",_objectUID,true]; + +deleteVehicle _object; + +_inventory = [_weapons,_magazines,_backpacks]; +_holder setVariable ["WeaponCargo",_weapons,false]; +_holder setVariable ["MagazineCargo",_magazines,false]; +_holder setVariable ["BackpackCargo",_backpacks,false]; + +[_characterID,_holder,_worldSpace,_inventory,_player,_clientKey] call server_publishObj; + +if (Z_singleCurrency) then { + _key = format["CHILD:309:%1:",_objectUID] + str _inventory + ":" + str _coins + ":"; + _key call server_hiveWrite; +}; + +_message = format ["CHANGE CODE: %1 (%2) changed the code for %3 to %4 @%5 %6",_name,_playerUID,_lockedClass,_characterID,mapGridPosition _player,_pos]; +diag_log _message; \ No newline at end of file diff --git a/SQF/dayz_server/eventHandlers/server_eventHandler.sqf b/SQF/dayz_server/eventHandlers/server_eventHandler.sqf index 1e89bb5eb..8c57ccf9a 100644 --- a/SQF/dayz_server/eventHandlers/server_eventHandler.sqf +++ b/SQF/dayz_server/eventHandlers/server_eventHandler.sqf @@ -21,6 +21,7 @@ "PVDZE_obj_Trade" addPublicVariableEventHandler {(_this select 1) spawn server_tradeObj}; //Logs trading "PVDZE_plr_DeathB" addPublicVariableEventHandler {(_this select 1) spawn server_deaths}; "PVDZE_handleSafeGear" addPublicVariableEventHandler {(_this select 1) call server_handleSafeGear}; +"SK_changeCode" addPublicVariableEventHandler {(_this select 1) call server_changeCode}; if (dayz_groupSystem) then { "PVDZ_Server_UpdateGroup" addPublicVariableEventHandler {(_this select 1) spawn server_updateGroup}; diff --git a/SQF/dayz_server/init/server_functions.sqf b/SQF/dayz_server/init/server_functions.sqf index adef92e0e..741f7d9ed 100644 --- a/SQF/dayz_server/init/server_functions.sqf +++ b/SQF/dayz_server/init/server_functions.sqf @@ -47,6 +47,7 @@ server_checkIfTowed = compile preprocessFileLineNumbers "\z\addons\dayz_server\c server_handleSafeGear = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_handleSafeGear.sqf"; server_spawnTraders = compile preprocessFile "\z\addons\dayz_server\compile\server_spawnTraders.sqf"; server_updateGroup = compile preprocessFileLineNumbers "\z\addons\dayz_code\groups\server_updateGroup.sqf"; +server_changeCode = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_changeCode.sqf"; spawn_ammosupply = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\spawn_ammosupply.sqf"; spawn_mineveins = compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\spawn_mineveins.sqf"; @@ -55,8 +56,6 @@ spawn_vehicles = compile preprocessFileLineNumbers "\z\addons\dayz_server\compil fnc_veh_setFixServer = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\veh_setFixServer.sqf"; //process the hit as a NORMAL damage (useful for persistent vehicles) -call compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\server_changeCode.sqf"; - server_medicalSync = { local _player = _this select 0; local _array = _this select 1; @@ -236,4 +235,4 @@ array_reduceSize = { // Precise base building 1.0.5 call compile preprocessFileLineNumbers "\z\addons\dayz_server\compile\kk_functions.sqf"; call compile preprocessFileLineNumbers "\z\addons\dayz_server\eventHandlers\server_eventHandler.sqf"; -#include "mission_check.sqf" \ No newline at end of file +#include "mission_check.sqf"