1.0.0.9 Developer Build

+ [FIXED] Player position was saved to [] in certain areas of Taviana
forcing random spawn. Override variables added dayz_minpos (default:
-20000) and dayz_maxpos (default: 20000). To better support Taviana use
dayz_minpos = -26000; dayz_maxpos = 26000;  Thanks to dayzforever.com
admin for the heads up.
+ [ADDED] Small Desert Camo Net - desert_net_kit - Recipe: 4 x tent + 4
x metal pole
+ [ADDED] Large Desert Camo Net - desert_large_net_kit - Recipe: 3 x
desert_net_kit
+ [ADDED] Small Forest Camo Net - forest_net_kit - Recipe: 4 x tent + 4
x metal pole
+ [ADDED] Large Forest Camo Net - forest_large_net_kit - Recipe: 3 x
forest_net_kit
+ [CHANGED] changed out ItemSodaRbull with ItemSodaR4z0r due to
glitching with rbull model.
+ [ADDED] New Heavy Duty SUV with camo skin (Armor: 50) +25 increase in
armor and holds 100 magazines, 10 weapons, 5 backpacks. Camo skin from
here:
http://www.404games.co.uk/forum/index.php?/topic/1243-camo-suv-skin-code-here/
+ [ADDED] Sandbag Nest (sandbag_nest_kit) Required Tools: ItemEtool,
ItemToolbox. Recipe: ItemSandbag x 4, PartWoodPlywood x 2,
PartWoodLumber x 4.
+ [CHANGED] When selling multiple magazine items traders should now
always give highest denomination back.
+ [CHANGED] workshop is now required for most crafting. Currently a Nice
Wood Shed or a Wooden Shack will work.
+ [CHANGED] Updated camo female texture thanks to
http://www.twitch.tv/miss_alejandria
+ [ADDED] New vehicle ownership is now tied to vehicle keys. When you
purchase a new vehicle you will get a key added to your toolbelt.  Do
not drop on the ground as they are easy to loose.
+ [ADDED] Server admins can now change default fresh spawn loadout
within mission init.sqf. DefaultMagazines =
["ItemBandage","ItemPainkiller"]; DefaultWeapons = ["ItemFlashlight"];
DefaultBackpack = ""; DefaultBackpackWeapon = "";
+ [ADDED] added override variable for to change the distance for selling
vehicles. dayz_sellDistance = 20; in the missions init.sqf
+ [REVERT] Re-enabled old refuel sources and added (TODO: ability to
fill 55 gallon barrels off them).
+ [ADDED] More internal code locks and addaction locks to prevent bugged
menus.
+ [CHANGED] Can no longer drop
"MeleeHatchet","MeleeCrowbar","MeleeMachete","MeleeFishingPole" from
primary slot, you must add it to your toolbelt first.
+ [ADDED]  Fishing now requires casting and waiting to catch a fish
(currently only trout).
+ [FIXED] Incorrect TradeInprogress message for Open Crate code.
+ [FIXED] Boat dealers can now use ["HeliHCivil","HeliHempty"] as
alternate spawn locations for new vehicles.
+ [FIXED] Fixed spawning of Skin_TK_INS_Warlord_EP1 needed to be
Skin_TK_INS_Warlord_EP1_DZ in loot table instead.
+ [ADDED] Gain 1 humanity for each zed you gut. only after body is
cleared and the body disappears.
+ [REMOVED] Removed m240 nest crafting for now too many problems still.
+ [ADDED] You now get a key when purchasing a vehicle,
+ [ADDED] Have your pen and paper handy for this one... When placing a
personal safe you will now get a 4 digit pin code that you will need to
use gain access to your safe.
+ [FIXED] Issues with Arma 2 free and ArmA 2 X users when purchasing
vehicles and placing vaults have now been resolved.
+ [CHANGED] Namalsk Plane vendor moved inside building, Medical vendor
moved to adjacent building.
This commit is contained in:
vbawol
2013-05-22 07:34:26 -05:00
parent f32d87b748
commit 480c2a3bc9
289 changed files with 41572 additions and 2055 deletions

View File

