Files
DayZ-Epoch/dayz_code/actions/object_pickup.sqf
vbawol dd20524793 1.0.0.2 pre test
+ [FIXED] Can now refuel and siphon while swimming again. Must stay at
same position for 6 seconds.
+ [FIXED] Refuel sound now only plays when an actual refuel/siphon takes
place.
+ [FIXED] Check fuel levels again just before refuel or siphon actions.
+ [FIXED] Player Zombies can now no longer pickup "Take %" objects.
+ [FIXED] Dogs now correctly consume any available raw meat.
+ [FIXED] Machete now spawns correctly, it was missing
WeaponHolder_ItemMachete config.
+ [UPDATED] Updated batttleye scripts.
+ [CHANGED] Gutting zombies and animals now double checks for
"meatHarvested" after animation and before action.
+ [CHANGED] Survivor2_DZ was not in the list of AllPlayers.
+ [CHANGED] Lowered alert radius when gutting zombies to 50m instead of
100m.
+ [CHANGED] Moved all clothes to cfgloots to reduce spawn chances as we
add more. (clothes, militaryclothes, specialclothes)
+ [CHANGED] HMMWV URAL and UAZ road debris now has its own military loot
tables that include sandbags.
+ [CHANGED] New vehicle spawns now have a new damage system using a
random percent between min and max variables. Defaults:
(DynamicVehicleDamageLow = 0; DynamicVehicleDamageHigh = 100;)
+ [CHANGED] Animal count was too low was 5 now 8. Can be overridden with
dayz_maxAnimals set inside mission init.sqf.
+ [ADDED] Taming dogs now has a 50% chance to fail and consume meat,
Chance to tame without failure increases with number of days alive
(dayz_skilllevel).
+ [ADDED] Added spawnMarkerCount variable override to use more spawn
marker locations. (default=4)
+ [ADDED] Added medic animation requirement for gutting zombies and
animals so you can now walk away to cancel gutting process.
+ [ADDED] Added old bandit skin back in as Skin_Bandit2_DZ as a drop on
Residential.
+ [ADDED] New vehicle spawns now have a chance to spawn 0-3 loot
randomly from all cfgloots.
+ [ADDED] Added new desert themed domed camping tent (ItemTentDomed)
that holds 75 mags, 12 weapons, and 7 backpacks - thanks to vRNemesis
for model and texture.
+ [ADDED] Added server side ability to enabled taming dogs and can be
enabled by setting dayz_tameDogs = true; within mission init.sqf.
(default: false)
+ [ADDED] Added parachute spawning players as a server side option
enable server side with the variable dayz_paraSpawn = true; within
mission init.sqf. (default: false)
+ [ADDED] Randomly spawning (like helicopter crashes) Mass Grave with
8-16 zombies and 2x more loot.
+ [REMOVED] Commented out remaining unused call to stream_locationCheck.
+ [INFO] Changes can be made to all zombie spawn variables via the
mission init.sqf (defaults: dayz_maxLocalZombies = 40;
dayz_maxGlobalZombies =30; dayz_maxZeds = 500;)
+ [INFO] DZEdebug = true; (default: false) will enable debug so that
road debris and new vehicle spawns are visible via map markers. Also
debug will enable "Save to arma.RPT" that allows access of a tool to
obtain lootpos information for buildings used for adding support for
additional maps.
2013-04-10 08:54:13 -05:00

99 lines
3.0 KiB
Plaintext

private["_array","_type","_classname","_holder","_config","_isOk","_muzzles","_playerID","_claimedBy","_text","_control","_dialog","_item","_val","_max","_bolts","_quivers","_quiver","_broken"];
// Exit if player zombie
if(player isKindOf "PZombie_VB") exitWith {};
if(TradeInprogress) exitWith { cutText ["Take item already in progress." , "PLAIN DOWN"]; };
TradeInprogress = true;
_array = _this select 3;
_type = _array select 0;
_classname = _array select 1;
_holder = _array select 2;
_playerID = getPlayerUID player;
_text = getText (configFile >> _type >> _classname >> "displayName");
_claimedBy = _holder getVariable["claimed","0"];
// Check if any players are nearby if not allow player to claim item.
_playerNear = {isPlayer _x} count (player nearEntities ["Man", 6]) > 1;
// Only allow if not already claimed.
if (_claimedBy == "0" or !_playerNear) then {
// Since item was not claimed proceed with claiming it.
_holder setVariable["claimed",_playerID,true];
};
if(_classname isKindOf "TrapBear") exitwith {TradeInprogress = false; deleteVehicle _holder;};
player playActionNow "PutDown";
if (_classname == "MeleeCrowbar") then {
player addMagazine 'crowbar_swing';
};
if (_classname == "MeleeHatchet") then {
player addMagazine 'hatchet_swing';
};
if (_classname == "MeleeMachete") then {
player addMagazine 'Machete_swing';
};
_broken = false;
if(_classname == "WoodenArrow") then {
if (20 > random 100) then {
_broken = true;
};
};
if (_broken) exitWith { deleteVehicle _holder; TradeInprogress = false; cutText [localize "str_broken_arrow", "PLAIN DOWN"] };
sleep 1;
_claimedBy = _holder getVariable["claimed","0"];
if (_claimedBy != _playerID) exitWith {TradeInprogress = false; cutText [format[(localize "str_player_beinglooted"),_text] , "PLAIN DOWN"]};
if(_classname isKindOf "Bag_Base_EP1") then {
diag_log("Picked up a bag: " + _classname);
};
// test to see if item still exists just before adding and removing
if(_holder == objNull) exitWith {};
_obj = nearestObjects [(getPosATL player), [(typeOf _holder)], 5];
_qty = count _obj;
if(_qty >= 1) then {
_config = (configFile >> _type >> _classname);
_isOk = [player,_config] call BIS_fnc_invAdd;
if (_isOk) then {
deleteVehicle _holder;
if (_classname in ["MeleeHatchet","MeleeCrowbar","MeleeMachete"]) then {
if (_type == "cfgWeapons") then {
_muzzles = getArray(configFile >> "cfgWeapons" >> _classname >> "muzzles");
//_wtype = ((weapons player) select 0);
if (count _muzzles > 1) then {
player selectWeapon (_muzzles select 0);
} else {
player selectWeapon _classname;
};
};
};
} else {
_holder setVariable["claimed","0",true];
cutText [localize "STR_DAYZ_CODE_2", "PLAIN DOWN"];
if (_classname == "MeleeCrowbar") then {
player removeMagazine 'crowbar_swing';
};
if (_classname == "MeleeHatchet") then {
player removeMagazine 'hatchet_swing';
};
if (_classname == "MeleeMachete") then {
player removeMagazine 'Machete_swing';
};
};
};
TradeInprogress = false;