fixes to swap object code

This commit is contained in:
[VB]AWOL
2013-12-09 08:59:44 -06:00
parent 992ab5fda9
commit 0fcf880a1d
5 changed files with 37 additions and 15 deletions

View File

@@ -100,7 +100,7 @@ switch _option do {
// Set location // Set location
_object setPosATL _location; _object setPosATL _location;
PVDZE_obj_Swap = [_objectCharacterID,_object,[_dir,_location],_classname,_obj,_objectID,_objectUID]; PVDZE_obj_Swap = [_objectCharacterID,_object,[_dir,_location],_classname,_obj,player];
publicVariableServer "PVDZE_obj_Swap"; publicVariableServer "PVDZE_obj_Swap";
player reveal _object; player reveal _object;

View File

@@ -141,7 +141,7 @@ if ((count _upgrade) > 0) then {
cutText [format[(localize "str_epoch_player_142"),_text], "PLAIN DOWN", 5]; cutText [format[(localize "str_epoch_player_142"),_text], "PLAIN DOWN", 5];
PVDZE_obj_Swap = [_objectCharacterID,_object,[_dir,_location],_classname,_obj,_objectID,_objectUID,player]; PVDZE_obj_Swap = [_objectCharacterID,_object,[_dir,_location],_classname,_obj,player];
publicVariableServer "PVDZE_obj_Swap"; publicVariableServer "PVDZE_obj_Swap";
player reveal _object; player reveal _object;

View File

@@ -98,7 +98,7 @@ if (_proceed) then {
// Set location // Set location
_object setPosATL _location; _object setPosATL _location;
PVDZE_obj_Swap = [_objectCharacterID,_object,[_dir,_location],_classname,_obj,_objectID,_objectUID,(getPlayerUID player)]; PVDZE_obj_Swap = [_objectCharacterID,_object,[_dir,_location],_classname,_obj,player];
publicVariableServer "PVDZE_obj_Swap"; publicVariableServer "PVDZE_obj_Swap";
cutText [format[(localize "str_epoch_player_144"),_text], "PLAIN DOWN", 5]; cutText [format[(localize "str_epoch_player_144"),_text], "PLAIN DOWN", 5];

View File

@@ -164,7 +164,7 @@ if ((count _upgrade) > 0) then {
cutText [format[(localize "str_epoch_player_159"),_text], "PLAIN DOWN", 5]; cutText [format[(localize "str_epoch_player_159"),_text], "PLAIN DOWN", 5];
}; };
PVDZE_obj_Swap = [_objectCharacterID,_object,[_dir,_location],_classname,_obj,_objectID,_objectUID,(getPlayerUID player)]; PVDZE_obj_Swap = [_objectCharacterID,_object,[_dir,_location],_classname,_obj,player];
publicVariableServer "PVDZE_obj_Swap"; publicVariableServer "PVDZE_obj_Swap";
player reveal _object; player reveal _object;

View File

@@ -1,26 +1,48 @@
private ["_activatingplayerUID","_class","_uid","_charID","_object","_worldspace","_key","_allowed","_obj","_objectID","_objectUID"]; private ["_activatingplayerUID","_class","_uid","_charID","_object","_worldspace","_key","_allowed","_obj","_objectID","_objectUID","_proceed","_activatingplayer"];
//[dayz_characterID,_tent,[_dir,_location],"TentStorage"] //[dayz_characterID,_tent,[_dir,_location],"TentStorage"]
_charID = _this select 0; _charID = _this select 0;
_object = _this select 1; _object = _this select 1;
_worldspace = _this select 2; _worldspace = _this select 2;
_class = _this select 3; _class = _this select 3;
_obj = _this select 4; _obj = _this select 4;
_activatingplayerUID = _this select 5; _activatingplayer = _this select 5;
_activatingplayerUID = (getPlayerUID _activatingplayer);
_obj removeAllMPEventHandlers "MPKilled"; _proceed = false;
// Remove old object _objectID = "0";
deleteVehicle _obj; _objectUID = "0";
_objectID = _this select 5; if(!isNull(_obj)) then {
_objectUID = _this select 6; // Find objectID
_objectID = _obj getVariable ["ObjectID","0"];
// Find objectUID
_objectUID = _obj getVariable ["ObjectUID","0"];
if(_objectID == "0" && _objectUID == "0") exitWith {diag_log ("Object not valid: "+ str(_object));}; _obj removeAllMPEventHandlers "MPKilled";
// Remove old object
deleteVehicle _obj;
[_objectID,_objectUID,_activatingplayerUID] call server_deleteObj; _proceed = true;
};
if(isNull(_object)) then {
_proceed = false;
};
if(_objectID == "0" && _objectUID == "0") then {
_proceed = false;
} else {
[_objectID,_objectUID,_activatingplayer] call server_deleteObj;
};
_allowed = [_object, "Server"] call check_publishobject; _allowed = [_object, "Server"] call check_publishobject;
if (!_allowed) exitWith { deleteVehicle _object; }; if (!_allowed or !_proceed) exitWith {
if(!isNull(_object)) then {
deleteVehicle _object;
};
diag_log ("Invalid object swap by playerUID:"+ str(_activatingplayerUID));
};
// Publish variables // Publish variables
_object setVariable ["CharacterID",_charID,true]; _object setVariable ["CharacterID",_charID,true];
@@ -48,4 +70,4 @@ _object enableSimulation false;
PVDZE_serverObjectMonitor set [count PVDZE_serverObjectMonitor,_object]; PVDZE_serverObjectMonitor set [count PVDZE_serverObjectMonitor,_object];
//diag_log ("PUBLISH: Created " + (_class) + " with ID " + _uid); diag_log ("PUBLISH: " + str(_activatingPlayer) + " upgraded " + (_class) + " with ID " + str(_uid));