mirror of
https://github.com/EpochModTeam/DayZ-Epoch.git
synced 2025-12-13 19:52:38 +03:00
Fix fn_waitForObject handling multiple of same object type
Forgot to handle case where there is already one or more of that object type in the area (safes, cars, etc.).
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
private ["_weaponsToBuy","_backpacksToBuy","_toolsToBuy","_sidearmToBuy","_primaryToBuy","_priceToBuy"
|
||||
,"_enoughMoney","_myMoney","_canBuy","_moneyInfo","_count","_success","_toolClasses","_itemsToLog"
|
||||
,"_tCost","_bTotal","_backpack","_pistolMagsToBuy","_regularMagsToBuy","_hasPrimary","_p","_toolAmounts"];
|
||||
,"_tCost","_bTotal","_backpack","_pistolMagsToBuy","_regularMagsToBuy","_hasPrimary","_p","_toolAmounts"
|
||||
,"_near"];
|
||||
|
||||
if (count Z_BuyingArray < 1) exitWith { systemChat localize "STR_EPOCH_TRADE_BUY_NO_ITEMS"; };
|
||||
|
||||
@@ -148,6 +149,8 @@ if (_enoughMoney) then {
|
||||
|
||||
_sign = "Sign_arrow_down_large_EP1" createVehicleLocal _location;
|
||||
_location = [_sign] call FNC_GetPos;
|
||||
_near = nearestObjects [player,[_part_out],50];
|
||||
[_part_out,_sign,_near] spawn fn_waitForObject;
|
||||
|
||||
if (_buyingType in ["trade_any_vehicle_free", "trade_any_bicycle", "trade_any_bicycle_old"]) then {
|
||||
PVDZE_veh_Publish2 = [[_dir,_location],_part_out,true,"0",_activatingPlayer];
|
||||
@@ -155,7 +158,6 @@ if (_enoughMoney) then {
|
||||
PVDZE_veh_Publish2 = [[_dir,_location],_part_out,false,_keySelected,_activatingPlayer];
|
||||
};
|
||||
publicVariableServer "PVDZE_veh_Publish2";
|
||||
[_part_out,_sign] spawn fn_waitForObject;
|
||||
_keySelected;
|
||||
};
|
||||
//systemChat localize "STR_EPOCH_PLAYER_105"; // "Stand still to complete trade". Medic animation loop no longer used.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
private ["_sign","_location","_isOk","_part_out","_part_in","_qty_out","_qty_in","_qty","_buy_o_sell","_obj","_objectID","_objectUID","_bos","_started","_finished","_animState","_isMedic","_dir","_helipad","_keyColor","_keyNumber","_keySelected","_isKeyOK","_config","_damage","_tireDmg","_tires","_okToSell","_hitpoints","_needed","_activatingPlayer","_textPartIn","_textPartOut","_traderID","_canAfford","_trade_total","_total_currency","_return_change","_done"];
|
||||
private ["_sign","_location","_isOk","_part_out","_part_in","_qty_out","_qty_in","_qty","_buy_o_sell","_obj","_objectID","_objectUID","_bos","_started","_finished","_animState","_isMedic","_dir","_helipad","_keyColor","_keyNumber","_keySelected","_isKeyOK","_config","_damage","_tireDmg","_tires","_okToSell","_hitpoints","_needed","_activatingPlayer","_textPartIn","_textPartOut","_traderID","_canAfford","_trade_total","_total_currency","_return_change","_done","_near"];
|
||||
|
||||
if (DZE_ActionInProgress) exitWith {localize "str_epoch_player_103" call dayz_rollingMessages;};
|
||||
DZE_ActionInProgress = true;
|
||||
@@ -129,10 +129,11 @@ if (_finished) then {
|
||||
//place vehicle spawn marker (local)
|
||||
_sign = "Sign_arrow_down_large_EP1" createVehicleLocal _location;
|
||||
_location = [_sign] call FNC_GetPos;
|
||||
_near = nearestObjects [player,[_part_out],50];
|
||||
[_part_out,_sign,_near] spawn fn_waitForObject;
|
||||
|
||||
PVDZE_veh_Publish2 = [[_dir,_location],_part_out,true,dayz_characterID,_activatingPlayer];
|
||||
publicVariableServer "PVDZE_veh_Publish2";
|
||||
[_part_out,_sign] spawn fn_waitForObject;
|
||||
|
||||
format[localize "STR_EPOCH_PLAYER_180",_qty_in,_textPartIn,_textPartOut] call dayz_rollingMessages;
|
||||
};
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
private ["_sign","_location","_part_out","_part_in","_qty_out","_qty_in","_qty","_buy_o_sell","_obj","_objectID","_objectUID","_bos","_started","_finished","_animState","_isMedic","_dir","_helipad","_removed","_damage","_tireDmg","_tires","_okToSell","_hitpoints","_needed","_activatingPlayer","_textPartIn","_textPartOut","_traderID","_playerNear"];
|
||||
private ["_sign","_location","_part_out","_part_in","_qty_out","_qty_in","_qty","_buy_o_sell","_obj","_objectID","_objectUID","_bos","_started","_finished","_animState","_isMedic","_dir","_helipad","_removed","_damage","_tireDmg","_tires","_okToSell","_hitpoints","_needed","_activatingPlayer","_textPartIn","_textPartOut","_traderID","_playerNear","_near"];
|
||||
|
||||
if (DZE_ActionInProgress) exitWith {localize "str_epoch_player_103" call dayz_rollingMessages;};
|
||||
DZE_ActionInProgress = true;
|
||||
@@ -106,10 +106,11 @@ if (_qty >= _qty_in) then {
|
||||
//place vehicle spawn marker (local)
|
||||
_sign = "Sign_arrow_down_large_EP1" createVehicleLocal _location;
|
||||
_location = [_sign] call FNC_GetPos;
|
||||
_near = nearestObjects [player,[_part_out],50];
|
||||
[_part_out,_sign,_near] spawn fn_waitForObject;
|
||||
|
||||
PVDZE_veh_Publish2 = [[_dir,_location],_part_out,true,dayz_characterID,_activatingPlayer];
|
||||
publicVariableServer "PVDZE_veh_Publish2";
|
||||
[_part_out,_sign] spawn fn_waitForObject;
|
||||
|
||||
format[localize "str_epoch_player_180",_qty_in,_textPartIn,_textPartOut] call dayz_rollingMessages;
|
||||
};
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
private ["_sign","_location","_result","_part_out","_part_in","_qty_out","_qty_in","_qty","_buy_o_sell","_obj","_objectID","_objectUID","_bos","_started","_finished","_animState","_isMedic","_dir","_helipad","_damage","_tireDmg","_tires","_okToSell","_hitpoints","_needed","_activatingPlayer","_textPartIn","_textPartOut","_traderID","_canAfford","_trade_total","_total_currency","_return_change","_done"];
|
||||
private ["_sign","_location","_result","_part_out","_part_in","_qty_out","_qty_in","_qty","_buy_o_sell","_obj","_objectID","_objectUID","_bos","_started","_finished","_animState","_isMedic","_dir","_helipad","_damage","_tireDmg","_tires","_okToSell","_hitpoints","_needed","_activatingPlayer","_textPartIn","_textPartOut","_traderID","_canAfford","_trade_total","_total_currency","_return_change","_done","_near"];
|
||||
|
||||
if (DZE_ActionInProgress) exitWith {localize "str_epoch_player_103" call dayz_rollingMessages;};
|
||||
DZE_ActionInProgress = true;
|
||||
@@ -134,10 +134,11 @@ if (_finished) then {
|
||||
//place vehicle spawn marker (local)
|
||||
_sign = "Sign_arrow_down_large_EP1" createVehicleLocal _location;
|
||||
_location = [_sign] call FNC_GetPos;
|
||||
_near = nearestObjects [player,[_part_out],50];
|
||||
[_part_out,_sign,_near] spawn fn_waitForObject;
|
||||
|
||||
PVDZE_veh_Publish2 = [[_dir,_location],_part_out,false,_result select 1,_activatingPlayer];
|
||||
publicVariableServer "PVDZE_veh_Publish2";
|
||||
[_part_out,_sign] spawn fn_waitForObject;
|
||||
|
||||
format[localize "STR_EPOCH_ACTIONS_11",_qty_in,_textPartIn,_textPartOut] call dayz_rollingMessages;
|
||||
};
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
private ["_sign","_location","_result","_part_out","_part_in","_qty_out","_qty_in","_qty","_buy_o_sell","_obj","_objectID","_objectUID","_bos","_started","_finished","_animState","_isMedic","_dir","_helipad","_removed","_okToSell","_needed","_activatingPlayer","_textPartIn","_textPartOut","_traderID","_playerNear"];
|
||||
private ["_sign","_location","_result","_part_out","_part_in","_qty_out","_qty_in","_qty","_buy_o_sell","_obj","_objectID","_objectUID","_bos","_started","_finished","_animState","_isMedic","_dir","_helipad","_removed","_okToSell","_needed","_activatingPlayer","_textPartIn","_textPartOut","_traderID","_playerNear","_near"];
|
||||
|
||||
if (DZE_ActionInProgress) exitWith {localize "str_epoch_player_103" call dayz_rollingMessages;};
|
||||
DZE_ActionInProgress = true;
|
||||
@@ -112,10 +112,11 @@ if (_qty >= _qty_in) then {
|
||||
//place vehicle spawn marker (local)
|
||||
_sign = "Sign_arrow_down_large_EP1" createVehicleLocal _location;
|
||||
_location = [_sign] call FNC_GetPos;
|
||||
_near = nearestObjects [player,[_part_out],50];
|
||||
[_part_out,_sign,_near] spawn fn_waitForObject;
|
||||
|
||||
PVDZE_veh_Publish2 = [[_dir,_location],_part_out,false,_result select 1,_activatingPlayer];
|
||||
publicVariableServer "PVDZE_veh_Publish2";
|
||||
[_part_out,_sign] spawn fn_waitForObject;
|
||||
|
||||
format["Bought %3 for %1 %2, key added to toolbelt.",_qty_in,_textPartIn,_textPartOut] call dayz_rollingMessages;
|
||||
} else {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
private ["_sign","_location","_result","_part_out","_part_in","_qty_out","_qty_in","_qty","_buy_o_sell","_obj","_objectID","_objectUID","_bos","_started","_finished","_animState","_isMedic","_dir","_helipad","_keyColor","_damage","_tireDmg","_tires","_okToSell","_temp_keys","_hitpoints","_needed","_activatingPlayer","_textPartIn","_textPartOut","_traderID","_canAfford","_trade_total","_total_currency","_return_change","_done"];
|
||||
private ["_sign","_location","_result","_part_out","_part_in","_qty_out","_qty_in","_qty","_buy_o_sell","_obj","_objectID","_objectUID","_bos","_started","_finished","_animState","_isMedic","_dir","_helipad","_keyColor","_damage","_tireDmg","_tires","_okToSell","_temp_keys","_hitpoints","_needed","_activatingPlayer","_textPartIn","_textPartOut","_traderID","_canAfford","_trade_total","_total_currency","_return_change","_done","_near"];
|
||||
|
||||
if (DZE_ActionInProgress) exitWith {localize "str_epoch_player_103" call dayz_rollingMessages;};
|
||||
DZE_ActionInProgress = true;
|
||||
@@ -133,10 +133,11 @@ if (_finished) then {
|
||||
//place vehicle spawn marker (local)
|
||||
_sign = "Sign_arrow_down_large_EP1" createVehicleLocal _location;
|
||||
_location = [_sign] call FNC_GetPos;
|
||||
_near = nearestObjects [player,[_part_out],50];
|
||||
[_part_out,_sign,_near] spawn fn_waitForObject;
|
||||
|
||||
PVDZE_veh_Publish2 = [[_dir,_location],_part_out,false,_result select 1,_activatingPlayer];
|
||||
publicVariableServer "PVDZE_veh_Publish2";
|
||||
[_part_out,_sign] spawn fn_waitForObject;
|
||||
|
||||
format[localize "STR_EPOCH_ACTIONS_11",_qty_in,_textPartIn,_textPartOut] call dayz_rollingMessages;
|
||||
};
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
private ["_sign","_location","_part_out","_part_in","_qty_out","_qty_in","_qty","_buy_o_sell","_obj","_objectID","_objectUID","_bos","_started","_finished","_animState","_isMedic","_dir","_helipad","_damage","_tireDmg","_tires","_okToSell","_hitpoints","_needed","_activatingPlayer","_textPartIn","_textPartOut","_traderID","_canAfford","_trade_total","_total_currency","_return_change","_done"];
|
||||
private ["_sign","_location","_part_out","_part_in","_qty_out","_qty_in","_qty","_buy_o_sell","_obj","_objectID","_objectUID","_bos","_started","_finished","_animState","_isMedic","_dir","_helipad","_damage","_tireDmg","_tires","_okToSell","_hitpoints","_needed","_activatingPlayer","_textPartIn","_textPartOut","_traderID","_canAfford","_trade_total","_total_currency","_return_change","_done","_near"];
|
||||
|
||||
if (DZE_ActionInProgress) exitWith {localize "str_epoch_player_103" call dayz_rollingMessages;};
|
||||
DZE_ActionInProgress = true;
|
||||
@@ -132,10 +132,11 @@ if (_finished) then {
|
||||
//place vehicle spawn marker (local)
|
||||
_sign = "Sign_arrow_down_large_EP1" createVehicleLocal _location;
|
||||
_location = [_sign] call FNC_GetPos;
|
||||
_near = nearestObjects [player,[_part_out],50];
|
||||
[_part_out,_sign,_near] spawn fn_waitForObject;
|
||||
|
||||
PVDZE_veh_Publish2 = [[_dir,_location],_part_out,true,0,_activatingPlayer];
|
||||
publicVariableServer "PVDZE_veh_Publish2";
|
||||
[_part_out,_sign] spawn fn_waitForObject;
|
||||
};
|
||||
|
||||
} else {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
private ["_sign","_location","_result","_part_out","_part_in","_qty_out","_qty_in","_qty","_buy_o_sell","_obj","_objectID","_objectUID","_bos","_started","_finished","_animState","_isMedic","_dir","_helipad","_removed","_damage","_tireDmg","_tires","_okToSell","_hitpoints","_needed","_activatingPlayer","_textPartIn","_textPartOut","_traderID","_playerNear"];
|
||||
private ["_sign","_location","_result","_part_out","_part_in","_qty_out","_qty_in","_qty","_buy_o_sell","_obj","_objectID","_objectUID","_bos","_started","_finished","_animState","_isMedic","_dir","_helipad","_removed","_damage","_tireDmg","_tires","_okToSell","_hitpoints","_needed","_activatingPlayer","_textPartIn","_textPartOut","_traderID","_playerNear","_near"];
|
||||
|
||||
if (DZE_ActionInProgress) exitWith {localize "str_epoch_player_103" call dayz_rollingMessages;};
|
||||
DZE_ActionInProgress = true;
|
||||
@@ -119,10 +119,11 @@ if (_qty >= _qty_in) then {
|
||||
//place vehicle spawn marker (local)
|
||||
_sign = "Sign_arrow_down_large_EP1" createVehicleLocal _location;
|
||||
_location = [_sign] call FNC_GetPos;
|
||||
_near = nearestObjects [player,[_part_out],50];
|
||||
[_part_out,_sign,_near] spawn fn_waitForObject;
|
||||
|
||||
PVDZE_veh_Publish2 = [[_dir,_location],_part_out,false,_result select 1,_activatingPlayer];
|
||||
publicVariableServer "PVDZE_veh_Publish2";
|
||||
[_part_out,_sign] spawn fn_waitForObject;
|
||||
|
||||
format["Bought %3 for %1 %2, key added to toolbelt.",_qty_in,_textPartIn,_textPartOut] call dayz_rollingMessages;
|
||||
} else {
|
||||
|
||||
@@ -5,22 +5,24 @@
|
||||
Parameters:
|
||||
_this select 0: string - object class name to reveal
|
||||
_this select 1: object - sign object or ObjNull if none
|
||||
_this select 2: array - result of (nearestObjects [player,[_class],50]) before call to spawn object
|
||||
|
||||
["objectClassName", objNull] spawn fn_waitForObject;
|
||||
["objectClassName", objNull, []] spawn fn_waitForObject;
|
||||
*/
|
||||
|
||||
private ["_object","_sign"];
|
||||
private ["_class","_sign","_near"];
|
||||
|
||||
_object = _this select 0;
|
||||
_class = _this select 0;
|
||||
_sign = _this select 1;
|
||||
_near = _this select 2;
|
||||
|
||||
waitUntil {
|
||||
uiSleep 1;
|
||||
!isNull (nearestObject [player,_object])
|
||||
(count (nearestObjects [player,[_class],50]) != count _near)
|
||||
};
|
||||
|
||||
if (!isNull _sign) then {
|
||||
deleteVehicle _sign;
|
||||
};
|
||||
|
||||
player reveal (nearestObject [player,_object]);
|
||||
{player reveal _x;} count (nearestObjects [player,[_class],50]);
|
||||
@@ -3,7 +3,7 @@
|
||||
Usage: [_obj] spawn player_unlockVault;
|
||||
Made for DayZ Epoch please ask permission to use/edit/distrubute email vbawol@veteranbastards.com.
|
||||
*/
|
||||
private ["_obj","_ownerID","_alreadyPacking","_text","_playerNear","_ComboMatch","_objType"];
|
||||
private ["_obj","_ownerID","_alreadyPacking","_text","_playerNear","_ComboMatch","_objType","_near"];
|
||||
if (DZE_ActionInProgress) exitWith {localize "str_epoch_player_10" call dayz_rollingMessages;};
|
||||
DZE_ActionInProgress = true;
|
||||
|
||||
@@ -41,14 +41,16 @@ if (!isNull _obj) then {
|
||||
disableUserInput true; // Make sure player can not modify gear while it is being saved
|
||||
(findDisplay 106) closeDisplay 0; // Close gear
|
||||
dze_waiting = nil;
|
||||
|
||||
_near = nearestObjects [player,[_lockedClass],50];
|
||||
[_lockedClass,objNull,_near] spawn fn_waitForObject;
|
||||
|
||||
PVDZE_handleSafeGear = [player,_obj,1];
|
||||
publicVariableServer "PVDZE_handleSafeGear";
|
||||
//wait for response from server to verify safe was logged and saved before proceeding
|
||||
waitUntil {!isNil "dze_waiting"};
|
||||
disableUserInput false; // Safe is done saving now
|
||||
|
||||
[_lockedClass,objNull] spawn fn_waitForObject;
|
||||
|
||||
format[localize "str_epoch_player_117",_text] call dayz_rollingMessages;
|
||||
};
|
||||
s_player_lockvault = -1;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
[_obj] spawn player_packVault;
|
||||
*/
|
||||
private ["_obj","_ownerID","_objectID","_objectUID","_alreadyPacking","_location1","_location2","_packedClass","_text","_playerNear"];
|
||||
private ["_obj","_ownerID","_objectID","_objectUID","_alreadyPacking","_location1","_location2","_packedClass","_text","_playerNear","_near"];
|
||||
|
||||
if (DZE_ActionInProgress) exitWith {localize "str_epoch_player_15" call dayz_rollingMessages;};
|
||||
DZE_ActionInProgress = true;
|
||||
@@ -55,13 +55,15 @@ if (!isNull _obj && alive _obj) then {
|
||||
disableUserInput true; // Make sure player can not modify gear while it is being added
|
||||
(findDisplay 106) closeDisplay 0; // Close gear
|
||||
dze_waiting = nil;
|
||||
|
||||
_near = nearestObjects [player,[_packedClass],50];
|
||||
[_packedClass,objNull,_near] spawn fn_waitForObject;
|
||||
|
||||
PVDZE_handleSafeGear = [player,_obj,2];
|
||||
publicVariableServer "PVDZE_handleSafeGear";
|
||||
//wait for response from server to verify pack was logged and gear added before proceeding
|
||||
waitUntil {!isNil "dze_waiting"};
|
||||
disableUserInput false; // Gear is done being added now
|
||||
|
||||
[_packedClass,objNull] spawn fn_waitForObject;
|
||||
|
||||
format[localize "str_epoch_player_123",_text] call dayz_rollingMessages;
|
||||
};
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
Usage: [_obj] spawn player_unlockVault;
|
||||
Made for DayZ Epoch please ask permission to use/edit/distrubute email vbawol@veteranbastards.com.
|
||||
*/
|
||||
private ["_obj","_ownerID","_alreadyPacking","_playerNear","_playerID","_claimedBy","_text","_objType","_ComboMatch"];
|
||||
private ["_obj","_ownerID","_alreadyPacking","_playerNear","_playerID","_claimedBy","_text","_objType","_ComboMatch","_near"];
|
||||
|
||||
if (DZE_ActionInProgress) exitWith {localize "str_epoch_player_21" call dayz_rollingMessages;};
|
||||
DZE_ActionInProgress = true;
|
||||
@@ -58,12 +58,15 @@ if (_ComboMatch || (_ownerID == dayz_playerUID)) then {
|
||||
disableUserInput true; // Make sure player can not modify gear while it is filling
|
||||
(findDisplay 106) closeDisplay 0; // Close gear
|
||||
dze_waiting = nil;
|
||||
|
||||
_near = nearestObjects [player,[_unlockedClass],50];
|
||||
[_unlockedClass,objNull,_near] spawn fn_waitForObject;
|
||||
|
||||
PVDZE_handleSafeGear = [player,_obj,0];
|
||||
publicVariableServer "PVDZE_handleSafeGear";
|
||||
//wait for response from server to verify safe was logged before proceeding
|
||||
waitUntil {!isNil "dze_waiting"};
|
||||
disableUserInput false; // Safe is done filling now
|
||||
[_unlockedClass,objNull] spawn fn_waitForObject;
|
||||
|
||||
player playActionNow "Medic";
|
||||
uiSleep 1;
|
||||
|
||||
Reference in New Issue
Block a user