Prevent duplicate objectUIDs

See #1504 for the details
This commit is contained in:
ebaydayz
2016-02-24 12:31:13 -05:00
parent 9bbeb1e43e
commit ff4a227a1d
5 changed files with 19 additions and 4 deletions

View File

@@ -579,6 +579,9 @@ server_getDiff2 = {
_result
};
currentObjectUIDs = [];
keyStartNumber = 100000000000;
dayz_objectUID = {
private["_position","_dir","_key","_object"];
_object = _this;
@@ -599,6 +602,12 @@ dayz_objectUID2 = {
_key = _key + str(round(_x));
} count _position;
_key = _key + str(round(_dir));
// Make sure the generated key is not a duplicate
while {true} do {
if !(_key in currentObjectUIDs) exitWith {currentObjectUIDs set [count currentObjectUIDs,_key];};
keyStartNumber = keyStartNumber + 1;
_key = str keyStartNumber;
};
_key
};
@@ -613,6 +622,12 @@ dayz_objectUID3 = {
_key = _key + str(round(_x));
} count _position;
_key = _key + str(round(_dir + time));
// Make sure the generated key is not a duplicate
while {true} do {
if !(_key in currentObjectUIDs) exitWith {currentObjectUIDs set [count currentObjectUIDs,_key];};
keyStartNumber = keyStartNumber + 1;
_key = str keyStartNumber;
};
_key
};