1.0.0.7 Developer Build

+ [CHANGED] Build-ables now get deleted from database when killed.
+ [ADDED] Basic fishing on ocean using toolbelt item: ItemFishingPole.
TODO: add model
+ [ADDED] New way of chopping down trees that actually takes into
account the size of the tree for number of chops/output. For example
medium sized tree will typically require 3 animations and will yield 3
wood piles.
+ [ADDED] Airplane dealer to Namalsk and updated trader config.
+ [CHANGED] Can now remove park bench with refund.
+ [FIXED] dayz_maxGlobalZombies was not incrementing when other players
are within 400m. Also, variable was overwritten in player_spawncheck
code so a init variable was added dayz_maxGlobalZombiesInit (default=40)
as well as dayz_maxGlobalZombiesIncrease (default=10) to control the
amount of increase for each additional player within range.
+ [CHANGED] Any backpack placed on the ground will with gear will now
disappear to all other players.
+ [FIXED] Added 5 second sleep to swimming in ground fix, now it should
actually work without glitching. fixes #326
+ [CHANGED] To prevent lost primary weapons in backpacks, all backpacks
have been Upgraded. This requires that backpacks the weapon to magazines
ratio be within 1:10. http://dayzepoch.com/wiki/index.php/Backpacks
+ [CLEANUP] disable debug of player zombie vision.
+ [ADDED] ASC EU Lights Mod FROM
http://www.armaholic.com/page.php?id=12076
+ [ADDED] New Craft-able light_pole_kit and Build-able LightPole_DZ for
night lighting. RECIPE 4 lumber + 1 scrap + 1 Light Bulb
+ [ADDED] MAP Editorupgrade (EU) @MAP Mod FROM
http://www.armaholic.com/page.php?id=6194
+ [CHANGED] Picking up crowbar now gives toolbelt item instead of melee
weapon.
This commit is contained in:
vbawol
2013-05-04 15:21:57 -05:00
parent eeb6c3cddb
commit 3cbb79051e
32 changed files with 515 additions and 170 deletions

View File

