Building upgrade and maintenance now use one function server side.

This commit is contained in:
[VB]AWOL
2013-09-18 03:39:50 -05:00
parent 9236e55850
commit cf1469aa8f
4 changed files with 59 additions and 37 deletions

View File

@@ -95,24 +95,8 @@ if (_proceed) then {
// Set location
_object setPos _location;
// Remove old object
deleteVehicle _obj;
// Delete object from database
dayzDeleteObj = [_objectID,_objectUID];
publicVariableServer "dayzDeleteObj";
// sleep a bit to make sure delete happens before create
sleep 1;
// Publish variables
_object setVariable ["CharacterID",_objectCharacterID,true];
//_object setVariable ["ObjectUID",_objectUID,true];
_object setVariable ["OEMPos",_location,true];
dayzPublishObj = [_objectCharacterID,_object,[_dir,_location],_classname];
publicVariableServer "dayzPublishObj";
dayzSwapObj = [_objectCharacterID,_object,[_dir,_location],_classname,_objectID,_objectUID,_obj];
publicVariableServer "dayzSwapObj";
cutText [format["You have repaired %1.",_text], "PLAIN DOWN", 5];

View File

@@ -145,16 +145,6 @@ if ((count _upgrade) > 0) then {
// Set location
_object setPos _location;
// Remove old object
deleteVehicle _obj;
// Delete object from database
dayzDeleteObj = [_objectID,_objectUID];
publicVariableServer "dayzDeleteObj";
// sleep a bit to make sure delete happens before create
sleep 1;
if (_lockable == 3) then {
_combination_1 = floor(random 10);
@@ -169,14 +159,8 @@ if ((count _upgrade) > 0) then {
cutText [format["You have upgraded %1.",_text], "PLAIN DOWN", 5];
};
// Publish variables
_object setVariable ["CharacterID",_objectCharacterID,true];
//_object setVariable ["ObjectUID",_objectUID,true];
_object setVariable ["OEMPos",_location,true];
dayzPublishObj = [_objectCharacterID,_object,[_dir,_location],_classname];
publicVariableServer "dayzPublishObj";
dayzSwapObj = [_objectCharacterID,_object,[_dir,_location],_classname,_objectID,_objectUID,_obj];
publicVariableServer "dayzSwapObj";
player reveal _object;

View File

@@ -43,7 +43,11 @@ if (isServer) then {
//Checking
"dayzDeleteObj" addPublicVariableEventHandler {(_this select 1) spawn server_deleteObj};
"atp" addPublicVariableEventHandler { _array = _this select 1; diag_log format["TELEPORT REVERT: %1 (%2) from %3 to %4 now at %5", _array select 0, _array select 1, _array select 2, _array select 3, _array select 4];};
// upgrade and maintain
"dayzSwapObj" addPublicVariableEventHandler {(_this select 1) spawn server_swapObject};
// "atp" addPublicVariableEventHandler { _array = _this select 1; diag_log format["TELEPORT REVERT: %1 (%2) from %3 to %4 now at %5", _array select 0, _array select 1, _array select 2, _array select 3, _array select 4];};
// disable zombies server side
"dayzSpawnZed" addPublicVariableEventHandler {(_this select 1) spawn server_handleZedSpawn};

View File

@@ -0,0 +1,50 @@
private ["_class","_uid","_charID","_object","_worldspace","_key","_allowed","_obj","_objectID","_objectUID"];
//[dayz_characterID,_tent,[_dir,_location],"TentStorage"]
_charID = _this select 0;
_object = _this select 1;
_worldspace = _this select 2;
_class = _this select 3;
_obj = _this select 4;
_obj removeAllMPEventHandlers "MPKilled";
// Remove old object
deleteVehicle _obj;
// Publish variables
_object setVariable ["CharacterID",_charID,true];
//_object setVariable ["ObjectUID",_objectUID,true];
_object setVariable ["OEMPos",_worldspace,true];
_objectID = _this select 5;
_objectUID = _this select 6;
if(_objectID == "0" && _objectUID == "0") exitWith {diag_log ("Object not valid: "+ str(_object));};
[_objectID,_objectUID] call server_deleteObj;
_allowed = [_object, "Server"] call check_publishobject;
if (!_allowed) exitWith { deleteVehicle _object; };
//diag_log ("PUBLISH: Attempt " + str(_object));
//get UID
_uid = _worldspace call dayz_objectUID2;
//Send request
_key = format["CHILD:308:%1:%2:%3:%4:%5:%6:%7:%8:%9:",dayZ_instance, _class, 0 , _charID, _worldspace, [], [], 0,_uid];
//diag_log ("HIVE: WRITE: "+ str(_key));
_key call server_hiveWrite;
_object setVariable ["lastUpdate",time];
_object setVariable ["ObjectUID", _uid,true];
// _object setVariable ["CharacterID",_charID,true];
_object addMPEventHandler ["MPKilled",{_this call object_handleServerKilled;}];
// Test disabling simulation server side on buildables only.
_object enableSimulation false;
dayz_serverObjectMonitor set [count dayz_serverObjectMonitor,_object];
//diag_log ("PUBLISH: Created " + (_class) + " with ID " + _uid);