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:
vbawol
2013-04-27 19:11:24 -05:00
parent e3ffa8edf8
commit 53bb1b9075
14 changed files with 455 additions and 79 deletions

View File

@@ -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;

View File

@@ -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;

View File

@@ -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";

View File

@@ -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;

View File

@@ -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;

View 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;

View File

@@ -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 = [];

View File

@@ -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

View File

@@ -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 {

View File

@@ -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 {

View File

@@ -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;

View File

@@ -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;

View File

@@ -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";

View File

@@ -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];