@@ -45,7 +45,7 @@ AllowedVehiclesList = [
["UH1H_DZ",2],
["Mi17_Civilian_DZ",3],
["Mi17_DZ",1],
["CH_47F_EP1",1],
["CH_47F_EP1_DZ",1],
["LandRover_CZ_EP1",2],
["HMMWV_Ambulance",2],
["HMMWV_DES_EP1",1],

View File

@@ -25,7 +25,7 @@ MaxDynamicDebris = 300; // Default = 100
dayz_MapArea = 8000; // Default = 10000
dayz_maxLocalZombies = 80; // Default = 40
dayz_maxGlobalZombies = 60; // Default = 30
dayz_maxGlobalZombiesInit = 60; // Default = 40
dayz_maxZeds = 1000; // Default = 500
// new stuff

View File

@@ -149,6 +149,23 @@ class CfgWeapons {
};
};
};
class ItemFishingPole: ItemCore
{
scope=2;
displayName="Fishing Pole";
// TODO MODEL AND ICON
model="\dayz_equip\models\crowbar.p3d";
picture="\dayz_weapons\textures\equip_crowbar_CA.paa";
descriptionShort="Fishing Pole and with lure.";
class ItemActions
{
class Use
{
text="Cast Fishing Pole";
script="spawn player_goFishing;";
};
};
};
class MeleeMachete: MeleeHatchet
{
scope=2;

View File

@@ -0,0 +1,104 @@
private ["_vehicle","_curFuel","_newFuel","_started","_finished","_animState","_isMedic","_location1","_location2","_abort","_canName","_canSizeEmpty","_canTypeEmpty","_canName","_canSize","_configCan","_configVeh","_capacity","_nameText","_availableCansEmpty","_availableCans"];
if(TradeInprogress) exitWith { cutText ["Refuel already in progress." , "PLAIN DOWN"] };
TradeInprogress = true;
// Get all nearby vehicles within 10m
_findNearestVehicles = nearestObjects [player, ["AllVehicles"], 10];
_findNearestVehicle = [];
{
if (alive _x and !(_x isKindOf "Man")) then {
_findNearestVehicle set [(count _findNearestVehicle),_x];
};
} foreach _findNearestVehicles;
_IsNearVehicle = count (_findNearestVehicle);
if(_IsNearVehicle >= 1) then {
// select the nearest one
_vehicle = _findNearestVehicle select 0;
// Static vehicle fuel information
_configVeh = configFile >> "cfgVehicles" >> TypeOf(_vehicle);
_capacity = getNumber(_configVeh >> "fuelCapacity");
_nameText = getText(_configVeh >> "displayName");
_isOk = true;
// perform fuel up
while {_isOk} do {
// qty to add per loop
_canSize = 20;
cutText [format["Filling up %1, move to cancel.",_nameText], "PLAIN DOWN"];
// alert zombies
[player,20,true,(getPosATL player)] spawn player_alertZombies;
_finished = false;
// force animation
player playActionNow "Medic";
r_interrupt = false;
_animState = animationState player;
r_doLoop = true;
_started = 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 {
r_interrupt = false;
[objNull, player, rSwitchMove,""] call RE;
player playActionNow "stop";
_abort = true;
};
if (_finished) then {
// Get vehicle fuel levels again
_curFuel = ((fuel _vehicle) * _capacity);
_newFuel = (_curFuel + 20);
if (_newFuel > _capacity) then {_newFuel = _capacity; _abort = true; };
// calculate minimum needed fuel
_newFuel = (_newFuel / _capacity);
dayzSetFuel = [_vehicle,_newFuel];
if (local _vehicle) then {
dayzSetFuel spawn local_setFuel;
};
publicVariable "dayzSetFuel";
// Play sound
[player,"refuel",0,false] call dayz_zombieSpeak;
cutText [format["%1 filled to %2 percent capacity.",_nameText,round(_newFuel*100)], "PLAIN DOWN"];
};
if(_abort) exitWith {};
sleep 1;
};
} else {
cutText ["No Vehicles Nearby.", "PLAIN DOWN"];
};
TradeInprogress = false;

View File

@@ -4,7 +4,7 @@ if(TradeInprogress) exitWith { cutText ["Refuel already in progress." , "PLAIN D
TradeInprogress = true;
player removeAction s_player_fillgen;
s_player_fillgen = 1;
// Use target from addaction
_vehicle = _this select 3;

View File

@@ -5,5 +5,8 @@ _vehicle = _this select 3;
s_player_lockUnlock_crtl = -1;
_vehicle setVehicleInit "this lock true; this lockCargo true;";
processInitCommands;
//_vehicle lock true;
//dayzLockVehicle = [_vehicle,true];
//publicVariable "dayzLockVehicle";

View File

@@ -17,7 +17,7 @@ _text = getText (configFile >> _type >> _classname >> "displayName");
_claimedBy = _holder getVariable["claimed","0"];
// Check if any players are nearby if not allow player to claim item.
_playerNear = {isPlayer _x} count (player nearEntities ["Man", 6]) > 1;
_playerNear = {isPlayer _x} count (player nearEntities ["CAManBase", 6]) > 1;
// Only allow if not already claimed.
if (_claimedBy == "0" or !_playerNear) then {
@@ -57,7 +57,7 @@ if(_classname isKindOf "Bag_Base_EP1") then {
};
// test to see if item still exists just before adding and removing
if(_holder == objNull) exitWith {};
if(_holder == objNull) exitWith { TradeInprogress = false; };
_obj = nearestObjects [(getPosATL player), [(typeOf _holder)], 5];
_qty = count _obj;

View File

@@ -252,7 +252,8 @@ if (_hasrequireditem) then {
//["dayzPublishObj",[dayz_characterID,_tmpbuilt,[_dir,_location],_classname]] call callRpcProcedure;
dayzPublishObj = [dayz_characterID,_tmpbuilt,[_dir,_location],_classname];
publicVariableServer "dayzPublishObj";
publicVariableServer "dayzPublishObj";
} else {
deleteVehicle _tmpbuilt;
cutText ["Canceled building." , "PLAIN DOWN"];

View File

@@ -1,4 +1,4 @@
private["_item","_location","_isOk","_dir","_classname"];
private ["_item","_isOk","_i","_objName","_objInfo","_lenInfo","_started","_finished","_sfx","_dis","_animState","_isMedic","_proceed","_counter","_objType","_limit","_itemOut","_countOut","_tree","_distance2d","_distance3d","_trees","_findNearestTree"];
if(TradeInprogress) exitWith { cutText ["Harvest wood already in progress." , "PLAIN DOWN"]; };
TradeInprogress = true;
@@ -9,95 +9,131 @@ _trees = ["t_picea3f.p3d","t_picea2s.p3d","t_picea1s.p3d","t_fagus2w.p3d","t_fag
_item = _this;
call gear_ui_init;
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 {
_findNearestTree = [];
{
if("" == typeOf _x) then {
if (alive _x) then {
if (alive _x) then {
_objInfo = toArray(str(_x));
_lenInfo = count _objInfo - 1;
_objName = [];
_i = 0;
// determine where the object name starts
{
if (58 == _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));
_objInfo = toArray(str(_x));
_lenInfo = count _objInfo - 1;
_objName = [];
_i = 0;
// determine where the object name starts
{
if (58 == _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];
// Exit since we found a tree
if (_objName in _trees) exitWith {
_findNearestTree set [(count _findNearestTree),_x];
};
};
};
} foreach nearestObjects [getPos player, [], 20];
diag_log format["DEBUG TREES: %1", _findNearestTree];
if (count(_findNearestTree) >= 1) then {
_tree = _findNearestTree select 0;
// get 2d distance
_distance2d = [player, _tree] call BIS_fnc_distance2D;
_distance3d = player distance _tree;
if(_distance2d <= 5) then {
_countOut = ceil(_distance3d-_distance2d);
diag_log format["DEBUG TREE DISTANCE: %1 - %2 = %3", _distance3d,_distance2d,(_distance3d-_distance2d)];
// Start chop tree loop
_counter = 0;
_isOk = true;
_proceed = false;
while {_isOk} do {
player playActionNow "Medic";
[player,20,true,(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;
[player,"chopwood",0,false] call dayz_zombieSpeak;
};
if (r_interrupt) then {
r_doLoop = false;
};
sleep 0.1;
};
if(!_finished) exitWith {
_isOk = false;
_proceed = false;
};
if(_finished) then {
_counter = _counter + 1;
};
cutText ["Chopping down tree, walk away at anytime to cancel.", "PLAIN DOWN"];
if(_counter == _countOut) exitWith {
_isOk = false;
_proceed = true;
};
};
} foreach nearestObjects [getPos player, [], 5];
if (_proceed) then {
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;
_itemOut = "PartWoodPile";
for "_x" from 1 to _countOut do {
player addMagazine _itemOut;
};
// chop down tree
if("" == typeOf _tree) then {
_tree setDamage 1;
};
diag_log format["DEBUG TREE DAMAGE: %1", _tree];
cutText [format["%1 piles of wood has been successfully added to your inventory.", _countOut], "PLAIN DOWN"];
} else {
cutText [localize "str_player_24", "PLAIN DOWN"];
r_interrupt = false;
[objNull, player, rSwitchMove,""] call RE;
player playActionNow "stop";
cutText ["Canceled Harvesting Wood.", "PLAIN DOWN"];
};
} 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"];
cutText [localize "str_player_23", "PLAIN DOWN"];
};
TradeInprogress = false;

View File

@@ -0,0 +1,56 @@
private ["_item","_isOk","_i","_objName","_objInfo","_lenInfo","_started","_finished","_sfx","_dis","_animState","_isMedic","_proceed","_counter","_objType","_limit","_itemOut","_countOut","_tree","_distance2d","_distance3d","_trees","_findNearestTree"];
if(TradeInprogress) exitWith { cutText ["Fishing already in progress." , "PLAIN DOWN"]; };
TradeInprogress = true;
_item = _this;
call gear_ui_init;
// find position in front of player
_position = player modeltoworld [0,5,0];
if(!(surfaceIsWater _position)) exitWith { TradeInprogress = false; cutText ["Must be near a shore or on a boat to fish." , "PLAIN DOWN"]; };
player playActionNow "Medic";
[player,20,true,(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;
[player,"fillwater",0,false] call dayz_zombieSpeak;
};
if (r_interrupt) then {
r_doLoop = false;
};
sleep 0.1;
};
if (_finished) then {
_itemOut = "FoodCanSardines"; // TODO replace with random raw fishes
_countOut = round(random 4);
for "_x" from 1 to _countOut do {
player addMagazine _itemOut;
};
cutText [format["You caught %1 fish.", _countOut], "PLAIN DOWN"];
} else {
r_interrupt = false;
[objNull, player, rSwitchMove,""] call RE;
player playActionNow "stop";
cutText ["Canceled Fishing.", "PLAIN DOWN"];
};
TradeInprogress = false;

View File

@@ -117,13 +117,21 @@ if (_proceed) then {
if(!isNull(_obj)) then {
cutText [format["De-constructing %1.",_objType], "PLAIN DOWN"];
// TODO add hideobject to have it sink into ground then delete
dayzHideObject = _obj;
hideObject _obj; // local player
publicVariable "dayzHideObject"; // remote player
sleep 5;
//["dayzDeleteObj",[_objectID,_objectUID]] call callRpcProcedure;
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;
_selectedRemoveOutput = [];
if(_isWreck) then {
// Find one random part to give back

View File

@@ -4,7 +4,7 @@ if(TradeInprogress) exitWith { cutText ["Stop already in progress." , "PLAIN DOW
TradeInprogress = true;
player removeAction s_player_fillgen;
s_player_fillgen = 1;
// Use target from addaction
_vehicle = _this select 3;

View File

@@ -5,7 +5,9 @@ _vehicle = _this select 3;
s_player_lockUnlock_crtl = -1;
_vehicle setVehicleInit "this lock false; this lockCargo false;";
processInitCommands;
// Wiki states that lock is globally brodcast but the variable has to be local
//_vehicle lock false;
//dayzLockVehicle = [_vehicle,false];
//publicVariable "dayzLockVehicle";

View File

@@ -1,4 +0,0 @@
private["_hasKnife","_qty","_item","_text","_string","_type","_loop","_meat","_timer"];
_item = _this select 3;
player playMove "GestureSwing"

View File

@@ -5,19 +5,21 @@ class CfgLoot {
"TrashJackDaniels",
"ItemSodaEmpty",
"ItemTrashToiletpaper",
"ItemTrashRazor"
"ItemTrashRazor",
"ItemLightBulb"
},
{
1,
0.1,
0.5,
0.4,
0.2
0.2,
0.05
}
};
civilian[] = {
{
"TrashTinCan",
"FoodCanUnlabeled",
"TrashJackDaniels",
"ItemSodaEmpty",
"ItemSodaCoke",
@@ -91,7 +93,7 @@ class CfgLoot {
};
generic[] = {
{
"TrashTinCan",
"FoodCanUnlabeled",
"ItemSodaEmpty",
"ItemSodaCoke",
"ItemSodaPepsi",
@@ -187,7 +189,7 @@ class CfgLoot {
};
military[] = {
{
"TrashTinCan",
"FoodCanUnlabeled",
"ItemSodaEmpty",
"ItemSodaCoke",
"ItemSodaPepsi",
@@ -317,7 +319,7 @@ class CfgLoot {
worker[] = {
{
"TrashTinCan",
"FoodCanUnlabeled",
"TrashJackDaniels",
"ItemSodaEmpty",
"ItemSodaCoke",

View File

@@ -989,7 +989,7 @@ class Citizen1; // External class reference
mapsize = 2;
model = "\ca\weapons_e\AmmoBoxes\backpack_us_assault_Coyote.p3d";
transportMaxWeapons = 1;
transportMaxMagazines = 8;
transportMaxMagazines = 10;
};
class DZ_Assault_Pack_EP1: Bag_Base_EP1
@@ -1025,7 +1025,7 @@ class Citizen1; // External class reference
mapsize = 2;
model = "\ca\weapons_e\AmmoBoxes\backpack_tk_alice.p3d";
transportMaxWeapons = 2;
transportMaxMagazines = 16;
transportMaxMagazines = 20;
};
class DZ_TK_Assault_Pack_EP1 : Bag_Base_BAF
@@ -1037,7 +1037,7 @@ class Citizen1; // External class reference
icon = "\ca\weapons_e\data\icons\mapIcon_backpack_CA.paa";
model = "\ca\weapons_e\AmmoBoxes\backpack_civil_assault.p3d";
transportMaxWeapons = 2;
transportMaxMagazines = 16;
transportMaxMagazines = 22;
};
class DZ_British_ACU : Bag_Base_BAF
@@ -1049,7 +1049,7 @@ class Citizen1; // External class reference
picture = "\ca\weapons_baf\data\UI\backpack_BAF_CA.paa";
icon = "\ca\weapons_e\data\icons\mapIcon_backpack_CA.paa";
transportMaxWeapons = 3;
transportMaxMagazines = 18;
transportMaxMagazines = 30;
};
class DZ_CivilBackpack_EP1: Bag_Base_EP1
@@ -1061,7 +1061,7 @@ class Citizen1; // External class reference
mapsize = 2;
model = "\ca\weapons_e\AmmoBoxes\backpack_acr.p3d";
transportMaxWeapons = 4;
transportMaxMagazines = 24;
transportMaxMagazines = 40;
};
class DZ_Backpack_EP1: Bag_Base_EP1
@@ -1072,8 +1072,8 @@ class Citizen1; // External class reference
icon = "\ca\weapons_e\data\icons\mapIcon_backpack_CA.paa";
mapsize = 2;
model = "\ca\weapons_e\AmmoBoxes\backpack_us.p3d";
transportMaxWeapons = 6;
transportMaxMagazines = 30;
transportMaxWeapons = 5;
transportMaxMagazines = 50;
};
class DZ_LargeGunBag_EP1: Bag_Base_EP1
@@ -1084,8 +1084,8 @@ class Citizen1; // External class reference
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;
transportMaxWeapons = 6;
transportMaxMagazines = 60;
};
class DZ_GunBag_EP1: Bag_Base_EP1
{
@@ -1095,8 +1095,8 @@ class Citizen1; // External class reference
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;
transportMaxWeapons = 3;
transportMaxMagazines = 35;
};
class DZ_CompactPack_EP1: Bag_Base_EP1
{
@@ -1106,8 +1106,8 @@ class Citizen1; // External class reference
icon = "\ca\weapons_e\data\icons\mapIcon_backpack_CA.paa";
mapsize = 2;
model = "\ca\weapons_e\AmmoBoxes\backpack_rpg.p3d";
transportMaxWeapons = 1;
transportMaxMagazines = 18;
transportMaxWeapons = 2;
transportMaxMagazines = 25;
};
class DZ_TerminalPack_EP1: Bag_Base_EP1
{
@@ -1118,7 +1118,7 @@ class Citizen1; // External class reference
mapSize = 2;
model = "\ca\weapons_e\AmmoBoxes\backpack_us_AUV";
transportMaxWeapons = 1;
transportMaxMagazines = 12;
transportMaxMagazines = 15;
};
//An2_TK_EP1

View File

@@ -50,7 +50,7 @@ if (_canPickLight and !dayz_hasLight and !_isPZombie) then {
s_player_grabflare = -1;
s_player_removeflare = -1;
};
hint str(typeOf cursorTarget);
if(DZEdebug) then {
hint str(typeOf cursorTarget);
@@ -71,39 +71,7 @@ if(_isPZombie) then {
};
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"];
player addAction ["Aperture + 0.1", "\z\addons\dayz_code\actions\pzombie\pz_vision_ap.sqf", [0.1], 0, false, true, "", "_this == _target"];
player addAction ["Aperture - 0.1", "\z\addons\dayz_code\actions\pzombie\pz_vision_ap.sqf", [-0.1], 0, false, true, "", "_this == _target"];
player addAction ["First R + 0.1", "\z\addons\dayz_code\actions\pzombie\pz_vision_rbg1.sqf", ["NV1",[0.1,0,0,0]], 0, false, true, "", "_this == _target"];
player addAction ["First R - 0.1", "\z\addons\dayz_code\actions\pzombie\pz_vision_rbg1.sqf", ["NV1",[-0.1,0,0,0]], 0, false, true, "", "_this == _target"];
player addAction ["First B + 0.1", "\z\addons\dayz_code\actions\pzombie\pz_vision_rbg1.sqf", ["NV1",[0,0.1,0,0]], 0, false, true, "", "_this == _target"];
player addAction ["First B - 0.1", "\z\addons\dayz_code\actions\pzombie\pz_vision_rbg1.sqf", ["NV1",[0,-0.1,0,0]], 0, false, true, "", "_this == _target"];
player addAction ["First G + 0.1", "\z\addons\dayz_code\actions\pzombie\pz_vision_rbg1.sqf", ["NV1",[0,0,0.1,0]], 0, false, true, "", "_this == _target"];
player addAction ["First G - 0.1", "\z\addons\dayz_code\actions\pzombie\pz_vision_rbg1.sqf", ["NV1",[0,0,-0.1,0]], 0, false, true, "", "_this == _target"];
player addAction ["First M + 0.1", "\z\addons\dayz_code\actions\pzombie\pz_vision_rbg1.sqf", ["NV1",[0,0,0,0.1]], 0, false, true, "", "", "_this == _target"];
player addAction ["First M - 0.1", "\z\addons\dayz_code\actions\pzombie\pz_vision_rbg1.sqf", ["NV1",[0,0,0,-0.1]], 0, false, true, "", "", "_this == _target"];
player addAction ["Second R + 0.1", "\z\addons\dayz_code\actions\pzombie\pz_vision_rbg1.sqf", ["NV2",[0.1,0,0,0]], 0, false, true, "", "_this == _target"];
player addAction ["Second R - 0.1", "\z\addons\dayz_code\actions\pzombie\pz_vision_rbg1.sqf", ["NV2",[-0.1,0,0,0]], 0, false, true, "", "_this == _target"];
player addAction ["Second B + 0.1", "\z\addons\dayz_code\actions\pzombie\pz_vision_rbg1.sqf", ["NV2",[0,0.1,0,0]], 0, false, true, "", "_this == _target"];
player addAction ["Second B - 0.1", "\z\addons\dayz_code\actions\pzombie\pz_vision_rbg1.sqf", ["NV2",[0,-0.1,0,0]], 0, false, true, "", "_this == _target"];
player addAction ["Second G + 0.1", "\z\addons\dayz_code\actions\pzombie\pz_vision_rbg1.sqf", ["NV2",[0,0,0.1,0]], 0, false, true, "", "_this == _target"];
player addAction ["Second G - 0.1", "\z\addons\dayz_code\actions\pzombie\pz_vision_rbg1.sqf", ["NV2",[0,0,-0.1,0]], 0, false, true, "", "_this == _target"];
player addAction ["Second M + 0.1", "\z\addons\dayz_code\actions\pzombie\pz_vision_rbg1.sqf", ["NV2",[0,0,0,0.1]], 0, false, true, "", "_this == _target"];
player addAction ["Second M - 0.1", "\z\addons\dayz_code\actions\pzombie\pz_vision_rbg1.sqf", ["NV2",[0,0,0,-0.1]], 0, false, true, "", "_this == _target"];
player addAction ["Third R + 0.1", "\z\addons\dayz_code\actions\pzombie\pz_vision_rbg1.sqf", ["NV3",[0.1,0,0,0]], 0, false, true, "", "_this == _target"];
player addAction ["Third R - 0.1", "\z\addons\dayz_code\actions\pzombie\pz_vision_rbg1.sqf", ["NV3",[-0.1,0,0,0]], 0, false, true, "", "_this == _target"];
player addAction ["Third B + 0.1", "\z\addons\dayz_code\actions\pzombie\pz_vision_rbg1.sqf", ["NV3",[0,0.1,0,0]], 0, false, true, "", "_this == _target"];
player addAction ["Third B - 0.1", "\z\addons\dayz_code\actions\pzombie\pz_vision_rbg1.sqf", ["NV3",[0,-0.1,0,0]], 0, false, true, "", "_this == _target"];
player addAction ["Third G + 0.1", "\z\addons\dayz_code\actions\pzombie\pz_vision_rbg1.sqf", ["NV3",[0,0,0.1,0]], 0, false, true, "", "_this == _target"];
player addAction ["Third G - 0.1", "\z\addons\dayz_code\actions\pzombie\pz_vision_rbg1.sqf", ["NV3",[0,0,-0.1,0]], 0, false, true, "", "_this == _target"];
player addAction ["Third M + 0.1", "\z\addons\dayz_code\actions\pzombie\pz_vision_rbg1.sqf", ["NV3",[0,0,0,0.1]], 0, false, true, "", "_this == _target"];
player addAction ["Third M - 0.1", "\z\addons\dayz_code\actions\pzombie\pz_vision_rbg1.sqf", ["NV3",[0,0,0,-0.1]], 0, false, true, "", "_this == _target"];
};
if (!isNull cursorTarget and (player distance cursorTarget < 3)) then { //Has some kind of target
@@ -149,7 +117,7 @@ if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cu
_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"];
_isRemovable = typeOf cursorTarget in ["Fence_corrugated_DZ","M240Nest_DZ","ParkBench_DZ"];
_isDisallowRepair = typeOf cursorTarget in ["M240Nest_DZ"];
_isTent = cursorTarget isKindOf "TentStorage";
@@ -168,7 +136,7 @@ if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cu
} forEach _rawmeat;
if (_hasFuelE and dayz_oldrefuel) then {
_isFuel = (cursorTarget isKindOf "Land_Ind_TankSmall") or (cursorTarget isKindOf "Land_fuel_tank_big") or (cursorTarget isKindOf "Land_fuel_tank_stairs") or (cursorTarget isKindOf "Land_fuel_tank_stairs_ep1") or (cursorTarget isKindOf "Land_wagon_tanker") or (cursorTarget isKindOf "Land_fuelstation") or (cursorTarget isKindOf "Land_fuelstation_army");
_isFuel = (cursorTarget isKindOf "Land_Ind_TankSmall") or (cursorTarget isKindOf "Land_fuel_tank_big") or (cursorTarget isKindOf "Land_fuel_tank_stairs") or (cursorTarget isKindOf "Land_fuel_tank_stairs_ep1") or (cursorTarget isKindOf "Land_wagon_tanker") or (cursorTarget isKindOf "Land_fuelstation") or (cursorTarget isKindOf "Land_fuelstation_army") or (cursorTarget isKindOf "land_fuelstation_w");
};
// diag_log ("OWNERID = " + _ownerID + " CHARID = " + dayz_characterID + " " + str(_ownerID == dayz_characterID));
@@ -345,6 +313,32 @@ if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cu
player removeAction s_player_information;
s_player_information = -1;
};
//Fuel Pump
if((typeOf cursorTarget) in dayz_fuelpumparray and _canDo) 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];
_findNearestGen = [];
{
if (alive _x and (_x getVariable ["GeneratorRunning", false])) then {
_findNearestGen set [(count _findNearestGen),_x];
};
} foreach _findNearestGens;
_IsNearRunningGen = count (_findNearestGen);
// show that pump needs power if no generator nearby.
if(_IsNearRunningGen > 0) then {
s_player_fuelauto = player addAction ["Fill Vehicle", "\z\addons\dayz_code\actions\fill_nearestVehicle.sqf",[], 0, false, true, "",""];
} else {
s_player_fuelauto = player addAction ["<t color='#ff0000'>Needs Power</t>", "",[], 0, false, true, "",""];
};
};
} else {
player removeAction s_player_fuelauto;
s_player_fuelauto = -1;
};
//Start Generator
if(cursorTarget isKindOf "Generator_DZ" and _canDo) then {

View File

@@ -0,0 +1,7 @@
private ["_vehicle","_status"];
_vehicle = _this select 0;
_status = _this select 1;
//if (local _vehicle) then {
_vehicle lock _status;
//};

View File

@@ -37,7 +37,9 @@ if (_anim4 == "aswm") then {
// Stops swimming in ground
[objNull, player, rSwitchMove,""] call RE;
player playActionNow "stop";
// This sleep was much needed
sleep 5;
dayz_isSwimming = false;
};

View File

@@ -0,0 +1,13 @@
private ["_weapons","_magazines","_weaponscnt","_magazinescnt","_backpack"];
_backpack = nearestObject [player, "Bag_Base_EP1"];
if (!(isNull _backpack) and local _backpack) then {
_weapons = getWeaponCargo _backpack;
_magazines = getMagazineCargo _backpack;
_weaponscnt = count (_weapons select 0);
_magazinescnt = count (_magazines select 0);
if((_magazinescnt > 0) or (_weaponscnt > 0)) then {
// hide backpack from everyone else
dayzHideObject = _backpack;
publicVariable "dayzHideObject";
};
};

View File

@@ -45,10 +45,12 @@ switch (_nearbytype) do {
};
*/
_players = _position nearEntities ["AllPlayers",_radius+200];
dayz_maxGlobalZombies = 40;
_players = _position nearEntities ["CAManBase",_radius+200];
dayz_maxGlobalZombies = dayz_maxGlobalZombiesInit;
{
dayz_maxGlobalZombies = dayz_maxGlobalZombies + 10;
if(isPlayer _x) then {
dayz_maxGlobalZombies = dayz_maxGlobalZombies + dayz_maxGlobalZombiesIncrease;
};
} foreach _players;
_spawnZombies = _position nearEntities ["zZombie_Base",_radius+100];

View File

@@ -20,7 +20,7 @@ class CfgPatches {
units[] = {};
weapons[] = {};
requiredVersion = 0.1;
requiredAddons[] = {"dayz_equip","dayz_weapons","dayz_sfx","CAMisc3","CABuildingParts","CABuildingParts_Signs","CAStructuresHouse","CAStructuresLand_Ind_Stack_Big","CAStructures_Misc_Powerlines","CAStructures","CABuildings","CABuildings2","Ind_MalyKomin","CAStructures_A_CraneCon","CAStructures_Mil","CAStructures_Nav","CAStructures_Rail","A_Crane_02","A_TVTower","CAStructures_Railway","CAStructuresHouse","CAStructuresHouse_HouseBT"};
requiredAddons[] = {"dayz_equip","dayz_weapons","dayz_sfx","CAMisc3","CABuildingParts","CABuildingParts_Signs","CAStructuresHouse","CAStructuresLand_Ind_Stack_Big","CAStructures_Misc_Powerlines","CAStructures","CABuildings","CABuildings2","Ind_MalyKomin","CAStructures_A_CraneCon","CAStructures_Mil","CAStructures_Nav","CAStructures_Rail","A_Crane_02","A_TVTower","CAStructures_Railway","CAStructuresHouse","CAStructuresHouse_HouseBT","asc_eu_lights"};
};
class DZ_DebriefingRemoved
{
@@ -40,7 +40,7 @@ class CfgMods
hidePicture = 0;
hideName = 0;
action = "http://www.dayzepoch.com";
version = "1.0.0.6";
version = "1.0.0.7";
hiveVersion = 0.96; //0.93
};
};
@@ -633,8 +633,8 @@ 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
{"DZ_CompactPack_EP1","object"}, //
{"DZ_TerminalPack_EP1","object"}, //
{ "Winchester1866","weapon" },
{ "WeaponHolder_ItemTent","object" },

View File

@@ -20,6 +20,7 @@ if (!isDedicated) then {
player_weaponFiredNear = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_weaponFiredNear.sqf";
player_animalCheck = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_animalCheck.sqf";
player_spawnCheck = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_spawnCheck.sqf";
player_dumpBackpack = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_dumpBackpack.sqf";
player_spawnLootCheck = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_spawnlootCheck.sqf";
player_spawnZedCheck = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_spawnzedCheck.sqf";
building_spawnLoot = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\building_spawnLoot.sqf";
@@ -87,6 +88,7 @@ if (!isDedicated) then {
player_fillWater = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\water_fill.sqf";
player_makeFire = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_makefire.sqf";
player_chopWood = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_chopWood.sqf";
player_goFishing = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_goFishing.sqf";
player_build = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_build.sqf";
player_wearClothes = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_wearClothes.sqf";
player_dropWeapon = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_dropWeapon.sqf";
@@ -434,6 +436,7 @@ if (!isDedicated) then {
dayz_zombieSpeak = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\object_speak.sqf"; //Used to generate random speech for a unit
vehicle_getHitpoints = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\vehicle_getHitpoints.sqf";
local_gutObject = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\local_gutObject.sqf"; //Generated on the server (or local to unit) when gutting an object
local_lockUnlock = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\local_lockUnlock.sqf"; //When vehicle is local to unit perform locking vehicle
local_gutObjectZ = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\local_gutObjectZ.sqf"; //Generated on the server (or local to unit) when gutting an object
local_zombieDamage = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_damageHandlerZ.sqf"; //Generated by the client who created a zombie to track damage
local_setFuel = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\local_setFuel.sqf"; //Generated when someone refuels a vehicle

View File

@@ -12,6 +12,8 @@
"dayzHit" addPublicVariableEventHandler {(_this select 1) call fnc_usec_damageHandler};
"dayzHitV" addPublicVariableEventHandler {(_this select 1) call fnc_usec_damageVehicle};
"dayzHideBody" addPublicVariableEventHandler {hideBody (_this select 1)};
"dayzHideObject" addPublicVariableEventHandler {hideObject (_this select 1)};
"dayzLockVehicle" addPublicVariableEventHandler {(_this select 1) spawn local_lockUnlock};
"dayzGutBody" addPublicVariableEventHandler {(_this select 1) spawn local_gutObject};
"dayzGutBodyZ" addPublicVariableEventHandler {(_this select 1) spawn local_gutObjectZ};
"dayzDelLocal" addPublicVariableEventHandler {(_this select 1) call object_delLocal};

View File

@@ -15,7 +15,7 @@ Soldier1_DZ = "Soldier1_DZ";
Rocket_DZ = "Rocket_DZ";
AllPlayers = ["Survivor2_DZ","SurvivorWcombat_DZ","SurvivorWdesert_DZ","SurvivorWurban_DZ","SurvivorWpink_DZ","SurvivorW3_DZ","SurvivorW2_DZ","Bandit1_DZ","Bandit2_DZ","BanditW1_DZ","BanditW2_DZ","Soldier_Crew_PMC","Sniper1_DZ","Camo1_DZ","Soldier1_DZ","Rocket_DZ","Rocker2_DZ","Priest_DZ","Functionary1_EP1_DZ","GUE_Commander_DZ","Ins_Soldier_GL_DZ","Haris_Press_EP1_DZ","Pilot_EP1_DZ","RU_Policeman_DZ","pz_policeman","pz_suit1","pz_suit2","pz_worker1","pz_worker2","pz_worker3","pz_doctor","pz_teacher","pz_hunter","pz_villager1","pz_villager2","pz_villager3","pz_priest","Soldier_TL_PMC_DZ","Soldier_Sniper_PMC_DZ","Soldier_Bodyguard_AA12_PMC_DZ","Drake_Light_DZ","CZ_Special_Forces_GL_DES_EP1_DZ","TK_INS_Soldier_EP1_DZ","TK_INS_Warlord_EP1_DZ","FR_OHara_DZ","FR_Rodriguez_DZ","CZ_Soldier_Sniper_EP1_DZ","Graves_Light_DZ"];
AllPlayersVehicles = ["AllVehicles"]+AllPlayers;
// AllPlayersVehicles = ["AllVehicles"]+AllPlayers;
//Cooking
meatraw = [
@@ -222,6 +222,7 @@ dayz_resetSelfActions = {
s_player_followdog = -1;
s_player_repair_crtl = -1;
s_player_information = -1;
s_player_fuelauto = -1;
s_player_fillgen = -1;
};
call dayz_resetSelfActions;
@@ -361,8 +362,11 @@ dayz_zSpawnDistance = 1000;
if(isNil "dayz_maxLocalZombies") then {
dayz_maxLocalZombies = 40;
};
if(isNil "dayz_maxGlobalZombies") then {
dayz_maxGlobalZombies = 30;
if(isNil "dayz_maxGlobalZombiesInit") then {
dayz_maxGlobalZombiesInit = 40;
};
if(isNil "dayz_maxGlobalZombiesIncrease") then {
dayz_maxGlobalZombiesIncrease = 10;
};
if(isNil "dayz_maxZeds") then {
dayz_maxZeds = 500;
@@ -384,7 +388,9 @@ 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","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","StickFence_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","StickFence_DZ","LightPole_DZ","FuelPump_DZ"];
dayz_fuelpumparray = ["FuelPump_DZ","Land_A_FuelStation_Feed","Land_Ind_FuelStation_Feed_EP1","Land_FuelStation_Feed_PMC","FuelStation","Land_ibr_FuelStation_Feed","Land_fuelstation_army","Land_fuelstation","land_fuelstation_w"];
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.6 dev (1.7.6.1)";
text = "DayZ Epoch 1.0.0.7 dev (1.7.6.1)";
y = "(SafeZoneH + SafeZoneY) - (1 - 0.95)";
};
delete CA_TitleMainMenu;

View File

@@ -537,9 +537,9 @@
<Czech>Pro vytvoření ohniště je nutné mít v inventáři dřevo.</Czech>
</Key>
<Key ID="str_player_23">
<Original>You must be in a forest and close to a tree to harvest wood.</Original>
<English>You must be in a forest and close to a tree to harvest wood.</English>
<German>Sie müssen in einem Wald in der Nähe eines Baums sein, um Holz zu sammeln.</German>
<Original>You must be close to a tree to harvest wood.</Original>
<English>You must be close to a tree to harvest wood.</English>
<German>Sie müssen Nähe eines Baums sein, um Holz zu sammeln.</German>
<Russian>Вы должны находится в лесу и подойти к дереву, чтобы нарубить дров.</Russian>
<Spanish>Debes estar en el bosque y cerca de un árbol para recoger leña.</Spanish>
<Dutch>Je moet in een bos en in de buurt van een boom zijn om hout te hakken.</Dutch>

View File

@@ -34,9 +34,9 @@ item29[] = {"Load_In",2,250,-75.000000,850.000000,25.000000,900.000000,0.000000,
item30[] = {"Bad_Version",4,218,50.000000,650.000000,150.000000,700.000000,0.000000,"Bad" \n "Version"};
item31[] = {"ERROR__Bad_Versi",2,250,175.000000,650.000000,275.000000,700.000000,0.000000,"ERROR:" \n "Bad Version"};
item32[] = {"Display_Ready",4,218,-175.000000,900.000000,-75.000000,950.000000,0.000000,"Display" \n "Ready"};
item33[] = {"Preload_Display",2,4346,-75.000000,950.000000,25.000000,1000.000000,0.000000,"Preload" \n "Display"};
item33[] = {"Preload_Display",2,250,-75.000000,950.000000,25.000000,1000.000000,0.000000,"Preload" \n "Display"};
item34[] = {"Preload_Done",4,218,-175.000000,1000.000000,-75.000000,1050.000000,0.000000,"Preload" \n "Done"};
item35[] = {"Initialize",2,250,-75.000000,1050.000000,25.000000,1100.000000,0.000000,"Initialize"};
item35[] = {"Initialize",2,4346,-75.000000,1050.000000,25.000000,1100.000000,0.000000,"Initialize"};
item36[] = {"Finish",1,250,-75.000000,1150.000000,25.000000,1200.000000,0.000000,"Finish"};
item37[] = {"True",8,218,25.000000,1100.000000,125.000000,1150.000000,0.000000,"True"};
item38[] = {"Too_Long",4,218,300.000000,150.000000,400.000000,200.000000,0.000000,"Too" \n "Long"};
@@ -119,8 +119,8 @@ link59[] = {51,52};
link60[] = {52,29};
link61[] = {53,54};
link62[] = {54,20};
globals[] = {25.000000,1,0,0,0,640,480,1,85,6316128,1,-390.091248,277.974548,1239.554443,681.356201,754,630,1};
window[] = {2,-1,-1,-1,-1,786,26,997,26,3,772};
globals[] = {25.000000,1,0,0,0,640,480,1,85,6316128,1,-390.091248,277.974548,1208.543457,428.837982,567,630,1};
window[] = {2,-1,-1,-1,-1,760,22,993,0,3,585};
*//*%FSM</HEAD>*/
class FSM
{
@@ -1130,6 +1130,13 @@ class FSM
" sleep 60;" \n
" };" \n
"};" \n
"" \n
"dayz_backpackcheck = [] spawn {" \n
" while {true} do {" \n
" call player_dumpBackpack;" \n
" sleep 1;" \n
" };" \n
"};" \n
"//Removed for now" \n
"//[] execVM ""\z\addons\dayz_code\system\antihack.sqf"";" \n
"" \n

View File

@@ -1329,6 +1329,17 @@ class CfgMagazines
};
};
};
class ItemLightBulb: CA_Magazine
{
scope = 2;
count = 1;
type = 256;
displayName = "Light Bulb";
// TODO model + texture
model = "\dayz_equip\models\fad.p3d";
picture = "\dayz_equip\textures\equip_fad_ca.paa";
descriptionShort = "Light Bulb";
};
class PartFueltank: CA_Magazine
{
scope = 2;
@@ -2236,6 +2247,46 @@ class CfgMagazines
};
};
};
class fuel_pump_kit: CA_Magazine
{
scope = 2;
count = 1;
type = 256;
displayName = "Fuel Pump";
descriptionShort = "Fuel Pump";
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 = "FuelPump_DZ";
};
};
};
class light_pole_kit: CA_Magazine
{
scope = 2;
count = 1;
type = 256;
displayName = "Light Pole";
descriptionShort = "Light Pole";
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 = "LightPole_DZ";
};
};
};
class stick_fence_kit: CA_Magazine
{
scope = 2;
@@ -2660,7 +2711,7 @@ class CfgVehicles
displayName = "Fuel Pump";
vehicleClass = "Fortifications";
constructioncount = 5;
// removeoutput[] = {{"ItemFuelPump",1}};
removeoutput[] = {{"ItemFuelPump",1}};
};
class Fort_RazorWire : BuiltItems {
@@ -2736,6 +2787,8 @@ class CfgVehicles
class USMC_WarfareBMGNest_M240;
class M240Nest_DZ: USMC_WarfareBMGNest_M240
{
destrType = "DestructBuilding";
armor = 450;
scope = 2;
offset[] = {0,3.5,0};
displayName = "M240 Nest";
@@ -2750,6 +2803,7 @@ class CfgVehicles
class Land_covering_hut_EP1;
class CanvasHut_DZ: Land_covering_hut_EP1
{
armor = 200;
scope = 2;
offset[] = {0,2.5,1};
displayName = "Canvas Hut";
@@ -2762,10 +2816,12 @@ class CfgVehicles
offset[] = {0,1.5,0.5};
displayName = "Wood Bench";
vehicleClass = "Fortifications";
removeoutput[] = {{"park_bench_kit",1}};
};
class Land_Wall_Gate_Ind1_L;
class MetalGate_DZ: Land_Wall_Gate_Ind1_L
{
armor = 400;
scope = 2;
offset[] = {0,2.5,1};
displayName = "Rusty Gate";
@@ -2775,6 +2831,7 @@ class CfgVehicles
class Land_KBud;
class OutHouse_DZ: Land_KBud
{
armor = 200;
scope = 2;
offset[] = {0,2.5,1};
displayName = "Outhouse";
@@ -2795,6 +2852,7 @@ class CfgVehicles
class Land_Shed_M01;
class StorageShed_DZ: Land_Shed_M01
{
armor = 400;
scope = 2;
offset[] = {0,2.5,1};
displayName = "Storage Shed";
@@ -2807,6 +2865,7 @@ class CfgVehicles
class Fence_corrugated_plate;
class Fence_corrugated_DZ: Fence_corrugated_plate
{
armor = 300;
scope = 2;
offset[] = {0,2.5,1};
removeoutput[] = {{"ItemCorrugated",1}};
@@ -2818,10 +2877,9 @@ class CfgVehicles
class WoodShack_DZ: Land_kulna
{
scope = 2;
//destrType = "DestructBuilding";
//cost = 100;
destrType = "DestructBuilding";
offset[] = {0,2.5,1.3};
//armor = 200;
armor = 200;
displayName = "Wooden Shack";
vehicleClass = "Fortifications";
transportMaxMagazines = 100;
@@ -2833,10 +2891,10 @@ class CfgVehicles
class Wooden_shed_DZ: Land_Shed_wooden
{
scope = 2;
//destrType = "DestructBuilding";
destrType = "DestructBuilding";
//cost = 100;
offset[] = {0,2.5,1};
//armor = 100;
armor = 400;
displayName = "Wooden Shed";
vehicleClass = "Fortifications";
transportMaxMagazines = 200;
@@ -2847,12 +2905,22 @@ class CfgVehicles
class Wall_FenW2_6_EP1;
class StickFence_DZ: Wall_FenW2_6_EP1
{
destrType = "DestructTree";
armor = 200;
scope = 2;
offset[] = {0,2.5,0};
displayName = "Stick Fence";
vehicleClass = "Fortifications";
};
class ASC_EU_LHVOld;
class LightPole_DZ: ASC_EU_LHVOld
{
armor = 200;
scope = 2;
offset[] = {0,2.5,0};
displayName = "Light Pole";
vehicleClass = "Fortifications";
};
class WoodGate_DZ: BuiltItems
{
scope = 2;
@@ -2987,7 +3055,7 @@ class CfgVehicles
model = "\dayz_equip\models\crowbar.p3d";
class eventHandlers
{
init = "[(_this select 0),'cfgWeapons','MeleeCrowbar'] execVM '\z\addons\dayz_code\init\object_pickupAction.sqf';";
init = "[(_this select 0),'cfgWeapons','ItemCrowbar'] execVM '\z\addons\dayz_code\init\object_pickupAction.sqf';";
};
};
class WeaponHolder_huntingrifle: WeaponHolderBase

View File

@@ -22,7 +22,7 @@ _object setVariable ["lastUpdate",time];
_object setVariable ["ObjectUID", _uid,true];
// _object setVariable ["characterID",_charID,true];
_object addMPEventHandler ["MPKilled",{_this call vehicle_handleServerKilled;}];
_object addMPEventHandler ["MPKilled",{_this call object_handleServerKilled;}];
// Test disabling simulation server side on buildables only.
_object enableSimulation false;

View File

@@ -49,6 +49,22 @@ vehicle_handleServerKilled = {
_unit removeAllEventHandlers "GetOut";
};
object_handleServerKilled = {
private["_unit","_objectID","_objectUID"];
_unit = _this select 0;
_objectID = _unit getVariable ["ObjectID","0"];
_objectUID = _unit getVariable ["ObjectUID","0"];
[_objectID,_objectUID] call server_deleteObj;
_unit removeAllMPEventHandlers "MPKilled";
_unit removeAllEventHandlers "Killed";
_unit removeAllEventHandlers "HandleDamage";
_unit removeAllEventHandlers "GetIn";
_unit removeAllEventHandlers "GetOut";
};
check_publishobject = {
private["_allowed","_object","_playername","_allowedObjects"];

View File

@@ -99,7 +99,7 @@ serverVehicleCounter = [];
clearMagazineCargoGlobal _object;
if ((typeOf _object) in dayz_allowedObjects) then {
_object addMPEventHandler ["MPKilled",{_this call vehicle_handleServerKilled;}];
_object addMPEventHandler ["MPKilled",{_this call object_handleServerKilled;}];
// Test disabling simulation server side on buildables only.
_object enableSimulation false;
};