Update object revealing

This replaces 'player reveal object' with a function that acutal reveals the objects to the player. This fixes that objects were not usable after building.
This commit is contained in:
A Man
2022-05-18 18:14:22 +02:00
parent f4d770c617
commit 0799e7e183
8 changed files with 21 additions and 17 deletions

View File

@@ -1355,6 +1355,8 @@ if (_canBuild) then {
_classname = _classnameBuild; _classname = _classnameBuild;
[_classname,objNull] call fn_waitForObject;
local _builtObject = _classname createVehicle [0,0,0]; local _builtObject = _classname createVehicle [0,0,0];
//_builtObject setDir _dir; // setDir is incompatible with setVectorDirAndUp and should not be used together on the same object https://community.bistudio.com/wiki/setVectorDirAndUp //_builtObject setDir _dir; // setDir is incompatible with setVectorDirAndUp and should not be used together on the same object https://community.bistudio.com/wiki/setVectorDirAndUp

View File

@@ -100,6 +100,8 @@ if (count _upgrade > 0) then {
_classname = _newclassname; _classname = _newclassname;
[_classname,objNull] call fn_waitForObject;
local _object = createVehicle [_classname, [0,0,0], [], 0, "CAN_COLLIDE"]; local _object = createVehicle [_classname, [0,0,0], [], 0, "CAN_COLLIDE"];
//_object setDir _dir; // setdir is incompatible with setVectorDirAndUp and should not be used together on the same object https://community.bistudio.com/wiki/setVectorDirAndUp //_object setDir _dir; // setdir is incompatible with setVectorDirAndUp and should not be used together on the same object https://community.bistudio.com/wiki/setVectorDirAndUp
_object setVariable["memDir", _dir, true]; _object setVariable["memDir", _dir, true];
@@ -133,8 +135,6 @@ if (count _upgrade > 0) then {
_object setVariable ["ownerPUID", _ownerID, true]; _object setVariable ["ownerPUID", _ownerID, true];
PVDZE_obj_Swap = [_objectCharacterID, _object, [_dir, _position, dayz_playerUID, _vector], _classname, _obj, player, [], dayz_authKey]; PVDZE_obj_Swap = [_objectCharacterID, _object, [_dir, _position, dayz_playerUID, _vector], _classname, _obj, player, [], dayz_authKey];
publicVariableServer "PVDZE_obj_Swap"; publicVariableServer "PVDZE_obj_Swap";
player reveal _object;
} else { } else {
_text = getText(configFile >> "CfgMagazines" >> _itemOut >> "displayName"); _text = getText(configFile >> "CfgMagazines" >> _itemOut >> "displayName");

View File

@@ -36,8 +36,9 @@ if (_item == dayz_onBack && carryClick) then {
_item = if (_droppedType == "") then {_this} else {_droppedType}; _item = if (_droppedType == "") then {_this} else {_droppedType};
}; };
[format["WeaponHolder_%1",_item],objNull] call fn_waitForObject;
_bag = createVehicle [format["WeaponHolder_%1",_item],getPosATL player,[], 1, "CAN_COLLIDE"]; _bag = createVehicle [format["WeaponHolder_%1",_item],getPosATL player,[], 1, "CAN_COLLIDE"];
_bag modelToWorld getPosATL player; _bag modelToWorld getPosATL player;
_bag setDir (getDir player); _bag setDir (getDir player);
player reveal _bag;
dayz_actionInProgress = false; dayz_actionInProgress = false;

View File

@@ -44,6 +44,8 @@ player addMagazine "bulk_empty";
["Working",0,[20,40,15,0]] call dayz_NutritionSystem; ["Working",0,[20,40,15,0]] call dayz_NutritionSystem;
[_classname,objNull] call fn_waitForObject;
_b0x1337 = createVehicle [_classname, _location, [], 0, "CAN_COLLIDE"]; _b0x1337 = createVehicle [_classname, _location, [], 0, "CAN_COLLIDE"];
_b0x1337 setDir _dir; _b0x1337 setDir _dir;
@@ -63,7 +65,6 @@ if (surfaceIsWater _location) then {
_b0x1337 setPosATL _location; _b0x1337 setPosATL _location;
}; };
player reveal _b0x1337;
DZE_GearCheckBypass = true; //Bypass gear menu checks since dialog will always open on crate DZE_GearCheckBypass = true; //Bypass gear menu checks since dialog will always open on crate
player action ["Gear", _b0x1337]; player action ["Gear", _b0x1337];

View File

@@ -144,6 +144,8 @@ if ((count _upgrade) > 0) then {
local _objectCharacterID = _obj getVariable ["CharacterID","0"]; local _objectCharacterID = _obj getVariable ["CharacterID","0"];
_classname = _newclassname; _classname = _newclassname;
[_classname,objNull] call fn_waitForObject;
local _object = createVehicle [_classname, [0,0,0], [], 0, "CAN_COLLIDE"]; local _object = createVehicle [_classname, [0,0,0], [], 0, "CAN_COLLIDE"];
//_object setDir _dir; // setdir is incompatible with setVectorDirAndUp and should not be used together on the same object https://community.bistudio.com/wiki/setVectorDirAndUp //_object setDir _dir; // setdir is incompatible with setVectorDirAndUp and should not be used together on the same object https://community.bistudio.com/wiki/setVectorDirAndUp
_object setVariable["memDir", _dir, true]; _object setVariable["memDir", _dir, true];
@@ -225,8 +227,6 @@ if ((count _upgrade) > 0) then {
}; };
publicVariableServer "PVDZE_obj_Swap"; publicVariableServer "PVDZE_obj_Swap";
player reveal _object;
} else { } else {
{player addMagazine _x;} count _temp_removed_array; {player addMagazine _x;} count _temp_removed_array;

View File

@@ -432,7 +432,7 @@ if (_proceed && _success) then {
/////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////
if (count _selectedRemoveOutput > 0) then { if (count _selectedRemoveOutput > 0) then {
["WeaponHolder",objNull] call fn_waitForObject;
local _item = "WeaponHolder" createVehicle [0,0,0]; local _item = "WeaponHolder" createVehicle [0,0,0];
_item setDir _iDir; _item setDir _iDir;
@@ -509,7 +509,7 @@ if (_proceed && _success) then {
if (_type == 5) exitWith { if (_type == 5) exitWith {
for "_i" from 1 to _countOut do { for "_i" from 1 to _countOut do {
[_itemOut,objNull] call fn_waitForObject;
local _bpObj = _itemOut createVehicle [0,0,0]; // create backpack local _bpObj = _itemOut createVehicle [0,0,0]; // create backpack
local _bpPos = [_iPos, _bpDist, _bpDir] call BIS_fnc_relPos; // position it a short distance away from the spawn point local _bpPos = [_iPos, _bpDist, _bpDir] call BIS_fnc_relPos; // position it a short distance away from the spawn point
@@ -536,7 +536,6 @@ if (_proceed && _success) then {
if (_totalCount > 0) then { // Only reveal refund if there is something there. Random ranges can produce zero results. if (_totalCount > 0) then { // Only reveal refund if there is something there. Random ranges can produce zero results.
_sleep = 1; _sleep = 1;
_item setPosATL _iPos; _item setPosATL _iPos;
player reveal _item;
DZE_GearCheckBypass = true; // Bypass gear menu checks since dialogue will always open on item DZE_GearCheckBypass = true; // Bypass gear menu checks since dialogue will always open on item
player action ["Gear", _item]; player action ["Gear", _item];

View File

@@ -16,6 +16,8 @@ _holder = objNull;
_nearByPile= nearestObjects [_pos, ["WeaponHolder","WeaponHolderBase"],PILE_SEARCH_RADIUS]; _nearByPile= nearestObjects [_pos, ["WeaponHolder","WeaponHolderBase"],PILE_SEARCH_RADIUS];
if (count _nearByPile == 0) then { if (count _nearByPile == 0) then {
["WeaponHolder",objNull] call fn_waitForObject;
//No weapon holders found in the radius, spawn a new one //No weapon holders found in the radius, spawn a new one
_holder = "WeaponHolder" createVehicle [0,0,0]; _holder = "WeaponHolder" createVehicle [0,0,0];
_holder setPosATL _pos; _holder setPosATL _pos;
@@ -31,6 +33,8 @@ if (count _nearByPile == 0) then {
//Can you see the current selected weapon holder //Can you see the current selected weapon holder
if (count _objects > 0) then { if (count _objects > 0) then {
["WeaponHolder",objNull] call fn_waitForObject;
//Unable to see the current selected weapon holder within the radius lets create a new one. //Unable to see the current selected weapon holder within the radius lets create a new one.
_holder = createVehicle ["WeaponHolder", _pos, [], 0, "CAN_COLLIDE"]; _holder = createVehicle ["WeaponHolder", _pos, [], 0, "CAN_COLLIDE"];
}; };
@@ -43,6 +47,3 @@ switch _type do {
case 2: {_holder addWeaponCargoGlobal [_item,_amount];}; case 2: {_holder addWeaponCargoGlobal [_item,_amount];};
case 3: {_holder addBackpackCargoGlobal [_item,_amount];}; case 3: {_holder addBackpackCargoGlobal [_item,_amount];};
}; };
//Revel the item
player reveal _holder;

View File

@@ -68,6 +68,8 @@ if ((_ownerID == dayz_playerUID) || {_objType in ["IC_DomeTent","IC_Tent"]}) the
_bag setDir _dir; _bag setDir _dir;
_bag setPosATL _pos; _bag setPosATL _pos;
["WeaponHolder",objNull] call fn_waitForObject;
local _holder = "WeaponHolder" createVehicle [0,0,0]; // any packed items go here local _holder = "WeaponHolder" createVehicle [0,0,0]; // any packed items go here
_holder setPosATL _pos; _holder setPosATL _pos;
@@ -80,8 +82,6 @@ if ((_ownerID == dayz_playerUID) || {_objType in ["IC_DomeTent","IC_Tent"]}) the
[_weapons, _magazines, _backpacks, _holder] call fn_addCargo; // pile everything onto the ground [_weapons, _magazines, _backpacks, _holder] call fn_addCargo; // pile everything onto the ground
player reveal _holder;
localize "str_success_tent_pack" call dayz_rollingMessages; // Your tent has been packed localize "str_success_tent_pack" call dayz_rollingMessages; // Your tent has been packed
} else { } else {
localize "str_fail_tent_pack" call dayz_rollingMessages; // You cannot pack this tent, it is not yours localize "str_fail_tent_pack" call dayz_rollingMessages; // You cannot pack this tent, it is not yours