@@ -5,7 +5,7 @@ _obj = _this select 0;
// lower case to prevent issues with differing case for buildings from map to map.
_type = toLower(typeOf _obj);
diag_log format["Spawning loot for: %1", _type];
//diag_log format["Spawning loot for: %1", _type];
_config = configFile >> "CfgBuildingLoot" >> _type;
_positions = [] + getArray (_config >> "lootPos");
_itemTypes = [] + getArray (_config >> "itemType");
@@ -16,7 +16,7 @@ _lootChance = getNumber (_config >> "lootChance");
_nearBy = nearestObjects [_iPos, ["WeaponHolder","WeaponHolderBase"], 1];
if (count _nearBy == 0) then {
_index = dayz_CBLBase find _type;
diag_log format["Found %2 at index: %1", _index,_type];
//diag_log format["Found %2 at index: %1", _index,_type];
_weights = dayz_CBLChances select _index;
_cntWeights = count _weights;
_index = floor(random _cntWeights);

View File

@@ -3,7 +3,7 @@ private["_position","_unitTypes","_group","_unit","_target","_bodies","_targetPo
_agent = _this select 0;
//Add handlers
//_id = _agent addeventhandler ["HandleDamage",{_this call local_zombieDamage}];
//_id = _agent addeventhandler ["HandleDamage",{_this call local_zombieDamage}];
//Loop behaviour
_list = (getposATL _agent) nearEntities ["Man",200];
@@ -30,7 +30,7 @@ while {_isAlive and _isSomeone} do {
sleep 1;
};
//CHASE TARGET
//CHASE TARGET
//Leader cries out
[_agent,"attack",0,false] call dayz_zombieSpeak;
@@ -45,7 +45,7 @@ while {_isAlive and _isSomeone} do {
_agent forceSpeed 8;
sleep 1;
};
//LOOP
//LOOP
_agent setVariable ["targets",[],true];
_isAlive = alive _agent;
sleep 1;

View File

@@ -4,8 +4,10 @@ scriptName "Functions\misc\fn_damageActions.sqf";
- Function
- [] call fnc_usec_damageActions;
************************************************************/
private ["_weaponName","_action","_turret","_weapons","_assignedRole","_action1","_action2","_x","_vehicle","_unit","_vehType","_displayName","_ammoQty","_ammoSerial","_weapon","_magTypes","_type","_typeVeh","_index","_inventory","_unitTo","_isEngineer","_vehClose","_hasVehicle","_unconscious","_lowBlood","_injured","_inPain","_legsBroke","_armsBroke","_charID","_friendlies","_playerMagazines","_hasBandage","_hasEpi","_hasMorphine","_hasBlood","_hasToolbox","_hasJerry","_hasJerryE","_hasEtool","_hasWire","_hasPainkillers","_unconscious_crew","_patients","_crew","_menClose","_hasPatient","_inVehicle","_isClose","_bag","_classbag","_isDisallowRefuel","_hasBarrel","_hasBarrelE"];
if (TradeInprogress) exitWith {}; // Do not allow if any script is running.
_menClose = cursorTarget;
_hasPatient = alive _menClose;
_vehicle = vehicle player;

View File

@@ -4,38 +4,24 @@ scriptName "Functions\misc\fn_selfActions.sqf";
- Function
- [] call fnc_usec_selfActions;
************************************************************/
private ["_isPZombie","_vehicle","_inVehicle","_bag","_classbag","_isWater","_hasAntiB","_hasFuelE","_hasRawMeat","_hasKnife","_hasToolbox","_onLadder","_nearLight","_canPickLight","_canDo","_text","_isHarvested","_isVehicle","_isVehicletype","_isMan","_traderType","_ownerID","_isAnimal","_isDog","_isZombie","_isDestructable","_isTent","_isFuel","_isAlive","_canmove","_Unlock","_lock","_buy","_dogHandle","_lieDown","_warn","_hastinitem","_allowedDistance","_menu","_menu1","_humanity_logic","_low_high","_cancel","_metals_trader","_traderMenu","_isWreck","_isRemovable","_isDisallowRepair","_rawmeat","_humanity","_speed","_dog","_hasbottleitem","_isAir","_isShip"];
private ["_temp_keys","_magazinesPlayer","_isPZombie","_vehicle","_inVehicle","_hasFuelE","_hasRawMeat","_hasKnife","_hasToolbox","_onLadder","_nearLight","_canPickLight","_canDo","_text","_isHarvested","_isVehicle","_isVehicletype","_isMan","_traderType","_ownerID","_isAnimal","_isDog","_isZombie","_isDestructable","_isTent","_isFuel","_isAlive","_canmove","_Unlock","_lock","_buy","_dogHandle","_lieDown","_warn","_hastinitem","_allowedDistance","_menu","_menu1","_humanity_logic","_low_high","_cancel","_metals_trader","_traderMenu","_isWreck","_isRemovable","_isDisallowRepair","_rawmeat","_humanity","_speed","_dog","_hasbottleitem","_isAir","_isShip","_playersNear","_findNearestGens","_findNearestGen","_IsNearRunningGen","_cursorTarget","_isnewstorage","_itemsPlayer","_ownerKeyId","_typeOfCursorTarget","_hasKey","_oldOwner","_combi","_key_colors"];
if (TradeInprogress) exitWith {}; // Do not allow if any script is running.
_vehicle = vehicle player;
_isPZombie = player isKindOf "PZombie_VB";
_inVehicle = (_vehicle != player);
_bag = unitBackpack player;
_classbag = typeOf _bag;
_isWater = (surfaceIsWater (position player)) or dayz_isSwimming;
_hasAntiB = "ItemAntibiotic" in magazines player;
_hasFuelE = "ItemJerrycanEmpty" in magazines player;
//boiled Water
_hasbottleitem = "ItemWaterbottle" in magazines player;
_hastinitem = false;
{
if (_x in magazines player) then {
_hastinitem = true;
};
} forEach boil_tin_cans;
_hasKnife = "ItemKnife" in items player;
_hasToolbox = "ItemToolbox" in items player;
//_hasTent = "ItemTent" in items player;
_onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1;
_canDo = (!r_drag_sqf and !r_player_unconscious and !_onLadder);
_nearLight = nearestObject [player,"LitObject"];
_canPickLight = false;
if (!isNull _nearLight) then {
if (_nearLight distance player < 4) then {
_canPickLight = isNull (_nearLight getVariable ["owner",objNull]);
};
};
_canDo = (!r_drag_sqf and !r_player_unconscious and !_onLadder);
//Grab Flare
if (_canPickLight and !dayz_hasLight and !_isPZombie) then {
@@ -53,35 +39,28 @@ if (_canPickLight and !dayz_hasLight and !_isPZombie) then {
if(DZEdebug) then {
hint str(typeOf cursorTarget);
if (s_player_debuglootpos < 0) then {
s_player_debuglootpos = player addAction ["Save to arma2.rpt", "\z\addons\dayz_code\actions\debug\Make_lootPos.sqf", ["save"], 99, false, true, "",""];
};
};
if(_isPZombie) then {
//_state = animationState player;
//hint str(_state);
if (s_player_callzombies < 0) then {
s_player_callzombies = player addAction ["Raise Horde", "\z\addons\dayz_code\actions\call_zombies.sqf",player, 5, true, false, "",""];
};
if (s_player_pzombiesattack < 0) then {
s_player_pzombiesattack = player addAction ["Attack", "\z\addons\dayz_code\actions\pzombie\pz_attack.sqf",cursorTarget, 6, true, false, "",""];
};
if (s_player_pzombiesvision < 0) then {
s_player_pzombiesvision = player addAction ["Vision", "\z\addons\dayz_code\actions\pzombie\pz_vision.sqf", [], 4, false, true, "nightVision", "_this == _target"];
s_player_pzombiesvision = player addAction ["Night Vision", "\z\addons\dayz_code\actions\pzombie\pz_vision.sqf", [], 4, false, true, "nightVision", "_this == _target"];
};
if (!isNull cursorTarget and (player distance cursorTarget < 3)) then { //Has some kind of target
_isAnimal = cursorTarget isKindOf "Animal";
_isZombie = cursorTarget isKindOf "zZombie_base";
_isHarvested = cursorTarget getVariable["meatHarvested",false];
_isMan = cursorTarget isKindOf "Man";
// Pzombie Gut human corpse or animal
if (!alive cursorTarget and (_isAnimal or _isMan) and !_isZombie and !_isHarvested and _canDo) then {
if (!alive cursorTarget and (_isAnimal or _isMan) and !_isZombie and !_isHarvested) then {
if (s_player_pzombiesfeed < 0) then {
s_player_pzombiesfeed = player addAction ["Feed", "\z\addons\dayz_code\actions\pzombie\pz_feed.sqf",cursorTarget, 3, true, false, "",""];
};
@@ -103,78 +82,110 @@ if(_isAir or _isShip) then {
_allowedDistance = 6;
};
if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cursorTarget < _allowedDistance)) then { //Has some kind of target
_isHarvested = cursorTarget getVariable["meatHarvested",false];
_isVehicle = cursorTarget isKindOf "AllVehicles";
_isVehicletype = typeOf cursorTarget in ["ATV_US_EP1","ATV_CZ_EP1"];
_isnewstorage = typeOf cursorTarget in ["OutHouse_DZ","Wooden_shed_DZ","WoodShack_DZ","StorageShed_DZ"];
if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cursorTarget < _allowedDistance) and _canDo) then { //Has some kind of target
_isMan = cursorTarget isKindOf "Man";
_traderType = typeOf cursorTarget;
_ownerID = cursorTarget getVariable ["characterID","0"];
_isAnimal = cursorTarget isKindOf "Animal";
_isDog = (cursorTarget isKindOf "DZ_Pastor" || cursorTarget isKindOf "DZ_Fin");
_isZombie = cursorTarget isKindOf "zZombie_base";
_isDestructable = cursorTarget isKindOf "BuiltItems";
_isWreck = typeOf cursorTarget in ["SKODAWreck","HMMWVWreck","UralWreck","datsun01Wreck","hiluxWreck","datsun02Wreck","UAZWreck","Land_Misc_Garb_Heap_EP1","Fort_Barricade_EP1","Rubbish2"];
_isRemovable = typeOf cursorTarget in ["Fence_corrugated_DZ","M240Nest_DZ","ParkBench_DZ"];
_isDisallowRepair = typeOf cursorTarget in ["M240Nest_DZ"];
// set cursortarget to variable
_cursorTarget = cursorTarget;
// get typeof cursortarget once
_typeOfCursorTarget = typeOf _cursorTarget;
_isTent = cursorTarget isKindOf "TentStorage";
_isFuel = false;
_isAlive = alive cursorTarget;
_canmove = canmove cursorTarget;
_text = getText (configFile >> "CfgVehicles" >> typeOf cursorTarget >> "displayName");
_isVehicle = _cursorTarget isKindOf "AllVehicles";
_isVehicletype = _typeOfCursorTarget in ["ATV_US_EP1","ATV_CZ_EP1"];
_isnewstorage = _typeOfCursorTarget in ["VaultStorage","OutHouse_DZ","Wooden_shed_DZ","WoodShack_DZ","StorageShed_DZ"];
// get items and magazines only once
_magazinesPlayer = magazines player;
//boiled Water
_hasbottleitem = "ItemWaterbottle" in _magazinesPlayer;
_hastinitem = false;
{
if (_x in _magazinesPlayer) then {
_hastinitem = true;
};
} forEach boil_tin_cans;
_hasFuelE = "ItemJerrycanEmpty" in _magazinesPlayer;
_itemsPlayer = items player;
_temp_keys = [];
// find available keys
_key_colors = ["ItemKeyYellow","ItemKeyBlue","ItemKeyRed","ItemKeyGreen","ItemKeyBlack"];
{
if (configName(inheritsFrom(configFile >> "CfgWeapons" >> _x)) in _key_colors) then {
_ownerKeyId = getNumber(configFile >> "CfgWeapons" >> _x >> "keyid");
_temp_keys set [count _temp_keys,str(_ownerKeyId)];
};
} forEach _itemsPlayer;
_hasKnife = "ItemKnife" in _itemsPlayer;
_hasToolbox = "ItemToolbox" in _itemsPlayer;
_isMan = _cursorTarget isKindOf "Man";
_traderType = _typeOfCursorTarget;
_ownerID = _cursorTarget getVariable ["characterID","0"];
_isAnimal = _cursorTarget isKindOf "Animal";
_isDog = (_cursorTarget isKindOf "DZ_Pastor" || _cursorTarget isKindOf "DZ_Fin");
_isZombie = _cursorTarget isKindOf "zZombie_base";
_isDestructable = _cursorTarget isKindOf "BuiltItems";
_isWreck = _typeOfCursorTarget in ["SKODAWreck","HMMWVWreck","UralWreck","datsun01Wreck","hiluxWreck","datsun02Wreck","UAZWreck","Land_Misc_Garb_Heap_EP1","Fort_Barricade_EP1","Rubbish2"];
_isRemovable = _typeOfCursorTarget in ["Fence_corrugated_DZ","M240Nest_DZ","ParkBench_DZ","SandNest_DZ"];
_isDisallowRepair = _typeOfCursorTarget in ["M240Nest_DZ"];
_isTent = _cursorTarget isKindOf "TentStorage";
_isAlive = alive _cursorTarget;
_canmove = canmove _cursorTarget;
_text = getText (configFile >> "CfgVehicles" >> _typeOfCursorTarget >> "displayName");
_rawmeat = meatraw;
_hasRawMeat = false;
{
if (_x in magazines player) then {
if (_x in _magazinesPlayer) then {
_hasRawMeat = true;
};
} forEach _rawmeat;
if (_hasFuelE and dayz_oldrefuel) then {
_isFuel = ((typeOf cursorTarget) in dayz_fuelsources);
_isFuel = false;
if (_hasFuelE) then {
_isFuel = (_typeOfCursorTarget in dayz_fuelsources);
};
// diag_log ("OWNERID = " + _ownerID + " CHARID = " + dayz_characterID + " " + str(_ownerID == dayz_characterID));
//Allow player to delete objects
if((_isDestructable or _isWreck or (_isRemovable and ("ItemCrowbar" in items player))) and _hasToolbox and _canDo) then {
if((_isDestructable or _isWreck or (_isRemovable and ("ItemCrowbar" in _itemsPlayer))) and _hasToolbox) then {
if (s_player_deleteBuild < 0) then {
s_player_deleteBuild = player addAction [format[localize "str_actions_delete",_text], "\z\addons\dayz_code\actions\remove.sqf",cursorTarget, 1, true, true, "", ""];
s_player_deleteBuild = player addAction [format[localize "str_actions_delete",_text], "\z\addons\dayz_code\actions\remove.sqf",_cursorTarget, 1, true, true, "", ""];
};
} else {
player removeAction s_player_deleteBuild;
s_player_deleteBuild = -1;
};
// Allow Owner to lock and unlock vehicle
if(_isVehicle and !_isMan and _canDo and _ownerID != "0") then {
if(_isVehicle and !_isMan and _ownerID != "0") then {
if (s_player_lockUnlock_crtl < 0) then {
if(locked cursorTarget) then {
if(_ownerID == dayz_playerUID) then {
_Unlock = player addAction [format["Unlock %1",_text], "\z\addons\dayz_code\actions\unlock_veh.sqf",cursorTarget, 2, true, true, "", ""];
_hasKey = _ownerID in _temp_keys;
_oldOwner = (_ownerID == dayz_playerUID);
if(locked _cursorTarget) then {
if(_hasKey or _oldOwner) then {
_Unlock = player addAction [format["Unlock %1",_text], "\z\addons\dayz_code\actions\unlock_veh.sqf",_cursorTarget, 2, true, true, "", ""];
s_player_lockunlock set [count s_player_lockunlock,_Unlock];
s_player_lockUnlock_crtl = 1;
} else {
_Unlock = player addAction ["<t color='#ff0000'>Vehicle Locked</t>", "",cursorTarget, 2, true, true, "", ""];
_Unlock = player addAction ["<t color='#ff0000'>Vehicle Locked</t>", "",_cursorTarget, 2, true, true, "", ""];
s_player_lockunlock set [count s_player_lockunlock,_Unlock];
s_player_lockUnlock_crtl = 1;
};
} else {
if(_ownerID == dayz_playerUID) then {
_lock = player addAction [format["Lock %1",_text], "\z\addons\dayz_code\actions\lock_veh.sqf",cursorTarget, 1, true, true, "", ""];
if(_hasKey or _oldOwner) then {
_lock = player addAction [format["Lock %1",_text], "\z\addons\dayz_code\actions\lock_veh.sqf",_cursorTarget, 1, true, true, "", ""];
s_player_lockunlock set [count s_player_lockunlock,_lock];
s_player_lockUnlock_crtl = 1;
};
};
};
} else {
@@ -184,9 +195,9 @@ if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cu
/*
//Allow player to force save
if((_isVehicle or _isTent) and _canDo and !_isMan) then {
if((_isVehicle or _isTent) and !_isMan) then {
if (s_player_forceSave < 0) then {
s_player_forceSave = player addAction [format[localize "str_actions_save",_text], "\z\addons\dayz_code\actions\forcesave.sqf",cursorTarget, 1, true, true, "", ""];
s_player_forceSave = player addAction [format[localize "str_actions_save",_text], "\z\addons\dayz_code\actions\forcesave.sqf",_cursorTarget, 1, true, true, "", ""];
};
} else {
player removeAction s_player_forceSave;
@@ -194,72 +205,75 @@ if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cu
};
*/
if((_isVehicle or _isTent or (cursorTarget isKindOf "VaultStorage") or _isnewstorage) and _isAlive and _canDo and !_isMan) then {
if((_isVehicle or _isTent or _isnewstorage) and _isAlive and !_isMan) then {
if (s_player_checkGear < 0) then {
s_player_checkGear = player addAction ["Cargo Check", "\z\addons\dayz_code\actions\cargocheck.sqf",cursorTarget, 1, true, true, "", ""];
s_player_checkGear = player addAction ["Cargo Check", "\z\addons\dayz_code\actions\cargocheck.sqf",_cursorTarget, 1, true, true, "", ""];
};
} else {
player removeAction s_player_checkGear;
s_player_checkGear = -1;
};
//flip vehicle
if ((_isVehicletype) and !_canmove and _isAlive and (player distance cursorTarget >= 2) and (count (crew cursorTarget))== 0 and ((vectorUp cursorTarget) select 2) < 0.5) then {
if (s_player_flipveh < 0) then {
s_player_flipveh = player addAction [format[localize "str_actions_flipveh",_text], "\z\addons\dayz_code\actions\player_flipvehicle.sqf",cursorTarget, 1, true, true, "", ""];
};
//flip vehicle small vehicles by your self and all other vehicles with help nearby
if (_isVehicle and !_canmove and _isAlive and (player distance _cursorTarget >= 2) and (count (crew _cursorTarget))== 0 and ((vectorUp _cursorTarget) select 2) < 0.5) then {
_playersNear = {isPlayer _x} count (player nearEntities ["CAManBase", 6]);
if(_isVehicletype or (_playersNear >= 2)) then {
if (s_player_flipveh < 0) then {
s_player_flipveh = player addAction [format[localize "str_actions_flipveh",_text], "\z\addons\dayz_code\actions\player_flipvehicle.sqf",_cursorTarget, 1, true, true, "", ""];
};
};
} else {
player removeAction s_player_flipveh;
s_player_flipveh = -1;
};
//Allow player to fill jerrycan
if(dayz_oldrefuel) then {
if(_hasFuelE and _isFuel and _canDo) then {
if (s_player_fillfuel < 0) then {
s_player_fillfuel = player addAction [localize "str_actions_self_10", "\z\addons\dayz_code\actions\jerry_fill.sqf",[], 1, false, true, "", ""];
};
} else {
player removeAction s_player_fillfuel;
s_player_fillfuel = -1;
if(_hasFuelE and _isFuel) then {
if (s_player_fillfuel < 0) then {
s_player_fillfuel = player addAction [localize "str_actions_self_10", "\z\addons\dayz_code\actions\jerry_fill.sqf",[], 1, false, true, "", ""];
};
} else {
player removeAction s_player_fillfuel;
s_player_fillfuel = -1;
};
// Human Gut animal or zombie
if (!alive cursorTarget and (_isAnimal or _isZombie) and _hasKnife and !_isHarvested and _canDo) then {
if (s_player_butcher < 0) then {
if (!alive _cursorTarget and (_isAnimal or _isZombie) and _hasKnife) then {
_isHarvested = _cursorTarget getVariable["meatHarvested",false];
if (s_player_butcher < 0 and !_isHarvested) then {
if(_isZombie) then {
s_player_butcher = player addAction ["Gut Zombie", "\z\addons\dayz_code\actions\gather_zparts.sqf",cursorTarget, 3, true, true, "", ""];
s_player_butcher = player addAction ["Gut Zombie", "\z\addons\dayz_code\actions\gather_zparts.sqf",_cursorTarget, 3, true, true, "", ""];
} else {
s_player_butcher = player addAction [localize "str_actions_self_04", "\z\addons\dayz_code\actions\gather_meat.sqf",cursorTarget, 3, true, true, "", ""];
s_player_butcher = player addAction [localize "str_actions_self_04", "\z\addons\dayz_code\actions\gather_meat.sqf",_cursorTarget, 3, true, true, "", ""];
};
};
} else {
player removeAction s_player_butcher;
s_player_butcher = -1;
};
//Fireplace Actions check
if (inflamed cursorTarget and _hasRawMeat and _canDo) then {
if (inflamed _cursorTarget and _hasRawMeat) then {
if (s_player_cook < 0) then {
s_player_cook = player addAction [localize "str_actions_self_05", "\z\addons\dayz_code\actions\cook.sqf",cursorTarget, 3, true, true, "", ""];
s_player_cook = player addAction [localize "str_actions_self_05", "\z\addons\dayz_code\actions\cook.sqf",_cursorTarget, 3, true, true, "", ""];
};
} else {
player removeAction s_player_cook;
s_player_cook = -1;
};
if (inflamed cursorTarget and (_hasbottleitem and _hastinitem) and _canDo) then {
if (inflamed _cursorTarget and (_hasbottleitem and _hastinitem)) then {
if (s_player_boil < 0) then {
s_player_boil = player addAction [localize "str_actions_boilwater", "\z\addons\dayz_code\actions\boil.sqf",cursorTarget, 3, true, true, "", ""];
s_player_boil = player addAction [localize "str_actions_boilwater", "\z\addons\dayz_code\actions\boil.sqf",_cursorTarget, 3, true, true, "", ""];
};
} else {
player removeAction s_player_boil;
s_player_boil = -1;
};
if(cursorTarget == dayz_hasFire and _canDo) then {
if ((s_player_fireout < 0) and !(inflamed cursorTarget) and (player distance cursorTarget < 3)) then {
s_player_fireout = player addAction [localize "str_actions_self_06", "\z\addons\dayz_code\actions\fire_pack.sqf",cursorTarget, 0, false, true, "",""];
if(_cursorTarget == dayz_hasFire) then {
if ((s_player_fireout < 0) and !(inflamed _cursorTarget) and (player distance _cursorTarget < 3)) then {
s_player_fireout = player addAction [localize "str_actions_self_06", "\z\addons\dayz_code\actions\fire_pack.sqf",_cursorTarget, 0, false, true, "",""];
};
} else {
player removeAction s_player_fireout;
@@ -267,9 +281,9 @@ if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cu
};
//Packing my tent
if(cursorTarget isKindOf "TentStorage" and _canDo and _ownerID == dayz_characterID) then {
if ((s_player_packtent < 0) and (player distance cursorTarget < 3)) then {
s_player_packtent = player addAction [localize "str_actions_self_07", "\z\addons\dayz_code\actions\tent_pack.sqf",cursorTarget, 0, false, true, "",""];
if(_cursorTarget isKindOf "TentStorage" and _ownerID == dayz_characterID) then {
if ((s_player_packtent < 0) and (player distance _cursorTarget < 3)) then {
s_player_packtent = player addAction [localize "str_actions_self_07", "\z\addons\dayz_code\actions\tent_pack.sqf",_cursorTarget, 0, false, true, "",""];
};
} else {
player removeAction s_player_packtent;
@@ -277,23 +291,39 @@ if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cu
};
//Allow owner to unlock vault
if(cursorTarget isKindOf "VaultStorageLocked" and _canDo and _ownerID != "0" and _ownerID == dayz_playerUID and !UnlockInprogress) then {
if (s_player_unlockvault < 0 and (player distance cursorTarget < 3)) then {
s_player_unlockvault = player addAction ["Unlock Safe", "\z\addons\dayz_code\actions\vault_unlock.sqf",cursorTarget, 0, false, true, "",""];
if((_typeOfCursorTarget == "VaultStorageLocked" or _typeOfCursorTarget == "VaultStorage") and _ownerID != "0" and (player distance _cursorTarget < 3)) then {
if (s_player_unlockvault < 0) then {
if(_typeOfCursorTarget == "VaultStorageLocked") then {
if(_ownerID == dayz_combination or _ownerID == dayz_playerUID) then {
_combi = player addAction ["Open Safe", "\z\addons\dayz_code\actions\vault_unlock.sqf",_cursorTarget, 0, false, true, "",""];
} else {
_combi = player addAction ["Unlock Safe", "\z\addons\dayz_code\actions\vault_combination_1.sqf",_cursorTarget, 0, false, true, "",""];
};
s_player_combi set [count s_player_combi,_combi];
s_player_unlockvault = 1;
} else {
if(_ownerID != dayz_combination and _ownerID != dayz_playerUID) then {
_combi = player addAction ["Enter Combo", "\z\addons\dayz_code\actions\vault_combination_1.sqf",_cursorTarget, 0, false, true, "",""];
s_player_combi set [count s_player_combi,_combi];
s_player_unlockvault = 1;
};
};
};
} else {
player removeAction s_player_unlockvault;
{player removeAction _x} forEach s_player_combi;s_player_combi = [];
s_player_unlockvault = -1;
};
//Allow owner to pack vault
if(cursorTarget isKindOf "VaultStorage" and _canDo and _ownerID != "0" and _ownerID == dayz_playerUID and (player distance cursorTarget < 3)) then {
if(_typeOfCursorTarget == "VaultStorage" and _ownerID != "0" and (player distance _cursorTarget < 3)) then {
if (s_player_lockvault < 0) then {
s_player_lockvault = player addAction ["Lock Safe", "\z\addons\dayz_code\actions\vault_lock.sqf",cursorTarget, 0, false, true, "",""];
if(_ownerID == dayz_combination or _ownerID == dayz_playerUID) then {
s_player_lockvault = player addAction ["Lock Safe", "\z\addons\dayz_code\actions\vault_lock.sqf",_cursorTarget, 0, false, true, "",""];
};
};
if (s_player_packvault < 0) then {
s_player_packvault = player addAction ["<t color='#ff0000'>Pack Safe</t>", "\z\addons\dayz_code\actions\vault_pack.sqf",cursorTarget, 0, false, true, "",""];
if (s_player_packvault < 0 and (_ownerID == dayz_combination or _ownerID == dayz_playerUID)) then {
s_player_packvault = player addAction ["<t color='#ff0000'>Pack Safe</t>", "\z\addons\dayz_code\actions\vault_pack.sqf",_cursorTarget, 0, false, true, "",""];
};
} else {
player removeAction s_player_packvault;
@@ -305,8 +335,8 @@ if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cu
//Player Deaths
if(cursorTarget isKindOf "Info_Board_EP1" and _canDo) then {
if ((s_player_information < 0) and (player distance cursorTarget < 3)) then {
if(_typeOfCursorTarget == "Info_Board_EP1") then {
if ((s_player_information < 0) and (player distance _cursorTarget < 3)) then {
s_player_information = player addAction ["Recent Deaths", "\z\addons\dayz_code\actions\list_playerDeaths.sqf",[], 0, false, true, "",""];
};
} else {
@@ -315,8 +345,8 @@ if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cu
};
//Fuel Pump
if((typeOf cursorTarget) in dayz_fuelpumparray and _canDo) then {
if ((s_player_fuelauto < 0) and (player distance cursorTarget < 3)) then {
if(_typeOfCursorTarget in dayz_fuelpumparray) then {
if ((s_player_fuelauto < 0) and (player distance _cursorTarget < 3)) then {
// check if Generator_DZ is running within 30 meters
_findNearestGens = nearestObjects [player, ["Generator_DZ"], 30];
@@ -341,19 +371,19 @@ if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cu
};
//Start Generator
if(cursorTarget isKindOf "Generator_DZ" and _canDo) then {
if ((s_player_fillgen < 0) and (player distance cursorTarget < 3)) then {
if(_cursorTarget isKindOf "Generator_DZ") then {
if ((s_player_fillgen < 0) and (player distance _cursorTarget < 3)) then {
// check if not running
if((cursorTarget getVariable ["GeneratorRunning", false])) then {
s_player_fillgen = player addAction ["Stop Generator", "\z\addons\dayz_code\actions\stopGenerator.sqf",cursorTarget, 0, false, true, "",""];
if((_cursorTarget getVariable ["GeneratorRunning", false])) then {
s_player_fillgen = player addAction ["Stop Generator", "\z\addons\dayz_code\actions\stopGenerator.sqf",_cursorTarget, 0, false, true, "",""];
} else {
// check if not filled and player has jerry.
if((cursorTarget getVariable ["GeneratorFilled", false])) then {
s_player_fillgen = player addAction ["Start Generator", "\z\addons\dayz_code\actions\fill_startGenerator.sqf",cursorTarget, 0, false, true, "",""];
if((_cursorTarget getVariable ["GeneratorFilled", false])) then {
s_player_fillgen = player addAction ["Start Generator", "\z\addons\dayz_code\actions\fill_startGenerator.sqf",_cursorTarget, 0, false, true, "",""];
} else {
if("ItemJerrycan" in magazines player) then {
s_player_fillgen = player addAction ["Fill and Start Generator", "\z\addons\dayz_code\actions\fill_startGenerator.sqf",cursorTarget, 0, false, true, "",""];
if("ItemJerrycan" in _magazinesPlayer) then {
s_player_fillgen = player addAction ["Fill and Start Generator", "\z\addons\dayz_code\actions\fill_startGenerator.sqf",_cursorTarget, 0, false, true, "",""];
};
};
};
@@ -371,82 +401,52 @@ if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cu
// Allow auto fill
//Sleep
if(cursorTarget isKindOf "TentStorage" and _canDo and _ownerID == dayz_characterID) then {
if ((s_player_sleep < 0) and (player distance cursorTarget < 3)) then {
s_player_sleep = player addAction [localize "str_actions_self_sleep", "\z\addons\dayz_code\actions\player_sleep.sqf",cursorTarget, 0, false, true, "",""];
if(_cursorTarget isKindOf "TentStorage" and _ownerID == dayz_characterID) then {
if ((s_player_sleep < 0) and (player distance _cursorTarget < 3)) then {
s_player_sleep = player addAction [localize "str_actions_self_sleep", "\z\addons\dayz_code\actions\player_sleep.sqf",_cursorTarget, 0, false, true, "",""];
};
} else {
player removeAction s_player_sleep;
s_player_sleep = -1;
};
//Repairing Vehicles
if ((dayz_myCursorTarget != cursorTarget) and _isVehicle and !_isMan and _hasToolbox and (damage cursorTarget < 1) and !_isDisallowRepair) then {
if ((dayz_myCursorTarget != _cursorTarget) and _isVehicle and !_isMan and _hasToolbox and (damage _cursorTarget < 1) and !_isDisallowRepair) then {
if (s_player_repair_crtl < 0) then {
_vehicle = cursorTarget;
dayz_myCursorTarget = _vehicle;
_menu = dayz_myCursorTarget addAction ["Repair Vehicle", "\z\addons\dayz_code\actions\repair_vehicle.sqf",_vehicle, 0, true, false, "",""];
_menu1 = dayz_myCursorTarget addAction ["Salvage Vehicle", "\z\addons\dayz_code\actions\salvage_vehicle.sqf",_vehicle, 0, true, false, "",""];
dayz_myCursorTarget = _cursorTarget;
_menu = dayz_myCursorTarget addAction ["Repair Vehicle", "\z\addons\dayz_code\actions\repair_vehicle.sqf",_cursorTarget, 0, true, false, "",""];
_menu1 = dayz_myCursorTarget addAction ["Salvage Vehicle", "\z\addons\dayz_code\actions\salvage_vehicle.sqf",_cursorTarget, 0, true, false, "",""];
s_player_repairActions set [count s_player_repairActions,_menu];
s_player_repairActions set [count s_player_repairActions,_menu1];
s_player_repair_crtl = 1;
} else {
{dayz_myCursorTarget removeAction _x} forEach s_player_repairActions;s_player_repairActions = [];
s_player_repair_crtl = -1;
};
};
_humanity = player getVariable ["humanity",0];
// All Traders
if (_isMan and !_isPZombie and _traderType in serverTraders) then {
if (s_player_parts_crtl < 0) then {
//diag_log ("TRADER = " + str(serverTraders));
// get humanity
_humanity = player getVariable ["humanity",0];
_traderMenu = call compile format["menu_%1;",_traderType];
diag_log ("TRADER = " + str(_traderMenu));
// diag_log ("TRADER = " + str(_traderMenu));
_low_high = "low";
_humanity_logic = false;
if((_traderMenu select 2) == "friendly") then {
//_low_high = "low";
if (_humanity < -2000) then {
_humanity_logic = true;
};
_humanity_logic = (_humanity < -2000);
};
if((_traderMenu select 2) == "hostile") then {
_low_high = "high";
if (_humanity > -2000) then {
_humanity_logic = true;
};
_humanity_logic = (_humanity > -2000);
};
if((_traderMenu select 2) == "hero") then {
//_low_high = "low";
if (_humanity < 5000) then {
_humanity_logic = true;
};
_humanity_logic = (_humanity < 5000);
};
if(_humanity_logic) then {
_cancel = player addAction [format["Your humanity is too %1 this trader refuses to talk to you.",_low_high], "\z\addons\dayz_code\actions\trade_cancel.sqf",["na"], 0, true, false, "",""];
@@ -471,9 +471,6 @@ if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cu
s_player_parts set [count s_player_parts,_metals_trader];
};
s_player_parts_crtl = 1;
};
@@ -482,13 +479,9 @@ if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cu
s_player_parts_crtl = -1;
};
if (_isMan and !_isAlive and !_isZombie) then {
if (s_player_studybody < 0) then {
s_player_studybody = player addAction [localize "str_action_studybody", "\z\addons\dayz_code\actions\study_body.sqf",cursorTarget, 0, false, true, "",""];
s_player_studybody = player addAction [localize "str_action_studybody", "\z\addons\dayz_code\actions\study_body.sqf",_cursorTarget, 0, false, true, "",""];
};
} else {
player removeAction s_player_studybody;
@@ -496,79 +489,79 @@ if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cu
};
if(dayz_tameDogs) then {
//Dog
if (_isDog and _isAlive and (_hasRawMeat) and _canDo and _ownerID == "0" and player getVariable ["dogID", 0] == 0) then {
if (_isDog and _isAlive and (_hasRawMeat) and _ownerID == "0" and player getVariable ["dogID", 0] == 0) then {
if (s_player_tamedog < 0) then {
s_player_tamedog = player addAction [localize "str_actions_tamedog", "\z\addons\dayz_code\actions\tame_dog.sqf", cursorTarget, 1, false, true, "", ""];
s_player_tamedog = player addAction [localize "str_actions_tamedog", "\z\addons\dayz_code\actions\tame_dog.sqf", _cursorTarget, 1, false, true, "", ""];
};
} else {
player removeAction s_player_tamedog;
s_player_tamedog = -1;
};
if (_isDog and _ownerID == dayz_characterID and _isAlive) then {
_dogHandle = player getVariable ["dogID", 0];
if (s_player_feeddog < 0 and _hasRawMeat) then {
s_player_feeddog = player addAction [localize "str_actions_feeddog","\z\addons\dayz_code\actions\dog\feed.sqf",[_dogHandle,0], 0, false, true,"",""];
};
if (s_player_waterdog < 0 and "ItemWaterbottle" in _magazinesPlayer) then {
s_player_waterdog = player addAction [localize "str_actions_waterdog","\z\addons\dayz_code\actions\dog\feed.sqf",[_dogHandle,1], 0, false, true,"",""];
};
if (s_player_staydog < 0) then {
_lieDown = _dogHandle getFSMVariable "_actionLieDown";
if (_lieDown) then { _text = "str_actions_liedog"; } else { _text = "str_actions_sitdog"; };
s_player_staydog = player addAction [localize _text,"\z\addons\dayz_code\actions\dog\stay.sqf", _dogHandle, 5, false, true,"",""];
};
if (s_player_trackdog < 0) then {
s_player_trackdog = player addAction [localize "str_actions_trackdog","\z\addons\dayz_code\actions\dog\track.sqf", _dogHandle, 4, false, true,"",""];
};
if (s_player_barkdog < 0) then {
s_player_barkdog = player addAction [localize "str_actions_barkdog","\z\addons\dayz_code\actions\dog\speak.sqf", _cursorTarget, 3, false, true,"",""];
};
if (s_player_warndog < 0) then {
_warn = _dogHandle getFSMVariable "_watchDog";
if (_warn) then { _text = "Quiet"; _warn = false; } else { _text = "Alert"; _warn = true; };
s_player_warndog = player addAction [format[localize "str_actions_warndog",_text],"\z\addons\dayz_code\actions\dog\warn.sqf",[_dogHandle, _warn], 2, false, true,"",""];
};
if (s_player_followdog < 0) then {
s_player_followdog = player addAction [localize "str_actions_followdog","\z\addons\dayz_code\actions\dog\follow.sqf",[_dogHandle,true], 6, false, true,"",""];
};
} else {
player removeAction s_player_feeddog;
s_player_feeddog = -1;
player removeAction s_player_waterdog;
s_player_waterdog = -1;
player removeAction s_player_staydog;
s_player_staydog = -1;
player removeAction s_player_trackdog;
s_player_trackdog = -1;
player removeAction s_player_barkdog;
s_player_barkdog = -1;
player removeAction s_player_warndog;
s_player_warndog = -1;
player removeAction s_player_followdog;
s_player_followdog = -1;
};
};
if (_isDog and _ownerID == dayz_characterID and _isAlive and _canDo) then {
_dogHandle = player getVariable ["dogID", 0];
if (s_player_feeddog < 0 and _hasRawMeat) then {
s_player_feeddog = player addAction [localize "str_actions_feeddog","\z\addons\dayz_code\actions\dog\feed.sqf",[_dogHandle,0], 0, false, true,"",""];
};
if (s_player_waterdog < 0 and "ItemWaterbottle" in magazines player) then {
s_player_waterdog = player addAction [localize "str_actions_waterdog","\z\addons\dayz_code\actions\dog\feed.sqf",[_dogHandle,1], 0, false, true,"",""];
};
if (s_player_staydog < 0) then {
_lieDown = _dogHandle getFSMVariable "_actionLieDown";
if (_lieDown) then { _text = "str_actions_liedog"; } else { _text = "str_actions_sitdog"; };
s_player_staydog = player addAction [localize _text,"\z\addons\dayz_code\actions\dog\stay.sqf", _dogHandle, 5, false, true,"",""];
};
if (s_player_trackdog < 0) then {
s_player_trackdog = player addAction [localize "str_actions_trackdog","\z\addons\dayz_code\actions\dog\track.sqf", _dogHandle, 4, false, true,"",""];
};
if (s_player_barkdog < 0) then {
s_player_barkdog = player addAction [localize "str_actions_barkdog","\z\addons\dayz_code\actions\dog\speak.sqf", cursorTarget, 3, false, true,"",""];
};
if (s_player_warndog < 0) then {
_warn = _dogHandle getFSMVariable "_watchDog";
if (_warn) then { _text = "Quiet"; _warn = false; } else { _text = "Alert"; _warn = true; };
s_player_warndog = player addAction [format[localize "str_actions_warndog",_text],"\z\addons\dayz_code\actions\dog\warn.sqf",[_dogHandle, _warn], 2, false, true,"",""];
};
if (s_player_followdog < 0) then {
s_player_followdog = player addAction [localize "str_actions_followdog","\z\addons\dayz_code\actions\dog\follow.sqf",[_dogHandle,true], 6, false, true,"",""];
};
} else {
player removeAction s_player_feeddog;
s_player_feeddog = -1;
player removeAction s_player_waterdog;
s_player_waterdog = -1;
player removeAction s_player_staydog;
s_player_staydog = -1;
player removeAction s_player_trackdog;
s_player_trackdog = -1;
player removeAction s_player_barkdog;
s_player_barkdog = -1;
player removeAction s_player_warndog;
s_player_warndog = -1;
player removeAction s_player_followdog;
s_player_followdog = -1;
};
} else {
//Engineering
{dayz_myCursorTarget removeAction _x} forEach s_player_repairActions;s_player_repairActions = [];
s_player_repair_crtl = -1;
{player removeAction _x} forEach s_player_combi;s_player_combi = [];
dayz_myCursorTarget = objNull;
{player removeAction _x} forEach s_player_parts;s_player_parts = [];
s_player_parts_crtl = -1;
{player removeAction _x} forEach s_player_lockunlock;s_player_lockunlock = [];
s_player_lockUnlock_crtl = -1;
player removeAction s_player_checkGear;
s_player_checkGear = -1;
s_player_parts_crtl = -1;
// lock unlock vehicles
s_player_lockUnlock_crtl = -1;
//Others
player removeAction s_player_forceSave;
s_player_forceSave = -1;
@@ -610,7 +603,7 @@ if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cu
player removeAction s_player_followdog;
s_player_followdog = -1;
// vault
// vault
player removeAction s_player_unlockvault;
s_player_unlockvault = -1;
player removeAction s_player_packvault;
@@ -622,6 +615,8 @@ if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cu
s_player_information = -1;
player removeAction s_player_fillgen;
s_player_fillgen = -1;
player removeAction s_player_fuelauto;
s_player_fuelauto = -1;
};

View File

@@ -18,6 +18,8 @@ if (local _zombiebody) then {
publicVariable "dayzHideBody"; // remote player
sleep 5;
deleteVehicle _body;
// Give small humanity increase after body is removed
[player,1] call player_humanityChange;
true;
};

View File

@@ -39,7 +39,7 @@ if (_ammo isKindOf "SmokeShell") then {
_i = _i + 1;
} forEach _listTalk;
} else {
_id = [_unit,_distance,true,(getPosATL player)] spawn player_alertZombies;
[_unit,_distance,true,(getPosATL player)] spawn player_alertZombies;
//Check if need to place arrow
if (_ammo isKindOf "Bolt") then {
_id = _this spawn player_crossbowBolt;

View File

@@ -1,32 +1,44 @@
/*
[_obj] spawn player_unlockVault;
Lock Safe - DayZ Epoch - [VB]AWOL
*/
private["_objectID","_objectUID","_obj","_ownerID","_dir","_pos","_bag","_holder","_weapons","_magazines","_backpacks","_objWpnTypes","_objWpnQty","_countr"];
private ["_objectID","_objectUID","_obj","_ownerID","_dir","_pos","_holder","_weapons","_magazines","_backpacks","_alreadyPacking"];
if(TradeInprogress) exitWith { cutText ["Lock already in progress." , "PLAIN DOWN"]; };
TradeInprogress = true;
_obj = _this;
// Silently exit if object no longer exists
if(isNull _obj) exitWith { TradeInprogress = false; };
_ownerID = _obj getVariable["CharacterID","0"];
_objectID = _obj getVariable["ObjectID","0"];
_objectUID = _obj getVariable["ObjectUID","0"];
player playActionNow "Medic";
player removeAction s_player_lockvault;
s_player_lockvault = -1;
s_player_lockvault = 1;
if(_ownerID == dayz_playerUID) then {
_alreadyPacking = _obj getVariable["packing",0];
if((_ownerID != dayz_combination) and (_ownerID != dayz_playerUID)) exitWith {TradeInprogress = false; s_player_lockvault = -1; cutText ["You cannot lock this Safe, you do not know the combination", "PLAIN DOWN"]; };
if (_alreadyPacking == 1) exitWith {cutText ["That Safe is already being locked." , "PLAIN DOWN"]};
_alreadyPacking = _obj getVariable["packing",0];
_obj setVariable["packing",1];
if (_alreadyPacking == 1) exitWith {TradeInprogress = false; s_player_lockvault = -1; cutText ["That Safe is already being locked." , "PLAIN DOWN"]};
_dir = direction _obj;
// _pos = getposATL _obj;
_pos = _obj getVariable["OEMPos",(getposATL _obj)];
[player,"tentpack",0,false] call dayz_zombieSpeak;
sleep 3;
_obj setVariable["packing",1];
_dir = direction _obj;
// _pos = getposATL _obj;
_pos = _obj getVariable["OEMPos",(getposATL _obj)];
[player,"tentpack",0,false] call dayz_zombieSpeak;
sleep 3;
if(!isNull _obj) then {
// force vault save just before locking
dayzUpdateVehicle = [_obj,"gear"];
publicVariableServer "dayzUpdateVehicle";
//place tent (local)
_holder = createVehicle ["VaultStorageLocked",_pos,[], 0, "CAN_COLLIDE"];
@@ -58,7 +70,7 @@ if(_ownerID == dayz_playerUID) then {
};
cutText ["Your Safe has been locked", "PLAIN DOWN"];
} else {
cutText ["You cannot lock this Safe, it is not yours", "PLAIN DOWN"];
s_player_lockvault = -1;
};
TradeInprogress = false;

View File

@@ -2,6 +2,10 @@
[_obj] spawn player_packTent;
*/
private["_objectID","_objectUID","_obj","_ownerID","_dir","_pos","_object","_holder","_weapons","_magazines","_backpacks","_objWpnTypes","_objWpnQty","_countr"];
if(TradeInprogress) exitWith { cutText ["Pack tent already in progress." , "PLAIN DOWN"]; };
TradeInprogress = true;
_obj = _this;
_ownerID = _obj getVariable["CharacterID","0"];
_objectID = _obj getVariable["ObjectID","0"];
@@ -9,77 +13,78 @@ _objectUID = _obj getVariable["ObjectUID","0"];
player playActionNow "Medic";
player removeAction s_player_packtent;
s_player_packtent = 1;
if(_ownerID != dayz_characterID) exitWith {TradeInprogress = false; s_player_packtent = -1; cutText [localize "str_fail_tent_pack", "PLAIN DOWN"];};
_alreadyPacking = _obj getVariable["packing",0];
if (_alreadyPacking == 1) exitWith {TradeInprogress = false; s_player_packtent = -1; cutText [format[(localize "str_player_beingpacked")] , "PLAIN DOWN"]};
_obj setVariable["packing",1];
_dir = direction _obj;
_pos = getposATL _obj;
_dis=20;
_sfx = "tentpack";
[player,_sfx,0,false,_dis] call dayz_zombieSpeak;
[player,_dis,true,(getPosATL player)] spawn player_alertZombies;
sleep 3;
_classname = getText (configFile >> "CfgVehicles" >> (typeOf _obj) >> "create");
_location = _pos;
//place tent (local)
//_bag = createVehicle ["WeaponHolder_ItemTent",_pos,[], 0, "CAN_COLLIDE"];
_object = createVehicle [_classname, _location, [], 0, "CAN_COLLIDE"];
_object setdir _dir;
player reveal _object;
_holder = "WeaponHolder" createVehicle _pos;
_weapons = getWeaponCargo _obj;
_magazines = getMagazineCargo _obj;
_backpacks = getBackpackCargo _obj;
//["dayzDeleteObj",[_objectID,_objectUID]] call callRpcProcedure;
dayzDeleteObj = [_objectID,_objectUID];
publicVariableServer "dayzDeleteObj";
if (isServer) then {
dayzDeleteObj call server_deleteObj;
};
deleteVehicle _obj;
//Add weapons
_objWpnTypes = _weapons select 0;
_objWpnQty = _weapons select 1;
_countr = 0;
{
_holder addweaponcargoGlobal [_x,(_objWpnQty select _countr)];
_countr = _countr + 1;
} forEach _objWpnTypes;
//Add Magazines
_objWpnTypes = _magazines select 0;
_objWpnQty = _magazines select 1;
_countr = 0;
{
_holder addmagazinecargoGlobal [_x,(_objWpnQty select _countr)];
_countr = _countr + 1;
} forEach _objWpnTypes;
//Add Backpacks
_objWpnTypes = _backpacks select 0;
_objWpnQty = _backpacks select 1;
_countr = 0;
{
_holder addbackpackcargoGlobal [_x,(_objWpnQty select _countr)];
_countr = _countr + 1;
} forEach _objWpnTypes;
cutText [localize "str_success_tent_pack", "PLAIN DOWN"];
s_player_packtent = -1;
if(_ownerID == dayz_characterID) then {
_alreadyPacking = _obj getVariable["packing",0];
if (_alreadyPacking == 1) exitWith {cutText [format[(localize "str_player_beingpacked")] , "PLAIN DOWN"]};
_obj setVariable["packing",1];
_dir = direction _obj;
_pos = getposATL _obj;
_dis=20;
_sfx = "tentpack";
[player,_sfx,0,false,_dis] call dayz_zombieSpeak;
[player,_dis,true,(getPosATL player)] spawn player_alertZombies;
sleep 3;
_classname = getText (configFile >> "CfgVehicles" >> (typeOf _obj) >> "create");
_location = _pos;
//place tent (local)
//_bag = createVehicle ["WeaponHolder_ItemTent",_pos,[], 0, "CAN_COLLIDE"];
_object = createVehicle [_classname, _location, [], 0, "CAN_COLLIDE"];
_object setdir _dir;
player reveal _object;
_holder = "WeaponHolder" createVehicle _pos;
_weapons = getWeaponCargo _obj;
_magazines = getMagazineCargo _obj;
_backpacks = getBackpackCargo _obj;
//["dayzDeleteObj",[_objectID,_objectUID]] call callRpcProcedure;
dayzDeleteObj = [_objectID,_objectUID];
publicVariableServer "dayzDeleteObj";
if (isServer) then {
dayzDeleteObj call server_deleteObj;
};
deleteVehicle _obj;
//Add weapons
_objWpnTypes = _weapons select 0;
_objWpnQty = _weapons select 1;
_countr = 0;
{
_holder addweaponcargoGlobal [_x,(_objWpnQty select _countr)];
_countr = _countr + 1;
} forEach _objWpnTypes;
//Add Magazines
_objWpnTypes = _magazines select 0;
_objWpnQty = _magazines select 1;
_countr = 0;
{
_holder addmagazinecargoGlobal [_x,(_objWpnQty select _countr)];
_countr = _countr + 1;
} forEach _objWpnTypes;
//Add Backpacks
_objWpnTypes = _backpacks select 0;
_objWpnQty = _backpacks select 1;
_countr = 0;
{
_holder addbackpackcargoGlobal [_x,(_objWpnQty select _countr)];
_countr = _countr + 1;
} forEach _objWpnTypes;
cutText [localize "str_success_tent_pack", "PLAIN DOWN"];
} else {
cutText [localize "str_fail_tent_pack", "PLAIN DOWN"];
};
TradeInprogress = false;

View File

@@ -7,6 +7,10 @@ if(TradeInprogress) exitWith { cutText ["That Safe is already being packed." , "
TradeInprogress = true;
_obj = _this;
// Silently exit if object no longer exists
if(isNull _obj) exitWith { TradeInprogress = false; };
_ownerID = _obj getVariable["CharacterID","0"];
_objectID = _obj getVariable["ObjectID","0"];
_objectUID = _obj getVariable["ObjectUID","0"];
@@ -14,30 +18,34 @@ _objectUID = _obj getVariable["ObjectUID","0"];
player removeAction s_player_packvault;
s_player_packvault = 1;
if(_ownerID == dayz_playerUID) then {
_alreadyPacking = _obj getVariable["packing",0];
if (_alreadyPacking == 1) exitWith {cutText ["That Safe is already being packed." , "PLAIN DOWN"]};
_obj setVariable["packing",1];
if((_ownerID != dayz_combination) and (_ownerID != dayz_playerUID)) exitWith { TradeInprogress = false; s_player_packvault = -1; cutText ["You cannot pack this Safe, you do not know the combination.", "PLAIN DOWN"];};
cutText ["Packing Safe move from this position to cancel within 5 seconds.", "PLAIN DOWN"];
sleep 1;
_location1 = getPosATL player;
sleep 5;
_location2 = getPosATL player;
if(_location1 distance _location2 > 0.1) exitWith {
cutText ["Packing Safe canceled." , "PLAIN DOWN"];
_obj setVariable["packing",0];
};
_alreadyPacking = _obj getVariable["packing",0];
player playActionNow "Medic";
if (_alreadyPacking == 1) exitWith {TradeInprogress = false; s_player_packvault = -1; cutText ["That Safe is already being packed." , "PLAIN DOWN"]};
_obj setVariable["packing",1];
_dir = direction _obj;
cutText ["Packing Safe move from this position to cancel within 5 seconds.", "PLAIN DOWN"];
sleep 1;
_location1 = getPosATL player;
sleep 5;
_location2 = getPosATL player;
_pos = _obj getVariable["OEMPos",(getposATL _obj)];
if(_location1 distance _location2 > 0.1) exitWith {
cutText ["Packing Safe canceled." , "PLAIN DOWN"];
_obj setVariable["packing",0];
};
player playActionNow "Medic";
_dir = direction _obj;
[player,"tentpack",0,false] call dayz_zombieSpeak;
sleep 3;
_pos = _obj getVariable["OEMPos",(getposATL _obj)];
[player,"tentpack",0,false] call dayz_zombieSpeak;
sleep 3;
if(!isNull _obj) then {
//place tent (local)
_bag = createVehicle ["WeaponHolder_ItemVault",_pos,[], 0, "CAN_COLLIDE"];
@@ -89,10 +97,7 @@ if(_ownerID == dayz_playerUID) then {
cutText ["Your Safe has been packed", "PLAIN DOWN"];
} else {
cutText ["You cannot pack this Safe, it is not yours", "PLAIN DOWN"];
s_player_packvault = -1;
};
s_player_packvault = -1;
TradeInprogress = false;

View File

@@ -30,4 +30,4 @@ if (_ammo isKindOf "RoadFlare") then {
};
};
_id = [_unit,_distance,false,_endPos] spawn player_alertZombies;
[_unit,_distance,false,_endPos] spawn player_alertZombies;

View File

@@ -1,85 +1,98 @@
/*
[_obj] spawn player_unlockVault;
*/
private ["_objectID","_objectUID","_obj","_ownerID","_dir","_pos","_holder","_weapons","_magazines","_backpacks","_objWpnTypes","_objWpnQty","_countr","_allowunlock","_alreadyPacking"];
private ["_objectID","_objectUID","_obj","_ownerID","_dir","_pos","_holder","_weapons","_magazines","_backpacks","_objWpnTypes","_objWpnQty","_countr","_alreadyPacking"];
if(TradeInprogress) exitWith { cutText ["Unlock already in progress." , "PLAIN DOWN"]; };
TradeInprogress = true;
{player removeAction _x} forEach s_player_combi;s_player_combi = [];
s_player_unlockvault = 1;
_obj = _this;
// Silently exit if object no longer exists
if(isNull _obj) exitWith { TradeInprogress = false; };
_ownerID = _obj getVariable["CharacterID","0"];
_objectID = _obj getVariable["ObjectID","0"];
_objectUID = _obj getVariable["ObjectUID","0"];
player playActionNow "Medic";
player removeAction s_player_unlockvault;
s_player_unlockvault = 1;
_alreadyPacking = _obj getVariable["packing",0];
UnlockInprogress = true;
if (_alreadyPacking == 1) exitWith {TradeInprogress = false; s_player_unlockvault = -1; cutText ["That Safe is already being unlocked." , "PLAIN DOWN"]};
if (_ownerID == dayz_playerUID) then {
_alreadyPacking = _obj getVariable["packing",0];
if (_alreadyPacking == 1) exitWith {cutText ["That Safe is already being unlocked." , "PLAIN DOWN"]};
// Promt user for password if _ownerID != dayz_playerUID
if ((_ownerID == dayz_combination) or (_ownerID == dayz_playerUID)) then {
_obj setVariable["packing",1];
_dir = direction _obj;
// _pos = getposATL _obj;
_pos = _obj getVariable["OEMPos",(getposATL _obj)];
player playActionNow "Medic";
//player playActionNow "Medic";
sleep 1;
[player,"tentpack",0,false] call dayz_zombieSpeak;
sleep 5;
//place tent (local)
_holder = createVehicle ["VaultStorage",_pos,[], 0, "CAN_COLLIDE"];
_holder setdir _dir;
_holder setpos _pos;
player reveal _holder;
_holder setVariable["CharacterID",_ownerID,true];
_holder setVariable["ObjectID",_objectID,true];
_holder setVariable["ObjectUID",_objectUID,true];
_holder setVariable ["OEMPos", _pos, true];
if(!isNull _obj) then {
_weapons = _obj getVariable["WeaponCargo",[]];
_magazines = _obj getVariable["MagazineCargo",[]];
_backpacks = _obj getVariable["BackpackCargo",[]];
//place tent (local)
_holder = createVehicle ["VaultStorage",_pos,[], 0, "CAN_COLLIDE"];
_holder setdir _dir;
_holder setpos _pos;
player reveal _holder;
// Remove locked vault
deleteVehicle _obj;
_holder setVariable["CharacterID",_ownerID,true];
_holder setVariable["ObjectID",_objectID,true];
_holder setVariable["ObjectUID",_objectUID,true];
_holder setVariable ["OEMPos", _pos, true];
if (count _weapons > 0) then {
//Add weapons
_objWpnTypes = _weapons select 0;
_objWpnQty = _weapons select 1;
_countr = 0;
{
_holder addweaponcargoGlobal [_x,(_objWpnQty select _countr)];
_countr = _countr + 1;
} forEach _objWpnTypes;
};
_weapons = _obj getVariable["WeaponCargo",[]];
_magazines = _obj getVariable["MagazineCargo",[]];
_backpacks = _obj getVariable["BackpackCargo",[]];
if (count _magazines > 0) then {
//Add Magazines
_objWpnTypes = _magazines select 0;
_objWpnQty = _magazines select 1;
_countr = 0;
{
_holder addmagazinecargoGlobal [_x,(_objWpnQty select _countr)];
_countr = _countr + 1;
} forEach _objWpnTypes;
};
// Remove locked vault
deleteVehicle _obj;
if (count _backpacks > 0) then {
//Add Backpacks
_objWpnTypes = _backpacks select 0;
_objWpnQty = _backpacks select 1;
_countr = 0;
{
_holder addbackpackcargoGlobal [_x,(_objWpnQty select _countr)];
_countr = _countr + 1;
} forEach _objWpnTypes;
};
if (count _weapons > 0) then {
//Add weapons
_objWpnTypes = _weapons select 0;
_objWpnQty = _weapons select 1;
_countr = 0;
{
_holder addweaponcargoGlobal [_x,(_objWpnQty select _countr)];
_countr = _countr + 1;
} forEach _objWpnTypes;
};
cutText ["Safe has been unlocked.", "PLAIN DOWN"];
if (count _magazines > 0) then {
//Add Magazines
_objWpnTypes = _magazines select 0;
_objWpnQty = _magazines select 1;
_countr = 0;
{
_holder addmagazinecargoGlobal [_x,(_objWpnQty select _countr)];
_countr = _countr + 1;
} forEach _objWpnTypes;
};
if (count _backpacks > 0) then {
//Add Backpacks
_objWpnTypes = _backpacks select 0;
_objWpnQty = _backpacks select 1;
_countr = 0;
{
_holder addbackpackcargoGlobal [_x,(_objWpnQty select _countr)];
_countr = _countr + 1;
} forEach _objWpnTypes;
};
cutText ["Safe has been unlocked.", "PLAIN DOWN"];
};
} else {
player playActionNow "Medic";
sleep 3;
@@ -88,6 +101,5 @@ if (_ownerID == dayz_playerUID) then {
sleep 5;
cutText ["Combination incorrect, Safe is still locked.", "PLAIN DOWN"];
};
s_player_unlockvault = -1;
UnlockInprogress = false;
TradeInprogress = false;

View File

@@ -156,7 +156,7 @@ if ((count _updates > 0 or _isNewMed) and _characterID != "0") then {
if (count _playerPos > 0) then {
_array = [];
{
if (_x > -20000 and _x < 20000) then {
if (_x > dayz_minpos and _x < dayz_maxpos) then {
_array set [count _array,_x];
};
} forEach (_playerPos select 1);