diff --git a/dayz_code/actions/build.sqf b/dayz_code/actions/build.sqf index 38780df50..5170cccdd 100644 --- a/dayz_code/actions/build.sqf +++ b/dayz_code/actions/build.sqf @@ -1,6 +1,8 @@ private["_location","_isOk","_dir","_classname","_item"]; + _location = player modeltoworld [0,1,0]; _location set [2,0]; + _onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1; _isWater = (surfaceIsWater _location) or dayz_isSwimming; @@ -17,23 +19,86 @@ _hasbuilditem = _this in magazines player; if (!_hasbuilditem) exitWith {cutText [format[(localize "str_player_31"),_text,"build"] , "PLAIN DOWN"]}; +// Get inital direction of player _dir = getDir player; -player removeMagazine _item; -player playActionNow "Medic"; -sleep 1; -[player,"repair",0,false] call dayz_zombieSpeak; -_id = [player,50,true,(getPosATL player)] spawn player_alertZombies; -sleep 5; +_offset_x = 0; +_offset_y = 1.5; +_offset_z = 0; +_offset_z_attach = 0.5; + +// Start Preview loop +_tmpbuilt = createVehicle ["_classname", _location, [], 0, "CAN_COLLIDE"]; +_tmpbuilt setdir _dir; +_tmpbuilt attachTo [player,[_offset_x,_offset_y,_offset_z_attach]]; + +_cancel = false; +_counter = 0; +_isOk = true; + +while {_isOk} do { -player allowDamage false; -_object = createVehicle [_classname, _location, [], 0, "CAN_COLLIDE"]; -_object setDir _dir; -player reveal _object; + if(_counter == 0) then { + cutText ["Planning consruction stand still 5 seconds to build.", "PLAIN DOWN"]; + sleep 5; + _location1 = getPosATL player; + sleep 5; + _location2 = getPosATL player; + + if(_location1 distance _location2 < 0.1) exitWith { + + cutText ["Started consruction move within 5 seconds to cancel.", "PLAIN DOWN"]; + _location3 = getPosATL player; + sleep 5; + _location4 = getPosATL player; -cutText [format[localize "str_build_01",_text], "PLAIN DOWN"]; + if(_location3 distance _location4 > 0.1) exitWith { + _isOk = false; + _cancel = true; + }; -["dayzPublishObj",[dayz_characterID,_object,[_dir,_location],_classname]] call callRpcProcedure; + _isOk = false; + }; + }; + if(_counter >= 1) exitWith { + _isOk = false; + _cancel = true; + }; + _counter = _counter + 1; +}; -sleep 2; -player allowDamage true; \ No newline at end of file +detach _tmpbuilt; + +// Get location of detached tmp built +_built_location = (getPosATL _tmpbuilt); + +// force to ground +_built_location set [2,0]; + +if(!_cancel) then { + + _dir = getDir player; + + player removeMagazine _item; + + player playActionNow "Medic"; + sleep 1; + [player,"repair",0,false] call dayz_zombieSpeak; + _id = [player,50,true,(getPosATL player)] spawn player_alertZombies; + sleep 5; + + player allowDamage false; + _object = createVehicle [_classname, _built_location, [], 0, "CAN_COLLIDE"]; + _object setDir _dir; + player reveal _object; + + cutText [format[localize "str_build_01",_text], "PLAIN DOWN"]; + + ["dayzPublishObj",[dayz_characterID,_object,[_dir,_location],_classname]] call callRpcProcedure; + + sleep 2; + player allowDamage true; + +} else { + cutText [format["Canceled construction of %1.",_text], "PLAIN DOWN"]; +}; \ No newline at end of file diff --git a/dayz_code/actions/player_build.sqf b/dayz_code/actions/player_build.sqf index 4952fb07c..197ffc043 100644 --- a/dayz_code/actions/player_build.sqf +++ b/dayz_code/actions/player_build.sqf @@ -22,26 +22,91 @@ if (!_hasbuilditem) exitWith {cutText [format[(localize "str_player_31"),_text," if (_text == "TrapBear") then { _bypass = true; }; if (_hasrequireditem or _bypass) then { + _dir = getDir player; - player removeMagazine _item; - player playActionNow "Medic"; - sleep 1; - [player,"repair",0,false] call dayz_zombieSpeak; - _id = [player,50,true,(getPosATL player)] spawn player_alertZombies; - sleep 5; + _offset_x = 0; + _offset_y = 1.5; + _offset_z = 0; + _offset_z_attach = 0.5; + + // Start Preview loop + _tmpbuilt = createVehicle [_classname, _location, [], 0, "CAN_COLLIDE"]; + _tmpbuilt setdir _dir; + _tmpbuilt attachTo [player,[_offset_x,_offset_y,_offset_z_attach]]; + + _cancel = false; + _counter = 0; + _isOk = true; + + + + while {_isOk} do { + + if(_counter == 0) then { + cutText ["Planning consruction stand still 5 seconds to build.", "PLAIN DOWN"]; + sleep 5; + _location1 = getPosATL player; + sleep 5; + _location2 = getPosATL player; + + if(_location1 distance _location2 < 0.1) exitWith { + + cutText ["Started consruction move within 5 seconds to cancel.", "PLAIN DOWN"]; + _location3 = getPosATL player; + sleep 5; + _location4 = getPosATL player; + + if(_location3 distance _location4 > 0.1) exitWith { + _isOk = false; + _cancel = true; + }; + + _isOk = false; + }; + }; + if(_counter >= 1) exitWith { + _isOk = false; + _cancel = true; + }; + _counter = _counter + 1; + }; + + detach _tmpbuilt; + + // Get location of detached tmp built + _built_location = (getPosATL _tmpbuilt); + + deleteVehicle _tmpbuilt; + + if(!_cancel) then { + + _dir = getDir player; + player removeMagazine _item; + + player playActionNow "Medic"; + sleep 1; + [player,"repair",0,false] call dayz_zombieSpeak; + _id = [player,50,true,(getPosATL player)] spawn player_alertZombies; + sleep 5; - player allowDamage false; - _object = createVehicle [_classname, _location, [], 0, "CAN_COLLIDE"]; - _object setDir _dir; - player reveal _object; + player allowDamage false; + _object = createVehicle [_classname, _built_location, [], 0, "CAN_COLLIDE"]; + _object setDir _dir; + player reveal _object; - cutText [format[localize "str_build_01",_text], "PLAIN DOWN"]; + cutText [format[localize "str_build_01",_text], "PLAIN DOWN"]; - ["dayzPublishObj",[dayz_characterID,_object,[_dir,_location],_classname]] call callRpcProcedure; + ["dayzPublishObj",[dayz_characterID,_object,[_dir,_location],_classname]] call callRpcProcedure; + + sleep 2; + player allowDamage true; + + + } else { + cutText [format["Canceled construction of %1.",_text], "PLAIN DOWN"]; + }; - sleep 2; - player allowDamage true; } else { cutText [format[localize "str_build_failed_01",_text], "PLAIN DOWN"]; }; \ No newline at end of file diff --git a/dayz_code/actions/player_craftItem.sqf b/dayz_code/actions/player_craftItem.sqf index a0425d43f..45b815c85 100644 --- a/dayz_code/actions/player_craftItem.sqf +++ b/dayz_code/actions/player_craftItem.sqf @@ -100,26 +100,6 @@ if (inflamed cursorTarget and _canDo) then { [ ["ItemCopperBar10oz",1] ] ]; - _recipe_ItemTinBar10oz = [ - [ ["ItemTinBar10oz",1] ], - [ ["ItemTinBar",10] ] - ]; - - _recipe_ItemTinBar = [ - [ ["ItemTinBar",10] ], - [ ["ItemTinBar10oz",1] ] - ]; - - _recipe_ItemAluminumBar10oz = [ - [ ["ItemAluminumBar10oz",1] ], - [ ["ItemAluminumBar",10] ] - ]; - - _recipe_ItemAluminumBar = [ - [ ["ItemAluminumBar",10] ], - [ ["ItemAluminumBar10oz",1] ] - ]; - diff --git a/dayz_code/actions/sell_db.sqf b/dayz_code/actions/sell_db.sqf index b6b1729ee..fc33e44cc 100644 --- a/dayz_code/actions/sell_db.sqf +++ b/dayz_code/actions/sell_db.sqf @@ -90,13 +90,13 @@ diag_log format["DEBUG Buy: %1", dayzTraderMenuResult]; _in = 1; _count = 0; - if(_stype == "CfgVehicles") then { + if(_type == "CfgVehicles") then { _count = count (position player nearObjects [_name,10]); }; - if(_stype == "CfgMagazines") then { + if(_type == "CfgMagazines") then { _count = {_x == _name} count magazines player; }; - if(_stype == "CfgWeapons") then { + if(_type == "CfgWeapons") then { _count = {_x == _name} count weapons player; }; diff --git a/dayz_code/actions/vault_pitch.sqf b/dayz_code/actions/vault_pitch.sqf index 0ed076ac5..42aa0c9f0 100644 --- a/dayz_code/actions/vault_pitch.sqf +++ b/dayz_code/actions/vault_pitch.sqf @@ -33,7 +33,7 @@ if (!_hastentitem) exitWith {cutText [format[(localize "str_player_31"),_text,"p //diag_log ("Pitch Tent: " + str(_isok) ); // Start Preview loop -_tmpvault = createVehicle ["VaultStorageLocked", _location, [], 0, "NONE"]; +_tmpvault = createVehicle ["VaultStorageLocked", _location, [], 0, "CAN_COLLIDE"]; _tmpvault setdir _dir; _tmpvault attachTo [player,[_offset_x,_offset_y,_offset_z_attach]]; diff --git a/dayz_code/cfgVehicles.hpp b/dayz_code/cfgVehicles.hpp index c42f5e5ca..2366f4aaf 100644 --- a/dayz_code/cfgVehicles.hpp +++ b/dayz_code/cfgVehicles.hpp @@ -145,7 +145,7 @@ class Citizen1; // External class reference class Mi17_DZ: Mi17_base { - displayname = "Mi-8M"; + displayname = "Mi-17"; displaynameshort = "Mi17_DZ"; scope = 2; side = 2; @@ -173,7 +173,26 @@ class Citizen1; // External class reference }; }; }; - + class Mi17_Civilian; + class Mi17_Civilian_DZ: Mi17_Civilian + { + displayname = "Mi-17 Civilian"; + displaynameshort = "Mi17_Civilian_DZ"; + scope = 2; + side = 2; + crew = ""; + typicalCargo[] = {}; + hiddenSelections[] = {}; + class TransportMagazines{}; + class TransportWeapons{}; + commanderCanSee = 2+16+32; + gunnerCanSee = 2+16+32; + driverCanSee = 2+16+32; + transportMaxWeapons = 10; + transportMaxMagazines = 50; + transportmaxbackpacks = 10; + }; + class UH1H_base: Helicopter { class Turrets: Turrets diff --git a/dayz_code/config.cpp b/dayz_code/config.cpp index deded76d4..7556d3b48 100644 --- a/dayz_code/config.cpp +++ b/dayz_code/config.cpp @@ -33,7 +33,7 @@ class CfgMods hidePicture = 0; hideName = 0; action = "http://www.dayzepoch.com"; - version = "0.95"; + version = "0.96"; hiveVersion = 0.96; //0.93 }; }; diff --git a/dayz_code/rscTitles.hpp b/dayz_code/rscTitles.hpp index 251b4ddfb..cb3e67184 100644 --- a/dayz_code/rscTitles.hpp +++ b/dayz_code/rscTitles.hpp @@ -87,7 +87,7 @@ class RscDisplayMain : RscStandardDisplay class DAYZ_Version : CA_Version { idc = -1; - text = "DayZ Epoch 0.95 (1.7.5.1)"; + text = "DayZ Epoch 0.96 (1.7.5.1)"; y = "(SafeZoneH + SafeZoneY) - (1 - 0.95)"; }; class CA_TitleMainMenu; diff --git a/dayz_equip/config.cpp b/dayz_equip/config.cpp index 4d0461206..9df484c06 100644 --- a/dayz_equip/config.cpp +++ b/dayz_equip/config.cpp @@ -1433,7 +1433,7 @@ class CfgMagazines count = 1; type = 256; displayName = "10oz Silver"; - model = "\dayz_equip\models\silver_bar.p3d"; + model = "\dayz_equip\models\silver_bar_10oz.p3d"; picture = "\dayz_equip\textures\equip_bar_silver_CA.paa"; descriptionShort = "10oz Silver Bar"; class ItemActions @@ -1472,7 +1472,7 @@ class CfgMagazines count = 1; type = 256; displayName = "10oz Copper"; - model = "\dayz_equip\models\copper_bar.p3d"; + model = "\dayz_equip\models\copper_bar_10oz.p3d"; picture = "\dayz_equip\textures\equip_bar_copper_CA.paa"; descriptionShort = "10oz Copper Bar"; class ItemActions @@ -1505,15 +1505,7 @@ class CfgMagazines model = "\dayz_equip\models\aluminum_bar.p3d"; picture = "\dayz_equip\textures\equip_bar_aluminum_CA.paa"; descriptionShort = "Aluminum Bar"; - class ItemActions - { - class Crafting - { - text = "Smelt 10oz bar"; - script = "spawn player_craftItem;"; - output[] = {"ItemAluminumBar10oz"}; - }; - }; + }; class ItemAluminumBar10oz: CA_Magazine { @@ -1543,15 +1535,7 @@ class CfgMagazines model = "\dayz_equip\models\tin_bar.p3d"; picture = "\dayz_equip\textures\equip_bar_tin_CA.paa"; descriptionShort = "Tin Bar"; - class ItemActions - { - class Crafting - { - text = "Smelt 10oz bar"; - script = "spawn player_craftItem;"; - output[] = {"ItemTinBar10oz"}; - }; - }; + }; class ItemTinBar10oz: CA_Magazine { diff --git a/dayz_equip/models/copper_bar_10oz.p3d b/dayz_equip/models/copper_bar_10oz.p3d new file mode 100644 index 000000000..caf34060d Binary files /dev/null and b/dayz_equip/models/copper_bar_10oz.p3d differ diff --git a/dayz_equip/models/silver_bar_10oz.p3d b/dayz_equip/models/silver_bar_10oz.p3d new file mode 100644 index 000000000..56e7c5490 Binary files /dev/null and b/dayz_equip/models/silver_bar_10oz.p3d differ diff --git a/dayz_equip/textures/copperbar10oz.rvmat b/dayz_equip/textures/copperbar10oz.rvmat new file mode 100644 index 000000000..cd2c610a6 --- /dev/null +++ b/dayz_equip/textures/copperbar10oz.rvmat @@ -0,0 +1,41 @@ +//////////////////////////////////////////////////////////////////// +//DeRap: Produced from mikero's Dos Tools Dll version 3.97 +//http://dev-heaven.net/projects/list_files/mikero-pbodll +//////////////////////////////////////////////////////////////////// + +#define _ARMA_ + +//Class dayz_equip : textures\copperbar10oz.rvmat{ +ambient[] = {1.0,1.0,1.0,1.0}; +diffuse[] = {1.0,1.0,1.0,1.0}; +forcedDiffuse[] = {0.0,0.0,0.0,1.0}; +emmisive[] = {0.0,0.0,0.0,1.0}; +specular[] = {0.99498,0.99498,0.99498,1.0}; +specularPower = 100.799995; +PixelShaderID = "NormalMapSpecularMap"; +VertexShaderID = "NormalMap"; +class Stage1 +{ + texture = "dayz_equip\textures\copperbar10oz_NOHQ.paa"; + uvSource = "tex"; + class uvTransform + { + aside[] = {1.0,0.0,0.0}; + up[] = {0.0,1.0,0.0}; + dir[] = {0.0,0.0,0.0}; + pos[] = {0,0,0}; + }; +}; +class Stage2 +{ + texture = "dayz_equip\textures\copperbar10oz_SMDI.paa"; + uvSource = "tex"; + class uvTransform + { + aside[] = {1.0,0.0,0.0}; + up[] = {0.0,1.0,0.0}; + dir[] = {0.0,0.0,0.0}; + pos[] = {0,0,0}; + }; +}; +//}; diff --git a/dayz_equip/textures/copperbar10oz_AS.paa b/dayz_equip/textures/copperbar10oz_AS.paa new file mode 100644 index 000000000..09eb9378b Binary files /dev/null and b/dayz_equip/textures/copperbar10oz_AS.paa differ diff --git a/dayz_equip/textures/copperbar10oz_NOHQ.paa b/dayz_equip/textures/copperbar10oz_NOHQ.paa new file mode 100644 index 000000000..9770abb2b Binary files /dev/null and b/dayz_equip/textures/copperbar10oz_NOHQ.paa differ diff --git a/dayz_equip/textures/copperbar10oz_SMDI.paa b/dayz_equip/textures/copperbar10oz_SMDI.paa new file mode 100644 index 000000000..2f5bef8d7 Binary files /dev/null and b/dayz_equip/textures/copperbar10oz_SMDI.paa differ diff --git a/dayz_equip/textures/copperbar10oz_co.paa b/dayz_equip/textures/copperbar10oz_co.paa new file mode 100644 index 000000000..7613e32be Binary files /dev/null and b/dayz_equip/textures/copperbar10oz_co.paa differ diff --git a/dayz_equip/textures/silverbar10oz.rvmat b/dayz_equip/textures/silverbar10oz.rvmat new file mode 100644 index 000000000..895b45f48 --- /dev/null +++ b/dayz_equip/textures/silverbar10oz.rvmat @@ -0,0 +1,41 @@ +//////////////////////////////////////////////////////////////////// +//DeRap: Produced from mikero's Dos Tools Dll version 3.97 +//http://dev-heaven.net/projects/list_files/mikero-pbodll +//////////////////////////////////////////////////////////////////// + +#define _ARMA_ + +//Class dayz_equip : textures\silverbar10oz.rvmat{ +ambient[] = {1.0,1.0,1.0,1.0}; +diffuse[] = {1.0,1.0,1.0,1.0}; +forcedDiffuse[] = {0.0,0.0,0.0,1.0}; +emmisive[] = {0.0,0.0,0.0,1.0}; +specular[] = {0.99498,0.99498,0.99498,1.0}; +specularPower = 100.799995; +PixelShaderID = "NormalMapSpecularMap"; +VertexShaderID = "NormalMap"; +class Stage1 +{ + texture = "dayz_equip\textures\silverbar10oz_NOHQ.paa"; + uvSource = "tex"; + class uvTransform + { + aside[] = {1.0,0.0,0.0}; + up[] = {0.0,1.0,0.0}; + dir[] = {0.0,0.0,0.0}; + pos[] = {0,0,0}; + }; +}; +class Stage2 +{ + texture = "dayz_equip\textures\silverbar10oz_SMDI.paa"; + uvSource = "tex"; + class uvTransform + { + aside[] = {1.0,0.0,0.0}; + up[] = {0.0,1.0,0.0}; + dir[] = {0.0,0.0,0.0}; + pos[] = {0,0,0}; + }; +}; +//}; \ No newline at end of file diff --git a/dayz_equip/textures/silverbar10oz_AS.paa b/dayz_equip/textures/silverbar10oz_AS.paa new file mode 100644 index 000000000..bff468a8e Binary files /dev/null and b/dayz_equip/textures/silverbar10oz_AS.paa differ diff --git a/dayz_equip/textures/silverbar10oz_NOHQ.paa b/dayz_equip/textures/silverbar10oz_NOHQ.paa new file mode 100644 index 000000000..d0aaf6ddc Binary files /dev/null and b/dayz_equip/textures/silverbar10oz_NOHQ.paa differ diff --git a/dayz_equip/textures/silverbar10oz_SMDI.paa b/dayz_equip/textures/silverbar10oz_SMDI.paa new file mode 100644 index 000000000..625427213 Binary files /dev/null and b/dayz_equip/textures/silverbar10oz_SMDI.paa differ diff --git a/dayz_equip/textures/silverbar10oz_co.paa b/dayz_equip/textures/silverbar10oz_co.paa new file mode 100644 index 000000000..832c91674 Binary files /dev/null and b/dayz_equip/textures/silverbar10oz_co.paa differ