mirror of
https://github.com/EpochModTeam/DayZ-Epoch.git
synced 2025-12-14 12:12:34 +03:00
1.0.0.6 Developer Build
+ [CHANGED] lowered metal pole crafting requirements to 1 scrap 1 tank
trap.
+ [CHANGED] Corrugated crafting now
{"ItemPole",1},{"PartGeneric",2},{"ItemTankTrap",1},{"PartWoodLumber",2}.
+ [CHANGED] Generator can now be started and stopped.
+ [FIXED] Generators cannot be removed while running.
+ [ADDED] New larger backpack: DZ_LargeGunBag_EP1 (Weapons = 10;
Magazines = 45) added to MilitarySpecial loot table.
+ [ADDED] New backpack: DZ_GunBag_EP1 (Weapons = 6; Magazines = 8) added
to Militaryloot table..
+ [ADDED] New backpack: DZ_CompactPack_EP1 (Weapons = 1; Magazines = 18)
added to Supermarket loot table.
+ [ADDED] New backpack: DZ_TerminalPack_EP1 (Weapons = 1; Magazines =
12) added to Supermarket loot table.
+ [ADDED] Green domed tent ItemTentDomed2 - TentStorageDomed2 added to
Residential loot table at 0.01.
+ [ADDED] When removing road debris you will now get one random car part
in return.
+ [ADDED] Revamped chopping wood so that it now actually chops down a
tree within 5m. Supports specific tree types for most maps.
+ [ADDED] Craftable stick fence requires tools
{"ItemToolbox","ItemKnife"} and input {"PartWoodPile",6}.
+ [ADDED] Buildable stick fence StickFence_DZ requires tools
{"ItemEtool","ItemToolbox"}.
+ [CHANGED] Middle floor of A2 in Namalsk changed to MilitarySpecial.
+ [ADDED] 55 Gallon Fuel Barrel as a rare spawn to Farm and Industrial
loot tables at 0.005.
+ [CHANGED] Lowered chance for spawn of generator to 0.005 from 0.01.
+ [FIXED] incorrectly setting characterID server side with wrong
variable.
This commit is contained in:
@@ -18,6 +18,23 @@ class CfgMagazines {
|
||||
};
|
||||
};
|
||||
};
|
||||
class ItemTentDomed2 : CA_Magazine {
|
||||
scope = public;
|
||||
count = 1;
|
||||
type = 256;
|
||||
displayName = $STR_EQUIP_NAME_20;
|
||||
model = "\dayz_equip\models\tentbag_gear.p3d";
|
||||
picture = "\dayz_equip\textures\equip_tentbag_ca.paa";
|
||||
descriptionShort = $STR_EQUIP_DESC_20;
|
||||
|
||||
class ItemActions {
|
||||
class Pitch {
|
||||
text = $STR_PITCH_TENT;
|
||||
script = "spawn player_tentPitch;";
|
||||
create = "TentStorageDomed2";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class ItemSandbag : CA_Magazine {
|
||||
scope = public;
|
||||
|
||||
@@ -3,6 +3,9 @@ private ["_vehicle","_started","_finished","_animState","_isMedic"];
|
||||
if(TradeInprogress) exitWith { cutText ["Refuel already in progress." , "PLAIN DOWN"] };
|
||||
TradeInprogress = true;
|
||||
|
||||
player removeAction s_player_fillgen;
|
||||
|
||||
|
||||
// Use target from addaction
|
||||
_vehicle = _this select 3;
|
||||
|
||||
@@ -40,29 +43,49 @@ if(!_finished) then {
|
||||
r_interrupt = false;
|
||||
[objNull, player, rSwitchMove,""] call RE;
|
||||
player playActionNow "stop";
|
||||
cutText ["Canceled refuel." , "PLAIN DOWN"]
|
||||
cutText ["Canceled." , "PLAIN DOWN"]
|
||||
};
|
||||
|
||||
if (_finished) then {
|
||||
// take jerry can and replace with empty
|
||||
|
||||
if(!(_vehicle getVariable ["GeneratorFilled", false]) and ("ItemJerrycan" in magazines player)) then {
|
||||
|
||||
if(([player,"ItemJerrycan"] call BIS_fnc_invRemove) == 1) then {
|
||||
|
||||
player addMagazine "ItemJerrycanEmpty";
|
||||
|
||||
// mark as once filled
|
||||
_vehicle setVariable ["GeneratorFilled", true,true];
|
||||
|
||||
// Start generator
|
||||
_vehicle setVariable ["GeneratorRunning", true,true];
|
||||
|
||||
// Sound_Generator1
|
||||
// Looks like this was the entended way of making the sound, lets test
|
||||
//_classname = "Sound_Generator1";
|
||||
_soundSource = createSoundSource ["Sound_Generator1", position player, [], 0];
|
||||
|
||||
//_location = (getPosATL _vehicle);
|
||||
|
||||
//_tmpbuilt = createVehicle [_classname, _location, [], 0, "CAN_COLLIDE"];
|
||||
|
||||
_soundSource = createSoundSource ["Generator1", position player, [], 0];
|
||||
_vehicle setVariable ["GeneratorSound", _soundSource,true];
|
||||
|
||||
// TODO: Add running sounds to generator
|
||||
cutText ["Generator has been started.", "PLAIN DOWN"];
|
||||
};
|
||||
} else {
|
||||
|
||||
// Start generator
|
||||
_vehicle setVariable ["GeneratorRunning", true,true];
|
||||
|
||||
// Sound_Generator1
|
||||
// Looks like this was the entended way of making the sound, lets test
|
||||
_soundSource = createSoundSource ["Sound_Generator1", position player, [], 0];
|
||||
|
||||
_vehicle setVariable ["GeneratorSound", _soundSource,true];
|
||||
|
||||
// TODO: Add running sounds to generator
|
||||
cutText ["Generator has been started.", "PLAIN DOWN"];
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
TradeInprogress = false;
|
||||
s_player_fillgen = -1;
|
||||
@@ -23,7 +23,9 @@ _text = getText (configFile >> "CfgVehicles" >> _classname >> "displayName");
|
||||
_offset = getArray (configFile >> "CfgVehicles" >> _classname >> "offset");
|
||||
|
||||
// check for near plot
|
||||
_findNearestPole = nearestObjects[player, ["Plastic_Pole_EP1_DZ"], 30];
|
||||
_findNearestPoles = nearestObjects [(vehicle player), ["Plastic_Pole_EP1_DZ"], 30];
|
||||
_findNearestPole = [];
|
||||
{if (alive _x) then {_findNearestPole set [(count _findNearestPole),_x];};} foreach _findNearestPoles;
|
||||
|
||||
_IsNearPlot = count (_findNearestPole);
|
||||
|
||||
@@ -31,7 +33,7 @@ if(_IsNearPlot == 0) then {
|
||||
|
||||
// Allow building of plot
|
||||
if(_classname == "Plastic_Pole_EP1_DZ") then {
|
||||
if(count (nearestObjects[player, ["Plastic_Pole_EP1_DZ"], 60]) == 0) then {
|
||||
if({alive _x} count (nearestObjects[(vehicle player), ["Plastic_Pole_EP1_DZ"], 45]) == 0) then {
|
||||
_canBuildOnPlot = true;
|
||||
};
|
||||
};
|
||||
@@ -39,39 +41,35 @@ if(_IsNearPlot == 0) then {
|
||||
} else {
|
||||
// Since there are plots nearby we check for ownership and then for friend status
|
||||
|
||||
// select closest pole
|
||||
_nearestPole = _findNearestPole select 0;
|
||||
|
||||
// Find owner
|
||||
_ownerID = _nearestPole getVariable["CharacterID","0"];
|
||||
|
||||
diag_log format["DEBUG BUILDING: %1 = %2", dayz_characterID, _ownerID];
|
||||
|
||||
// check if friendly to owner
|
||||
if(dayz_characterID == _ownerID) then {
|
||||
// owner can build anything within his plot
|
||||
|
||||
if(_classname == "Plastic_Pole_EP1_DZ") then {
|
||||
if(count ([player, ["Plastic_Pole_EP1_DZ"], 30]) == 0) then {
|
||||
_canBuildOnPlot = true;
|
||||
};
|
||||
} else {
|
||||
_canBuildOnPlot = true;
|
||||
};
|
||||
|
||||
} else {
|
||||
// not the owner so check if user is friendly to owner.
|
||||
|
||||
_friendlies = player getVariable ["friendlies",[]];
|
||||
// check if friendly to owner
|
||||
if(_ownerID in _friendlies) then {
|
||||
// owner can build anything within his plot except other plots witin
|
||||
if(_classname != "Plastic_Pole_EP1_DZ") then {
|
||||
_canBuildOnPlot = true;
|
||||
};
|
||||
|
||||
} else {
|
||||
// disallow building plot
|
||||
if(_classname != "Plastic_Pole_EP1_DZ") then {
|
||||
_friendlies = player getVariable ["friendlyTo",[]];
|
||||
// check if friendly to owner
|
||||
if(_ownerID in _friendlies) then {
|
||||
_canBuildOnPlot = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
if(!_canBuildOnPlot) exitWith { TradeInprogress = false; cutText ["Building requires plot within 30m" , "PLAIN DOWN"]; };
|
||||
// _message
|
||||
if(!_canBuildOnPlot) exitWith { TradeInprogress = false; cutText ["Building requires plot pole within 30m" , "PLAIN DOWN"]; };
|
||||
|
||||
_missing = "";
|
||||
_hasrequireditem = true;
|
||||
@@ -250,6 +248,8 @@ if (_hasrequireditem) then {
|
||||
|
||||
cutText [format[localize "str_build_01",_text], "PLAIN DOWN"];
|
||||
|
||||
_tmpbuilt setVariable ["characterID",dayz_characterID,true];
|
||||
|
||||
//["dayzPublishObj",[dayz_characterID,_tmpbuilt,[_dir,_location],_classname]] call callRpcProcedure;
|
||||
dayzPublishObj = [dayz_characterID,_tmpbuilt,[_dir,_location],_classname];
|
||||
publicVariableServer "dayzPublishObj";
|
||||
|
||||
@@ -3,22 +3,101 @@ private["_item","_location","_isOk","_dir","_classname"];
|
||||
if(TradeInprogress) exitWith { cutText ["Harvest wood already in progress." , "PLAIN DOWN"]; };
|
||||
TradeInprogress = true;
|
||||
|
||||
// allowed trees list
|
||||
_trees = ["t_picea3f.p3d","t_picea2s.p3d","t_picea1s.p3d","t_fagus2w.p3d","t_fagus2s.p3d","t_fagus2f.p3d","t_betula1f.p3d","t_betula2f.p3d","t_betula2s.p3d","t_betula2w.p3d","t_alnus2s.p3d","t_acer2s.p3d","t_populus3s.p3d","t_quercus2f.p3d","t_sorbus2s.p3d","t_malus1s.p3d","t_salix2s.p3d","t_picea1s_w.p3d","t_picea2s_w.p3d","t_ficusb2s_ep1.p3d","t_populusb2s_ep1.p3d","t_populusf2s_ep1.p3d","t_amygdalusc2s_ep1.p3d","t_ficusb2s_ep1.p3d","t_pistacial2s_ep1.p3d","t_pinuse2s_ep1.p3d","t_pinuss3s_ep1.p3d","t_prunuss2s_ep1.p3d","t_pinusn2s.p3d","t_pinusn1s.p3d","t_pinuss2f.p3d","t_poplar2f_dead_pmc.p3d","misc_torzotree_pmc.p3d","misc_burnspruce_pmc.p3d","brg_cocunutpalm8.p3d","brg_umbrella_acacia01b.p3d","brg_jungle_tree_canopy_1.p3d","brg_jungle_tree_canopy_2.p3d","brg_cocunutpalm4.p3d","brg_cocunutpalm3.p3d","palm_04.p3d","brg_cocunutpalm2.p3d","brg_jungle_tree_antiaris.p3d","brg_cocunutpalm1.p3d"];
|
||||
|
||||
_item = _this;
|
||||
call gear_ui_init;
|
||||
|
||||
if (["forest",dayz_surfaceType] call fnc_inString) then {
|
||||
player playActionNow "Medic";
|
||||
[player,20,false,(getPosATL player)] spawn player_alertZombies;
|
||||
|
||||
r_interrupt = false;
|
||||
_animState = animationState player;
|
||||
r_doLoop = true;
|
||||
_started = false;
|
||||
_finished = false;
|
||||
|
||||
while {r_doLoop} do {
|
||||
_animState = animationState player;
|
||||
_isMedic = ["medic",_animState] call fnc_inString;
|
||||
if (_isMedic) then {
|
||||
_started = true;
|
||||
};
|
||||
if (_started and !_isMedic) then {
|
||||
r_doLoop = false;
|
||||
_finished = true;
|
||||
};
|
||||
if (r_interrupt) then {
|
||||
r_doLoop = false;
|
||||
};
|
||||
sleep 0.1;
|
||||
};
|
||||
r_doLoop = false;
|
||||
|
||||
|
||||
if (_finished) then {
|
||||
|
||||
_nearByTrees = 0;
|
||||
|
||||
_findNearestTree = [];
|
||||
{
|
||||
if("" == typeOf _x) then {
|
||||
|
||||
if (alive _x) then {
|
||||
|
||||
_objInfo = toArray(str(_x));
|
||||
_lenInfo = count _objInfo - 1;
|
||||
_objName = [];
|
||||
_i = 0;
|
||||
// determine where the object name starts
|
||||
{
|
||||
if (ASCII_COLON == _objInfo select _i) exitWith {};
|
||||
_i = _i + 1;
|
||||
} forEach _objInfo;
|
||||
_i = _i + 2; // skip the ": " part
|
||||
for "_k" from _i to _lenInfo do {
|
||||
_objName = _objName + [_objInfo select _k];
|
||||
};
|
||||
_objName = toLower(toString(_objName));
|
||||
|
||||
// Exit since we found a tree
|
||||
if (_objName in _trees) exitWith {
|
||||
_findNearestTree set [(count _findNearestTree),_x];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
} foreach nearestObjects [getPos player, [], 5];
|
||||
|
||||
diag_log format["DEBUG TREES: %1", _findNearestTree];
|
||||
|
||||
if (count(_findNearestTree) >= 1) then {
|
||||
|
||||
_result = [player,"PartWoodPile"] call BIS_fnc_invAdd;
|
||||
[player,"chopwood",0,false] call dayz_zombieSpeak;
|
||||
if (_result) then {
|
||||
cutText [localize "str_player_25", "PLAIN DOWN"];
|
||||
_tree = _findNearestTree select 0;
|
||||
|
||||
if("" == typeOf _tree) then {
|
||||
_tree setDamage 1;
|
||||
};
|
||||
|
||||
diag_log format["DEBUG TREE DAMAGE: %1", _tree];
|
||||
} else {
|
||||
cutText [localize "str_player_24", "PLAIN DOWN"];
|
||||
};
|
||||
[player,20,false,(getPosATL player)] spawn player_alertZombies;
|
||||
player playActionNow "Medic";
|
||||
sleep 3;
|
||||
|
||||
} else {
|
||||
cutText [localize "str_player_23", "PLAIN DOWN"];
|
||||
};
|
||||
|
||||
|
||||
} else {
|
||||
r_interrupt = false;
|
||||
[objNull, player, rSwitchMove,""] call RE;
|
||||
player playActionNow "stop";
|
||||
cutText ["Canceled Harvest Wood.", "PLAIN DOWN"];
|
||||
};
|
||||
TradeInprogress = false;
|
||||
@@ -3,7 +3,14 @@ delete object from db with extra waiting by [VB]AWOL
|
||||
parameters: _obj
|
||||
*/
|
||||
private ["_obj","_objectID","_objectUID","_started","_finished","_animState","_isMedic","_isOk","_proceed","_counter","_limit","_id","_objType","_sfx","_dis","_itemOut","_countOut","_textCreate","_selectedRemoveOutput"];
|
||||
|
||||
if(TradeInprogress) exitWith { cutText ["Remove already in progress." , "PLAIN DOWN"]; };
|
||||
TradeInprogress = true;
|
||||
|
||||
_obj = _this select 3;
|
||||
|
||||
if(_obj getVariable ["GeneratorRunning", false]) exitWith {TradeInprogress = false; cutText ["Cannot remove running generator.", "PLAIN DOWN"];};
|
||||
|
||||
_objectID = _obj getVariable ["ObjectID","0"];
|
||||
_objectUID = _obj getVariable ["ObjectUID","0"];
|
||||
|
||||
@@ -16,7 +23,10 @@ if(isNumber (configFile >> "CfgVehicles" >> _objType >> "constructioncount")) th
|
||||
_limit = getNumber(configFile >> "CfgVehicles" >> _objType >> "constructioncount");
|
||||
};
|
||||
|
||||
_findNearestPole = nearestObjects[player, ["Plastic_Pole_EP1_DZ"], 30];
|
||||
_findNearestPoles = nearestObjects[player, ["Plastic_Pole_EP1_DZ"], 30];
|
||||
_findNearestPole = [];
|
||||
{if (alive _x) then {_findNearestPole set [(count _findNearestPole),_x];};} foreach _findNearestPoles;
|
||||
|
||||
_IsNearPlot = count (_findNearestPole);
|
||||
|
||||
if(_IsNearPlot >= 1) then {
|
||||
@@ -29,7 +39,7 @@ if(_IsNearPlot >= 1) then {
|
||||
// check if friendly to owner
|
||||
if(dayz_characterID != _ownerID) then {
|
||||
|
||||
_friendlies = player getVariable ["friendlies",[]];
|
||||
_friendlies = player getVariable ["friendlyTo",[]];
|
||||
// check if friendly to owner
|
||||
if(!(_ownerID in _friendlies)) then {
|
||||
_limit = round(_limit*2);
|
||||
@@ -37,8 +47,6 @@ if(_IsNearPlot >= 1) then {
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
|
||||
cutText [format["Starting de-construction of %1.",_objType], "PLAIN DOWN"];
|
||||
|
||||
// Alert zombies once.
|
||||
@@ -113,17 +121,24 @@ if (_proceed) then {
|
||||
dayzDeleteObj = [_objectID,_objectUID];
|
||||
publicVariableServer "dayzDeleteObj";
|
||||
|
||||
_isWreck = typeOf _obj in ["SKODAWreck","HMMWVWreck","UralWreck","datsun01Wreck","hiluxWreck","datsun02Wreck","UAZWreck","Land_Misc_Garb_Heap_EP1","Fort_Barricade_EP1","Rubbish2"];
|
||||
|
||||
deleteVehicle _obj;
|
||||
|
||||
// give refund items
|
||||
if(_isWreck) then {
|
||||
// Find one random part to give back
|
||||
_refundpart = ["PartEngine","PartGeneric","PartFueltank","PartWheel","PartGlass","ItemJerrycan"] call BIS_fnc_selectRandom;
|
||||
_selectedRemoveOutput = [_refundpart];
|
||||
} else {
|
||||
_selectedRemoveOutput = getArray (configFile >> "CfgVehicles" >> _objType >> "removeoutput");
|
||||
};
|
||||
|
||||
// give refund items
|
||||
if((count _selectedRemoveOutput) > 0) then {
|
||||
// Put items
|
||||
{
|
||||
_itemOut = _x select 0;
|
||||
_countOut = _x select 1;
|
||||
diag_log format["Removal Output: %1 %2", _itemOut,_countOut];
|
||||
|
||||
for "_x" from 1 to _countOut do {
|
||||
player addMagazine _itemOut;
|
||||
};
|
||||
@@ -140,3 +155,4 @@ if (_proceed) then {
|
||||
[objNull, player, rSwitchMove,""] call RE;
|
||||
player playActionNow "stop";
|
||||
};
|
||||
TradeInprogress = false;
|
||||
65
dayz_code/actions/stopGenerator.sqf
Normal file
65
dayz_code/actions/stopGenerator.sqf
Normal file
@@ -0,0 +1,65 @@
|
||||
private ["_vehicle","_started","_finished","_animState","_isMedic"];
|
||||
|
||||
if(TradeInprogress) exitWith { cutText ["Stop already in progress." , "PLAIN DOWN"] };
|
||||
TradeInprogress = true;
|
||||
|
||||
player removeAction s_player_fillgen;
|
||||
|
||||
|
||||
// Use target from addaction
|
||||
_vehicle = _this select 3;
|
||||
|
||||
// force animation
|
||||
player playActionNow "Medic";
|
||||
|
||||
r_interrupt = false;
|
||||
_animState = animationState player;
|
||||
r_doLoop = true;
|
||||
_started = false;
|
||||
_finished = false;
|
||||
|
||||
cutText ["Preparing stop generator, move to cancel.", "PLAIN DOWN"];
|
||||
|
||||
[player,50,true,(getPosATL player)] spawn player_alertZombies;
|
||||
|
||||
while {r_doLoop} do {
|
||||
_animState = animationState player;
|
||||
_isMedic = ["medic",_animState] call fnc_inString;
|
||||
if (_isMedic) then {
|
||||
_started = true;
|
||||
};
|
||||
if (_started and !_isMedic) then {
|
||||
r_doLoop = false;
|
||||
_finished = true;
|
||||
};
|
||||
if (r_interrupt) then {
|
||||
r_doLoop = false;
|
||||
};
|
||||
sleep 0.1;
|
||||
};
|
||||
r_doLoop = false;
|
||||
|
||||
if(!_finished) then {
|
||||
r_interrupt = false;
|
||||
[objNull, player, rSwitchMove,""] call RE;
|
||||
player playActionNow "stop";
|
||||
cutText ["Canceled." , "PLAIN DOWN"]
|
||||
};
|
||||
|
||||
if (_finished) then {
|
||||
|
||||
// find sound and delete
|
||||
_soundObject = _vehicle getVariable "GeneratorSound";
|
||||
|
||||
deleteVehicle _soundObject;
|
||||
|
||||
// Stop generator
|
||||
_vehicle setVariable ["GeneratorRunning", false,true];
|
||||
|
||||
// TODO: Add running sounds to generator
|
||||
cutText ["Generator has been stopped.", "PLAIN DOWN"];
|
||||
|
||||
};
|
||||
|
||||
TradeInprogress = false;
|
||||
s_player_fillgen = -1;
|
||||
@@ -117,13 +117,42 @@ if (_qty >= _qty_in) then {
|
||||
|
||||
} else {
|
||||
|
||||
if((damage _obj) >= 0.75) then {
|
||||
_obj = _obj select 0;
|
||||
|
||||
|
||||
//check make sure there are no fully damaged tires fully
|
||||
_hitpoints = _obj call vehicle_getHitpoints;
|
||||
_okToSell = true;
|
||||
|
||||
// count parts
|
||||
_tires = 0;
|
||||
|
||||
// total damage
|
||||
_tireDmg = 0;
|
||||
|
||||
_damage = 0;
|
||||
{
|
||||
if(["Wheel",_x,false] call fnc_inString) then {
|
||||
_damage = [_obj,_x] call object_getHit;
|
||||
_tireDmg = _tireDmg + _damage;
|
||||
_tires = _tires + 1;
|
||||
};
|
||||
} forEach _hitpoints;
|
||||
|
||||
// find average tire damage
|
||||
if(_tireDmg > 0 and _tires > 0) then {
|
||||
if((_tireDmg / _tires) > 0.75) then {
|
||||
_okToSell = false;
|
||||
};
|
||||
};
|
||||
|
||||
if(_okToSell) then {
|
||||
|
||||
// Sell Vehicle
|
||||
for "_x" from 1 to _qty_out do {
|
||||
player addMagazine _part_out;
|
||||
};
|
||||
|
||||
_obj = _obj select 0;
|
||||
_objectID = _obj getVariable ["ObjectID","0"];
|
||||
_objectUID = _obj getVariable ["ObjectUID","0"];
|
||||
|
||||
@@ -134,11 +163,7 @@ if (_qty >= _qty_in) then {
|
||||
deleteVehicle _obj;
|
||||
|
||||
cutText [format[("Sold %1 %2 for %3 %4"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"];
|
||||
} else {
|
||||
_dampercent = (damage _obj) * 100;
|
||||
cutText [format[("Cannot sell %1 it is %2% damaged and cannot be sold under 75%."),_textPartIn,_dampercent], "PLAIN DOWN"];
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
{player removeAction _x} forEach s_player_parts;s_player_parts = [];
|
||||
|
||||
@@ -1075,6 +1075,52 @@ class Citizen1; // External class reference
|
||||
transportMaxWeapons = 6;
|
||||
transportMaxMagazines = 30;
|
||||
};
|
||||
|
||||
class DZ_LargeGunBag_EP1: Bag_Base_EP1
|
||||
{
|
||||
scope = 2;
|
||||
displayName = "Large Gunbag";
|
||||
model = "\ca\weapons_e\AmmoBoxes\StaticX.p3d";
|
||||
picture = "\ca\weapons_e\data\icons\staticX_CA.paa";
|
||||
icon = "\ca\weapons_e\data\icons\mapIcon_backpack_CA.paa";
|
||||
mapsize = 2;
|
||||
transportMaxWeapons = 10;
|
||||
transportMaxMagazines = 45;
|
||||
};
|
||||
class DZ_GunBag_EP1: Bag_Base_EP1
|
||||
{
|
||||
scope = 2;
|
||||
displayName = "Gunbag";
|
||||
model = "\ca\weapons_e\AmmoBoxes\StaticY.p3d";
|
||||
picture = "\ca\weapons_e\data\icons\staticY_CA.paa";
|
||||
icon = "\ca\weapons_e\data\icons\mapIcon_backpack_CA.paa";
|
||||
mapsize = 2;
|
||||
transportMaxWeapons = 6;
|
||||
transportMaxMagazines = 8;
|
||||
};
|
||||
class DZ_CompactPack_EP1: Bag_Base_EP1
|
||||
{
|
||||
scope = 2;
|
||||
displayName = "Compact Pack";
|
||||
picture = "\ca\weapons_e\data\icons\backpack_RPG_CA.paa";
|
||||
icon = "\ca\weapons_e\data\icons\mapIcon_backpack_CA.paa";
|
||||
mapsize = 2;
|
||||
model = "\ca\weapons_e\AmmoBoxes\backpack_rpg.p3d";
|
||||
transportMaxWeapons = 1;
|
||||
transportMaxMagazines = 18;
|
||||
};
|
||||
class DZ_TerminalPack_EP1: Bag_Base_EP1
|
||||
{
|
||||
scope = 2;
|
||||
displayName = "Terminal Pack";
|
||||
picture = "\ca\weapons_e\data\icons\backpack_US_ASSAULT_CA.paa";
|
||||
icon = "\ca\weapons_e\data\icons\mapIcon_backpack_CA.paa";
|
||||
mapSize = 2;
|
||||
model = "\ca\weapons_e\AmmoBoxes\backpack_us_AUV";
|
||||
transportMaxWeapons = 1;
|
||||
transportMaxMagazines = 12;
|
||||
};
|
||||
|
||||
//An2_TK_EP1
|
||||
class An2_Base_EP1;
|
||||
class AN2_DZ: An2_Base_EP1
|
||||
|
||||
@@ -347,16 +347,35 @@ if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cu
|
||||
};
|
||||
|
||||
//Start Generator
|
||||
if(cursorTarget isKindOf "Generator_DZ" and _canDo and ("ItemJerrycan" in magazines player) and (cursorTarget getVariable ["GeneratorRunning", false])) then {
|
||||
if(cursorTarget isKindOf "Generator_DZ" and _canDo) 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, "",""];
|
||||
} 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, "",""];
|
||||
} 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, "",""];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
} else {
|
||||
player removeAction s_player_fillgen;
|
||||
s_player_fillgen = -1;
|
||||
};
|
||||
|
||||
|
||||
// not the right place for this...
|
||||
// Find if fuel pump is within 5 meters.
|
||||
// If so then look for a generator within 30m of pump
|
||||
// and if generator is running
|
||||
// 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 {
|
||||
|
||||
@@ -40,7 +40,7 @@ class CfgMods
|
||||
hidePicture = 0;
|
||||
hideName = 0;
|
||||
action = "http://www.dayzepoch.com";
|
||||
version = "1.0.0.5";
|
||||
version = "1.0.0.6";
|
||||
hiveVersion = 0.96; //0.93
|
||||
};
|
||||
};
|
||||
@@ -478,6 +478,7 @@ class CfgBuildingLoot {
|
||||
{ "Winchester1866","weapon" },
|
||||
{ "WeaponHolder_ItemTent","object" },
|
||||
{ "WeaponHolder_ItemTentDomed","object" },
|
||||
{ "WeaponHolder_ItemTentDomed2","object" },
|
||||
{ "","military" },
|
||||
{ "","trash" },
|
||||
{"Crossbow_DZ","weapon"},
|
||||
@@ -512,6 +513,7 @@ class CfgBuildingLoot {
|
||||
0.01,
|
||||
0.01,
|
||||
0.01,
|
||||
0.01,
|
||||
0.03,
|
||||
0.5,
|
||||
0.01,
|
||||
@@ -535,6 +537,7 @@ class CfgBuildingLoot {
|
||||
lootPos[] = {};
|
||||
itemType[] = {
|
||||
{ "WeaponHolder_ItemGenerator","object" },
|
||||
{ "WeaponHolder_ItemFuelBarrel","object" },
|
||||
{ "","generic" },
|
||||
{ "","trash" },
|
||||
{ "","military" },
|
||||
@@ -552,7 +555,8 @@ class CfgBuildingLoot {
|
||||
{"ItemTankTrap","magazine"}
|
||||
};
|
||||
itemChance[] = {
|
||||
0.01,
|
||||
0.005,
|
||||
0.005,
|
||||
0.18,
|
||||
0.29,
|
||||
0.04,
|
||||
@@ -587,7 +591,7 @@ class CfgBuildingLoot {
|
||||
{ "PartWoodPile","magazine" },
|
||||
{ "WeaponHolder_ItemHatchet","object" },
|
||||
{ "MR43","weapon" },
|
||||
//{"TrapBear","magazine"},
|
||||
{ "WeaponHolder_ItemFuelBarrel","object" },
|
||||
{"WeaponHolder_ItemMachete", "object"}
|
||||
};
|
||||
itemChance[] = {
|
||||
@@ -601,7 +605,7 @@ class CfgBuildingLoot {
|
||||
0.11,
|
||||
0.17,
|
||||
0.06,
|
||||
//0.01,
|
||||
0.005,
|
||||
0.03
|
||||
};
|
||||
};
|
||||
@@ -629,10 +633,13 @@ class CfgBuildingLoot {
|
||||
{"DZ_ALICE_Pack_EP1","object"}, // 16
|
||||
{"DZ_TK_Assault_Pack_EP1","object"}, // 16
|
||||
{"DZ_British_ACU","object"}, // 18
|
||||
{"DZ_CompactPack_EP1","object"}, // 18-1
|
||||
{"DZ_TerminalPack_EP1","object"}, // 12-1
|
||||
|
||||
{ "Winchester1866","weapon" },
|
||||
{ "WeaponHolder_ItemTent","object" },
|
||||
{ "WeaponHolder_ItemTentDomed","object" },
|
||||
{ "WeaponHolder_ItemTentDomed2","object" },
|
||||
|
||||
{ "","food" },
|
||||
{ "","trash" },
|
||||
@@ -658,9 +665,12 @@ class CfgBuildingLoot {
|
||||
0.02, //16
|
||||
0.02, //16
|
||||
0.01, //18
|
||||
0.01, // 18-1
|
||||
0.01, // 12-1
|
||||
0.01,
|
||||
0.01,
|
||||
0.01,
|
||||
0.005,
|
||||
0.005,
|
||||
0.005,
|
||||
0.3,
|
||||
0.15,
|
||||
0.01,
|
||||
@@ -835,6 +845,7 @@ class HeliCrash_No50s: Default {
|
||||
{"DZ_British_ACU","object"}, // 18
|
||||
{"DZ_CivilBackpack_EP1","object"}, // 24
|
||||
{"DZ_Backpack_EP1","object"}, // 24
|
||||
{"DZ_GunBag_EP1","object"}, // 8-6
|
||||
|
||||
//Normal
|
||||
{ "","medical" },
|
||||
@@ -880,6 +891,7 @@ class HeliCrash_No50s: Default {
|
||||
0.06, //18
|
||||
0.01, //24
|
||||
0.01, //DZ_Backpack_EP1 24
|
||||
0.01, // DZ_GunBag_EP1
|
||||
0.10,
|
||||
1.00,
|
||||
2.50,
|
||||
@@ -942,7 +954,8 @@ class HeliCrash_No50s: Default {
|
||||
{"DZ_TK_Assault_Pack_EP1","object"}, // 16
|
||||
{"DZ_British_ACU","object"}, // 18
|
||||
{"DZ_CivilBackpack_EP1","object"}, // 24
|
||||
{"DZ_Backpack_EP1","object"}, // 24
|
||||
{"DZ_Backpack_EP1","object"}, // 30
|
||||
{"DZ_LargeGunBag_EP1","object"}, // 45
|
||||
|
||||
{ "","medical" },
|
||||
{ "","generic" },
|
||||
@@ -2854,7 +2867,7 @@ class HeliCrash_No50s: Default {
|
||||
class land_AII_last_floor: MilitarySpecial {
|
||||
lootPos[] = {{-1.73975,-7.99756,11.6976},{-1.73975,-7.99756,11.6976},{-1.20801,5.45605,4.6129},{-3.82813,2.81494,5.46183}};
|
||||
};
|
||||
class land_AII_middle_floor: Military {
|
||||
class land_AII_middle_floor: MilitarySpecial {
|
||||
lootPos[] = {{-7.64941,4.97412,0.510368},{-7.7207,5.10498,0.510216},{-7.27979,-0.931152,0.518509},{8.47461,-2.3252,-4.63377},{9.20508,0.508301,-4.63377},{4.36768,3.7998,-4.63377},{-0.669434,2.74805,-4.63377},{-10.3594,5.03516,-4.63377},{-13.9766,9.10059,-4.63377},{-8.021,1.22314,-4.63377},{6.07227,-2.64551,-4.63377},{-8.75293,8.79297,-2.10379}};
|
||||
};
|
||||
class land_x_skladiste_low_tex: Industrial {
|
||||
|
||||
@@ -384,7 +384,7 @@ if(isNil "dayz_oldrefuel") then {
|
||||
dayz_updateObjects = ["Car", "Helicopter", "Motorcycle", "Ship", "TentStorage", "VaultStorage","M240Nest_DZ","OutHouse_DZ","Wooden_shed_DZ","WoodShack_DZ","StorageShed_DZ"];
|
||||
dayz_disallowedVault = ["TentStorage", "BuiltItems"];
|
||||
dayz_reveal = ["AllVehicles","WeaponHolder","TentStorage","VaultStorage","VaultStorageLocked","BuiltItems"];
|
||||
dayz_allowedObjects = ["TentStorage","TentStorageDomed", "VaultStorageLocked", "Hedgehog_DZ", "Sandbag1_DZ","TrapBear","Fort_RazorWire","WoodGate_DZ","Land_HBarrier1_DZ","Fence_corrugated_DZ","M240Nest_DZ","CanvasHut_DZ","ParkBench_DZ","MetalGate_DZ","OutHouse_DZ","Wooden_shed_DZ","WoodShack_DZ","StorageShed_DZ","Plastic_Pole_EP1_DZ","Generator_DZ"];
|
||||
dayz_allowedObjects = ["TentStorage","TentStorageDomed","TentStorageDomed2", "VaultStorageLocked", "Hedgehog_DZ", "Sandbag1_DZ","TrapBear","Fort_RazorWire","WoodGate_DZ","Land_HBarrier1_DZ","Fence_corrugated_DZ","M240Nest_DZ","CanvasHut_DZ","ParkBench_DZ","MetalGate_DZ","OutHouse_DZ","Wooden_shed_DZ","WoodShack_DZ","StorageShed_DZ","Plastic_Pole_EP1_DZ","Generator_DZ"];
|
||||
|
||||
dayz_spawnPos = getPosATL player;
|
||||
|
||||
|
||||
@@ -137,7 +137,7 @@ class RscDisplayMain : RscStandardDisplay
|
||||
class DAYZ_Version : CA_Version
|
||||
{
|
||||
idc = -1;
|
||||
text = "DayZ Epoch 1.0.0.5 dev (1.7.6.1)";
|
||||
text = "DayZ Epoch 1.0.0.6 dev (1.7.6.1)";
|
||||
y = "(SafeZoneH + SafeZoneY) - (1 - 0.95)";
|
||||
};
|
||||
delete CA_TitleMainMenu;
|
||||
|
||||
@@ -1366,7 +1366,7 @@ class CfgMagazines
|
||||
neednearby[] = {"fire"};
|
||||
requiretools[] = {"ItemToolbox","ItemCrowbar"};
|
||||
output[] = {{"ItemPole",1}};
|
||||
input[] = {{"PartGeneric",2},{"ItemTankTrap",1}};
|
||||
input[] = {{"PartGeneric",1},{"ItemTankTrap",1}};
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -1434,7 +1434,7 @@ class CfgMagazines
|
||||
neednearby[] = {"fire"};
|
||||
requiretools[] = {"ItemToolbox","ItemCrowbar"};
|
||||
output[] = {{"ItemCorrugated",1}};
|
||||
input[] = {{"ItemPole",2},{"PartGeneric",4},{"PartWoodLumber",2}};
|
||||
input[] = {{"ItemPole",1},{"PartGeneric",2},{"ItemTankTrap",1},{"PartWoodLumber",2}};
|
||||
};
|
||||
class Crafting1
|
||||
{
|
||||
@@ -1486,6 +1486,17 @@ class CfgMagazines
|
||||
input[] = {{"PartWoodPile",1},{"ItemTrashRazor",1}};
|
||||
|
||||
};
|
||||
class Crafting2
|
||||
{
|
||||
text = "Craft Stick Fence";
|
||||
script = "spawn player_craftItem2;";
|
||||
neednearby[] = {};
|
||||
requiretools[] = {"ItemToolbox","ItemKnife"};
|
||||
output[] = {{"stick_fence_kit",1}};
|
||||
input[] = {{"PartWoodPile",6}};
|
||||
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
class PartWoodLumber: CA_Magazine
|
||||
@@ -2225,6 +2236,26 @@ class CfgMagazines
|
||||
};
|
||||
};
|
||||
};
|
||||
class stick_fence_kit: CA_Magazine
|
||||
{
|
||||
scope = 2;
|
||||
count = 1;
|
||||
type = 256;
|
||||
displayName = "Stick Fence";
|
||||
descriptionShort = "Stick Fence";
|
||||
model = "\dayz_equip\models\supply_crate.p3d";
|
||||
picture = "\dayz_equip\textures\equip_wooden_crate_ca.paa";
|
||||
class ItemActions
|
||||
{
|
||||
class Build
|
||||
{
|
||||
text = "$STR_ACTIONS_BUILD";
|
||||
script = "spawn player_build;";
|
||||
require[] = {"ItemEtool","ItemToolbox"};
|
||||
create = "StickFence_DZ";
|
||||
};
|
||||
};
|
||||
};
|
||||
class wooden_shed_kit: CA_Magazine
|
||||
{
|
||||
scope = 2;
|
||||
@@ -2616,8 +2647,21 @@ class CfgVehicles
|
||||
constructioncount = 5;
|
||||
removeoutput[] = {{"ItemGenerator",1}};
|
||||
};
|
||||
|
||||
|
||||
class FuelPump_DZ: BuiltItems
|
||||
{
|
||||
scope = 2;
|
||||
destrType = "DestructNo";
|
||||
cost = 100;
|
||||
offset[] = {0,2,0};
|
||||
model = "\ca\Structures_E\Ind\Ind_FuelStation\Ind_FuelStation_Feed_ep1.p3d";
|
||||
icon = "\ca\data\data\Unknown_object.paa";
|
||||
mapSize = 2;
|
||||
armor = 400;
|
||||
displayName = "Fuel Pump";
|
||||
vehicleClass = "Fortifications";
|
||||
constructioncount = 5;
|
||||
// removeoutput[] = {{"ItemFuelPump",1}};
|
||||
};
|
||||
|
||||
class Fort_RazorWire : BuiltItems {
|
||||
scope = 2;
|
||||
@@ -2799,6 +2843,16 @@ class CfgVehicles
|
||||
transportMaxWeapons = 20;
|
||||
transportMaxBackpacks = 10;
|
||||
};
|
||||
|
||||
class Wall_FenW2_6_EP1;
|
||||
class StickFence_DZ: Wall_FenW2_6_EP1
|
||||
{
|
||||
scope = 2;
|
||||
offset[] = {0,2.5,0};
|
||||
displayName = "Stick Fence";
|
||||
vehicleClass = "Fortifications";
|
||||
};
|
||||
|
||||
class WoodGate_DZ: BuiltItems
|
||||
{
|
||||
scope = 2;
|
||||
@@ -2976,6 +3030,16 @@ class CfgVehicles
|
||||
init = "[(_this select 0),'cfgMagazines','ItemTentDomed'] execVM '\z\addons\dayz_code\init\object_pickupAction.sqf';";
|
||||
};
|
||||
};
|
||||
class WeaponHolder_ItemTentDomed2: WeaponHolderBase
|
||||
{
|
||||
scope = 2;
|
||||
displayName = "Domed Green Tent";
|
||||
model = "\dayz_equip\proxy\tentbag.p3d";
|
||||
class eventHandlers
|
||||
{
|
||||
init = "[(_this select 0),'cfgMagazines','ItemTentDomed2'] execVM '\z\addons\dayz_code\init\object_pickupAction.sqf';";
|
||||
};
|
||||
};
|
||||
class WeaponHolder_ItemVault: WeaponHolderBase
|
||||
{
|
||||
scope = 2;
|
||||
@@ -3160,6 +3224,16 @@ class CfgVehicles
|
||||
transportMaxBackpacks = 7;
|
||||
create = "WeaponHolder_ItemTentDomed";
|
||||
};
|
||||
class TentStorageDomed2: TentStorage
|
||||
{
|
||||
displayName = "Green Domed Tent";
|
||||
vehicleClass = "Survival";
|
||||
model = "\ca\Misc_E\Astan_ep1.p3d";
|
||||
transportMaxMagazines = 75;
|
||||
transportMaxWeapons = 12;
|
||||
transportMaxBackpacks = 7;
|
||||
create = "WeaponHolder_ItemTentDomed2";
|
||||
};
|
||||
class VaultStorage: Land_A_tent
|
||||
{
|
||||
vehicleClass = "Survival";
|
||||
|
||||
@@ -8,7 +8,6 @@ _class = _this select 3;
|
||||
_allowed = [_object, "Server"] call check_publishobject;
|
||||
if (!_allowed) exitWith { deleteVehicle _object; };
|
||||
|
||||
|
||||
//diag_log ("PUBLISH: Attempt " + str(_object));
|
||||
|
||||
//get UID
|
||||
@@ -21,11 +20,11 @@ _key call server_hiveWrite;
|
||||
|
||||
_object setVariable ["lastUpdate",time];
|
||||
_object setVariable ["ObjectUID", _uid,true];
|
||||
_object setVariable ["characterID",dayz_characterID,true];
|
||||
// _object setVariable ["characterID",_charID,true];
|
||||
|
||||
if ((typeOf _object) in dayz_allowedObjects) then {
|
||||
_object addMPEventHandler ["MPKilled",{_this call vehicle_handleServerKilled;}];
|
||||
};
|
||||
// Test disabling simulation server side on buildables only.
|
||||
_object enableSimulation false;
|
||||
|
||||
dayz_serverObjectMonitor set [count dayz_serverObjectMonitor,_object];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user