diff --git a/SQF/dayz_code/Configs/CfgMagazines.hpp b/SQF/dayz_code/Configs/CfgMagazines.hpp index 66a7cebf1..67b5baa48 100644 --- a/SQF/dayz_code/Configs/CfgMagazines.hpp +++ b/SQF/dayz_code/Configs/CfgMagazines.hpp @@ -1,6 +1,134 @@ class CfgMagazines { class CA_Magazine; // External class reference + // Ammmo + class 100Rnd_762x54_PK : CA_Magazine { + scope = 2; + displayName = "PKM Mag."; + picture = "\CA\weapons\data\equip\m_pk_ca.paa"; + ammo = "B_762x54_Ball"; + count = 100; + type = "256"; + initSpeed = 850; + sound[] = {"\ca\Weapons\Data\Sound\PK_1_SS", 3.16228, 1, 1500}; + tracersEvery = 4; + lastRoundsTracer = 4; + nameSound = "mgun"; + descriptionShort = "Caliber: 7.62x54mm
Rounds: 100
Used in: PK"; + model = "\ca\CommunityConfigurationProject_E\Gameplay_ActualModelsOfWeaponMagazinesVisibleOnTheGround\p3d\100Rnd_762x54_PK.p3d"; + }; + + class 29Rnd_30mm_AGS30 : CA_Magazine { + scope = 2; + displayName = "HE Rounds"; + picture = "\CA\weapons\data\equip\m_m240_ca.paa"; + ammo = "G_30mm_HE"; + count = 29; + type = "256"; + initSpeed = 185; + maxLeadSpeed = 100; + nameSound = "grenadelauncher"; + weight = 16; + }; + + class 50Rnd_127x107_DSHKM : CA_Magazine { + scope = 2; + displayName = "DShKM"; + picture = "\CA\weapons\data\equip\m_m240_ca.paa"; + model = "\z\addons\dayz_epoch\models\dshkm_mag.p3d"; + ammo = "B_127x107_Ball"; + count = 50; + type = "256"; + initSpeed = 850; + maxLeadSpeed = 200; + tracersEvery = 3; + lastRoundsTracer = 5; + nameSound = "mgun"; + weight = 4; + }; + class 100Rnd_127x99_M2 : CA_Magazine { + scope = 2; + displayName = "M2 Machine Gun"; + picture = "\CA\weapons\data\equip\m_m240_ca.paa"; + ammo = "B_127x99_Ball"; + count = 100; + type = "256"; + initSpeed = 930; + maxLeadSpeed = 200; + tracersEvery = 3; + lastRoundsTracer = 5; + nameSound = "mgun"; + weight = 8; + }; + class 2000Rnd_762x51_M134 : CA_Magazine { + count = 2000; + scope = 2; + displayName = "M134 7.62 Nato"; + picture = "\CA\weapons\data\equip\m_m240_ca.paa"; + ammo = "B_762x51_3RndBurst"; + type = "256"; + maxLeadSpeed = 200; + tracersEvery = 5; + nameSound = "mgun"; + weight = 50; + }; + class 48Rnd_40mm_MK19 : CA_Magazine { + scope = 2; + displayName = "Mk. 19 40mm"; + picture = "\CA\weapons\data\equip\m_m240_ca.paa"; + ammo = "G_40mm_HE"; + count = 48; + type = "256"; + initSpeed = 240; + maxLeadSpeed = 100; + nameSound = "grenadelauncher"; + weight = 25; + }; + + class 100Rnd_762x51_M240 : CA_Magazine { + scope = 2; + displayName = "100Rnd. M240"; + picture = "\CA\weapons\data\equip\m_m240_ca.paa"; + count = 100; + type = "256"; + ammo = "B_762x51_Ball"; + initSpeed = 900; + tracersEvery = 4; + lastRoundsTracer = 4; + nameSound = "mgun"; + descriptionShort = "Caliber: 7.62x51mm NATO
Rounds: 100
Used in: M240, Mk 48 Mod 0"; + model = "\ca\CommunityConfigurationProject_E\Gameplay_ActualModelsOfWeaponMagazinesVisibleOnTheGround\p3d\100Rnd_762x51_M240.p3d"; + }; + class 200Rnd_762x51_M240 : 100Rnd_762x51_M240 { + count = 200; + }; + + class 200Rnd_556x45_M249 : CA_Magazine { + scope = 2; + displayName = "200Rnd. M249 Belt"; + picture = "\CA\weapons\data\equip\m_m249_ca.paa"; + ammo = "B_556x45_Ball"; + count = 200; + type = "256"; + initSpeed = 915; + sound[] = {"\ca\Weapons\Data\Sound\M249_1_SS", 17.7828, 1, 1300}; + reloadMagazineSound[] = {"\ca\Weapons\Data\Sound\FAL_reload", 0.01, 1, 20}; + tracersEvery = 4; + lastRoundsTracer = 4; + nameSound = "mgun"; + descriptionShort = "Caliber: 5.56x45 mm NATO
Rounds: 200
Used in: M249 SAW"; + model = "\ca\CommunityConfigurationProject_E\Gameplay_ActualModelsOfWeaponMagazinesVisibleOnTheGround\p3d\200Rnd_556x45_M249.p3d"; + }; + + class 100Rnd_556x45_M249 : 200Rnd_556x45_M249 { + displayName = "M249 Mag."; + descriptionShort = "Caliber: 5.56x45mm NATO
Rounds: 100
Used in: M249"; + count = 100; + picture = "\CA\weapons_E\Data\icons\m_m245_CA.paa"; + }; + + + // Items class ItemHotwireKit: CA_Magazine { scope = 2; @@ -2457,6 +2585,12 @@ class CfgMagazines { picture = "\dayz_equip\textures\equip_woodPile_ca.paa"; descriptionShort = "$STR_EQUIP_DESC_40"; class ItemActions { + class Build { + text = "Build Fire"; + script = "spawn player_build;"; + require[] = {"ItemMatchbox_DZE"}; + create = "Land_Fire_DZ"; + }; class Crafting { text = "Craft Lumber"; diff --git a/SQF/dayz_code/Configs/CfgWeapons.hpp b/SQF/dayz_code/Configs/CfgWeapons.hpp index ff9c3b1ca..9301b8734 100644 --- a/SQF/dayz_code/Configs/CfgWeapons.hpp +++ b/SQF/dayz_code/Configs/CfgWeapons.hpp @@ -21,6 +21,15 @@ class CfgWeapons { class DMR; // External class reference + class ItemMatchbox_DZE: ItemCore + { + scope = 2; + displayName = "$STR_EQUIP_NAME_3"; + model = "\dayz_equip\models\matchbox_gear.p3d"; + picture = "\dayz_equip\textures\equip_matchbox_ca.paa"; + descriptionShort = "$STR_EQUIP_DESC_3"; + }; + class ItemKnife: ItemCore { scope = 2; diff --git a/SQF/dayz_code/Configs/rscTitles.hpp b/SQF/dayz_code/Configs/rscTitles.hpp index 00c1cf857..edcc2674e 100644 --- a/SQF/dayz_code/Configs/rscTitles.hpp +++ b/SQF/dayz_code/Configs/rscTitles.hpp @@ -149,7 +149,7 @@ class RscDisplayMain : RscStandardDisplay class DAYZ_Version : CA_Version { idc = -1; - text = "DayZ Epoch 1.0.2.3"; + text = "DayZ Epoch 1.0.2.38"; y = "(SafeZoneH + SafeZoneY) - (1 - 0.95)"; }; delete CA_TitleMainMenu; diff --git a/SQF/dayz_code/actions/player_build.sqf b/SQF/dayz_code/actions/player_build.sqf index c546d9b21..e59c0594b 100644 --- a/SQF/dayz_code/actions/player_build.sqf +++ b/SQF/dayz_code/actions/player_build.sqf @@ -2,7 +2,7 @@ DayZ Base Building Made for DayZ Epoch please ask permission to use/edit/distrubute email vbawol@veteranbastards.com. */ -private ["_location","_dir","_classname","_item","_hasrequireditem","_missing","_hastoolweapon","_cancel","_reason","_started","_finished","_animState","_isMedic","_dis","_sfx","_hasbuilditem","_tmpbuilt","_onLadder","_isWater","_require","_text","_offset","_IsNearPlot","_isOk","_location1","_location2","_counter","_limit","_proceed","_num_removed","_position","_object","_canBuildOnPlot","_friendlies","_nearestPole","_ownerID","_findNearestPoles","_findNearestPole","_distance","_classnametmp","_ghost","_isPole","_needText","_lockable","_zheightchanged","_rotate","_combination_1","_combination_2","_combination_3","_combination_4","_combination","_combination_1_Display","_combinationDisplay","_zheightdirection","_ztick"]; +private ["_location","_dir","_classname","_item","_hasrequireditem","_missing","_hastoolweapon","_cancel","_reason","_started","_finished","_animState","_isMedic","_dis","_sfx","_hasbuilditem","_tmpbuilt","_onLadder","_isWater","_require","_text","_offset","_IsNearPlot","_isOk","_location1","_location2","_counter","_limit","_proceed","_num_removed","_position","_object","_canBuildOnPlot","_friendlies","_nearestPole","_ownerID","_findNearestPoles","_findNearestPole","_distance","_classnametmp","_ghost","_isPole","_needText","_lockable","_zheightchanged","_rotate","_combination_1","_combination_2","_combination_3","_combination_4","_combination","_combination_1_Display","_combinationDisplay","_zheightdirection","_tick"]; if(TradeInprogress) exitWith { cutText ["\n\nBuilding already in progress." , "PLAIN DOWN"]; }; TradeInprogress = true; @@ -15,11 +15,21 @@ _isWater = dayz_isSwimming; _cancel = false; _reason = ""; _canBuildOnPlot = false; -DZE_BuildingZ = 0; -DZE_cancelBuilding = false; +DZE_Q = false; +DZE_Z = false; + +DZE_Q_alt = false; +DZE_Z_alt = false; + +DZE_Q_ctrl = false; +DZE_Z_ctrl = false; DZE_5 = false; +DZE_4 = false; +DZE_6 = false; + +DZE_cancelBuilding = false; call gear_ui_init; closeDialog 1; @@ -42,6 +52,10 @@ if(isNumber (configFile >> "CfgVehicles" >> _classname >> "lockable")) then { _offset = getArray (configFile >> "CfgVehicles" >> _classname >> "offset"); +if((count _offset) <= 0) then { + _offset = [0,1.5,0]; +}; + _isPole = (_classname == "Plastic_Pole_EP1_DZ"); _distance = 30; @@ -127,20 +141,51 @@ if (_hasrequireditem) then { _position = getPosATL _object; + cutText ["Planning construction: PgUp = raise, PgDn = lower, Q or E = flip 180, and Space-Bar to build.", "PLAIN DOWN"]; + while {_isOk} do { _zheightchanged = false; _zheightdirection = ""; _rotate = false; + _tick = 1; if (DZE_Q) then { DZE_Q = false; _zheightdirection = "up"; _zheightchanged = true; + _tick = 10; }; if (DZE_Z) then { DZE_Z = false; _zheightdirection = "down"; + _zheightchanged = true; + _tick = 10; + }; + + + if (DZE_Q_alt) then { + DZE_Q_alt = false; + _zheightdirection = "up_alt"; + _zheightchanged = true; + _tick = 100; + }; + if (DZE_Z_alt) then { + DZE_Z_alt = false; + _zheightdirection = "down_alt"; + _zheightchanged = true; + _tick = 100; + }; + + + if (DZE_Q_ctrl) then { + DZE_Q_ctrl = false; + _zheightdirection = "up_ctrl"; + _zheightchanged = true; + }; + if (DZE_Z_ctrl) then { + DZE_Z_ctrl = false; + _zheightdirection = "down_ctrl"; _zheightchanged = true; }; @@ -167,13 +212,27 @@ if (_hasrequireditem) then { _position = getPosATL _object; // make z height stick to ticks - _ztick = (round((_position select 2)*10)/10); + // _ztick = (round((_position select 2)*100)/100); if(_zheightdirection == "up") then { - _position = [(_position select 0),(_position select 1), (_ztick+0.1)]; + _position = [(_position select 0),(_position select 1), ((_position select 2)+0.1)]; }; if(_zheightdirection == "down") then { - _position = [(_position select 0),(_position select 1), (_ztick-0.1)]; + _position = [(_position select 0),(_position select 1), ((_position select 2)-0.1)]; + }; + + if(_zheightdirection == "up_alt") then { + _position = [(_position select 0),(_position select 1), ((_position select 2)+1)]; + }; + if(_zheightdirection == "down_alt") then { + _position = [(_position select 0),(_position select 1), ((_position select 2)-1)]; + }; + + if(_zheightdirection == "up_ctrl") then { + _position = [(_position select 0),(_position select 1), ((_position select 2)+0.01)]; + }; + if(_zheightdirection == "down_ctrl") then { + _position = [(_position select 0),(_position select 1), ((_position select 2)-0.01)]; }; _object setDir (getDir _object); @@ -184,11 +243,9 @@ if (_hasrequireditem) then { _object attachTo [player]; - diag_log format["DEBUG AChange BUILDING POS: %1", _position]; - }; - cutText ["Planning construction: PgUp = raise, PgDn = lower, Q or E = flip 180, and Space-Bar to build.", "PLAIN DOWN"]; + sleep 1; @@ -211,14 +268,17 @@ if (_hasrequireditem) then { deleteVehicle _object; }; - if(_counter >= 50) exitWith { + if(_counter >= 500) exitWith { _isOk = false; _cancel = true; _reason = "Ran out of time to find position."; detach _object; deleteVehicle _object; }; - _counter = _counter + 1; + + cutText [format["%1",(500-_counter)], "PLAIN DOWN"]; + + _counter = _counter + _tick; if (player getVariable["combattimeout", 0] >= time) exitWith { _isOk = false; @@ -235,6 +295,8 @@ if (_hasrequireditem) then { detach _object; deleteVehicle _object; }; + + }; // No building on roads @@ -388,8 +450,13 @@ if (_hasrequireditem) then { } else { _tmpbuilt setVariable ["CharacterID",dayz_characterID,true]; - dayzPublishObj = [dayz_characterID,_tmpbuilt,[_dir,_location],_classname]; - publicVariableServer "dayzPublishObj"; + // fire? + if(_tmpbuilt isKindOf "Land_Fire") then { + _tmpbuilt spawn player_fireMonitor; + } else { + dayzPublishObj = [dayz_characterID,_tmpbuilt,[_dir,_location],_classname]; + publicVariableServer "dayzPublishObj"; + }; }; diff --git a/SQF/dayz_code/actions/player_chopWood.sqf b/SQF/dayz_code/actions/player_chopWood.sqf index 6aa5acfe1..ffdc3651c 100644 --- a/SQF/dayz_code/actions/player_chopWood.sqf +++ b/SQF/dayz_code/actions/player_chopWood.sqf @@ -55,6 +55,8 @@ if (count(_findNearestTree) >= 1) then { player playActionNow "Medic"; [player,20,true,(getPosATL player)] spawn player_alertZombies; + + closeDialog 1; r_interrupt = false; _animState = animationState player; diff --git a/SQF/dayz_code/actions/player_craftItem.sqf b/SQF/dayz_code/actions/player_craftItem.sqf index 18ecb2b5a..2eb2bc999 100644 --- a/SQF/dayz_code/actions/player_craftItem.sqf +++ b/SQF/dayz_code/actions/player_craftItem.sqf @@ -19,7 +19,7 @@ class ItemActions }; }; */ -private ["_onLadder","_canDo","_selectedRecipeOutput","_proceed","_itemIn","_countIn","_missing","_missingQty","_qty","_itemOut","_countOut","_started","_finished","_animState","_isMedic","_removed","_tobe_removed_total","_textCreate","_textMissing","_selectedRecipeInput","_num_removed","_removed_total","_temp_removed_array","_abort","_reason","_isNear","_missingTools","_hastoolweapon","_selectedRecipeTools","_distance","_crafting","_needNear","_item","_baseClass","_num_removed_weapons","_outputWeapons","_inputWeapons"]; +private ["_tradeComplete","_onLadder","_canDo","_selectedRecipeOutput","_proceed","_itemIn","_countIn","_missing","_missingQty","_qty","_itemOut","_countOut","_started","_finished","_animState","_isMedic","_removed","_tobe_removed_total","_textCreate","_textMissing","_selectedRecipeInput","_num_removed","_removed_total","_temp_removed_array","_abort","_reason","_isNear","_missingTools","_hastoolweapon","_selectedRecipeTools","_distance","_crafting","_needNear","_item","_baseClass","_num_removed_weapons","_outputWeapons","_inputWeapons"]; if(TradeInprogress) exitWith { cutText ["\n\nCrafting already in progress." , "PLAIN DOWN"]; }; TradeInprogress = true; @@ -71,6 +71,7 @@ if (_canDo) then { _inputWeapons = getArray (configFile >> _baseClass >> _item >> "ItemActions" >> _crafting >> "inputweapons"); _craft_doLoop = true; + _tradeComplete = 0; while {_craft_doLoop} do { @@ -178,12 +179,14 @@ if (_canDo) then { player addMagazine _itemOut; }; + _tradeComplete = _tradeComplete+1; + _textCreate = getText(configFile >> "CfgMagazines" >> _itemOut >> "displayName"); - // Add crafted item - cutText [format["\n\nCrafted Item: %1 x %2",_textCreate,_countOut], "PLAIN DOWN"]; - // sleep here - sleep 1; + // Add crafted item + cutText [format["\n\nCrafted Item: %1 x %2",_textCreate,_countOut], "PLAIN DOWN"]; + // sleep here + sleep 1; } forEach _selectedRecipeOutput; }; @@ -207,7 +210,7 @@ if (_canDo) then { } else { _textMissing = getText(configFile >> "CfgMagazines" >> _missing >> "displayName"); - cutText [format["\n\nMissing %1 more of %2",_missingQty, _textMissing], "PLAIN DOWN"]; + cutText [format["\n\n%3 complete, missing %1 more of %2",_missingQty, _textMissing,_tradeComplete], "PLAIN DOWN"]; _craft_doLoop = false; }; } else { diff --git a/SQF/dayz_code/compile/player_gearSet.sqf b/SQF/dayz_code/compile/player_gearSet.sqf index 1d29cd84c..9a80f6594 100644 --- a/SQF/dayz_code/compile/player_gearSet.sqf +++ b/SQF/dayz_code/compile/player_gearSet.sqf @@ -35,7 +35,8 @@ if (count _inventory > 0) then { //Add weapons { if (_x == "Crossbow") then { _x = "Crossbow_DZ" }; // Convert Crossbow to Crossbow_DZ - + if (_x == "ItemMatchbox") then { _x = "ItemMatchbox_DZE" }; // Convert Crossbow to Crossbow_DZ + //Is item legal? _isOK = isClass(configFile >> "CfgWeapons" >> _x); if (_isOK) then { diff --git a/SQF/dayz_code/config.cpp b/SQF/dayz_code/config.cpp index 006a48bd8..d3b5d1650 100644 --- a/SQF/dayz_code/config.cpp +++ b/SQF/dayz_code/config.cpp @@ -41,7 +41,7 @@ class CfgMods hidePicture = 0; hideName = 0; action = "http://www.dayzepoch.com"; - version = "1.0.2.37"; + version = "1.0.2.38"; hiveVersion = 0.96; //0.93 }; }; @@ -877,7 +877,10 @@ class CfgBuildingLoot { { "Pecheneg_DZ","weapon"}, {"100Rnd_762x54_PK","magazine"}, {"2000Rnd_762x51_M134","magazine"}, - + {"29Rnd_30mm_AGS30","magazine"}, + {"50Rnd_127x107_DSHKM","magazine"}, + {"48Rnd_40mm_MK19","magazine"}, + {"100Rnd_127x99_M2","magazine"}, }; itemChance[] = { 0.02, @@ -890,7 +893,7 @@ class CfgBuildingLoot { 0.02, 0.01, 0.02, - 0.39, + 0.35, 0.19, 0.05, 0.01, @@ -903,6 +906,10 @@ class CfgBuildingLoot { 0.01, 0.01, 0.01, + 0.01, + 0.01, + 0.01, + 0.01 }; }; class HeliCrash_No50s: Default { @@ -934,6 +941,10 @@ class HeliCrash_No50s: Default { {"G36K_camo","weapon"}, {"100Rnd_762x54_PK","magazine"}, {"2000Rnd_762x51_M134","magazine"}, + {"29Rnd_30mm_AGS30","magazine"}, + {"50Rnd_127x107_DSHKM","magazine"}, + {"48Rnd_40mm_MK19","magazine"}, + {"100Rnd_127x99_M2","magazine"}, }; itemChance[] = { 0.01, @@ -957,7 +968,11 @@ class HeliCrash_No50s: Default { 0.01, 0.01, 0.01, - 0.01 + 0.01, + 0.01, + 0.01, + 0.01, + 0.01, }; }; class Hospital: Default { @@ -1203,6 +1218,10 @@ class HeliCrash_No50s: Default { { "militaryclothes","single" }, {"NVGoggles","weapon"}, {"2000Rnd_762x51_M134","magazine"}, + {"29Rnd_30mm_AGS30","magazine"}, + {"50Rnd_127x107_DSHKM","magazine"}, + {"48Rnd_40mm_MK19","magazine"}, + {"100Rnd_127x99_M2","magazine"}, }; itemChance[] = { 0.01, @@ -1242,7 +1261,12 @@ class HeliCrash_No50s: Default { 0.05, 0.03, 0.08, - 0.34, + 0.30, + 0.01, + 0.01, + 0.01, + 0.01, + 0.01, 0.01, 0.01, 0.01, @@ -1250,7 +1274,6 @@ class HeliCrash_No50s: Default { 0.01, 0.01, 0.01, - 0.01 }; }; class Hunting: Default { diff --git a/SQF/dayz_code/init/compiles.sqf b/SQF/dayz_code/init/compiles.sqf index 77119c500..a71c4f674 100644 --- a/SQF/dayz_code/init/compiles.sqf +++ b/SQF/dayz_code/init/compiles.sqf @@ -260,6 +260,12 @@ if (!isDedicated) then { dayz_spaceInterrupt = { private ["_dikCode", "_handled"]; _dikCode = _this select 1; + _shift = _this select 2; + _ctrl = _this select 3; + _alt = _this select 4; + + //diag_log format["Keypress: %1", _this]; + _handled = false; if (_dikCode in (actionKeys "GetOver")) then { @@ -268,7 +274,7 @@ if (!isDedicated) then { } else { _inBuilding = [player] call fnc_isInsideBuilding; _nearbyObjects = nearestObjects[getPosATL player, dayz_disallowedVault, 8]; - if (_inBuilding or (count _nearbyObjects > 0)) then { + if (!r_player_unconscious and (_inBuilding or (count _nearbyObjects > 0))) then { [objNull, player, rSwitchMove,"GetOver"] call RE; player playActionNow "GetOver"; }; @@ -308,14 +314,39 @@ if (!isDedicated) then { dayz_lastCheckBit = time; _nill = execvm "\z\addons\dayz_code\actions\playerstats.sqf"; }; - // numpad 8 0x48 now pgup 0xC9 - if (_dikCode == 0xC9 or (_dikCode in actionKeys "User15")) then { + + // numpad 8 0x48 now pgup 0xC9 1 + if ((_dikCode == 0xC9 and (!_alt or !_ctrl)) or (_dikCode in actionKeys "User15")) then { DZE_Q = true; }; // numpad 2 0x50 now pgdn 0xD1 - if (_dikCode == 0xD1 or (_dikCode in actionKeys "User16")) then { + if ((_dikCode == 0xD1 and (!_alt or !_ctrl)) or (_dikCode in actionKeys "User16")) then { DZE_Z = true; }; + + + // numpad 8 0x48 now pgup 0xC9 0.1 + if ((_dikCode == 0xC9 and (_alt and !_ctrl)) or (_dikCode in actionKeys "User13")) then { + DZE_Q_alt = true; + }; + // numpad 2 0x50 now pgdn 0xD1 + if ((_dikCode == 0xD1 and (_alt and !_ctrl)) or (_dikCode in actionKeys "User14")) then { + DZE_Z_alt = true; + }; + + + // numpad 8 0x48 now pgup 0xC9 0.01 + if ((_dikCode == 0xC9 and (!_alt and _ctrl)) or (_dikCode in actionKeys "User7")) then { + DZE_Q_ctrl = true; + }; + // numpad 2 0x50 now pgdn 0xD1 + if ((_dikCode == 0xD1 and (!_alt and _ctrl)) or (_dikCode in actionKeys "User8")) then { + DZE_Z_ctrl = true; + }; + + + + // numpad 4 0x4B now Q 0x10 if (_dikCode == 0x10 or (_dikCode in actionKeys "User17")) then { DZE_4 = true; diff --git a/SQF/dayz_code/init/variables.sqf b/SQF/dayz_code/init/variables.sqf index 7ace9e3bf..7e0e59853 100644 --- a/SQF/dayz_code/init/variables.sqf +++ b/SQF/dayz_code/init/variables.sqf @@ -612,6 +612,13 @@ if(!isDedicated) then { DZE_CanPickup = true; DZE_Q = false; DZE_Z = false; + + DZE_Q_alt = false; + DZE_Z_alt = false; + + DZE_Q_ctrl = false; + DZE_Z_ctrl = false; + DZE_5 = false; DZE_4 = false; DZE_6 = false; diff --git a/SQF/dayz_code/system/player_monitor.fsm b/SQF/dayz_code/system/player_monitor.fsm index 6ed95412a..e06d30934 100644 --- a/SQF/dayz_code/system/player_monitor.fsm +++ b/SQF/dayz_code/system/player_monitor.fsm @@ -695,6 +695,7 @@ class FSM " _countr = 0;" \n " {" \n " if (_x == ""Crossbow"") then { _x = ""Crossbow_DZ"" };" \n + " if (_x == ""ItemMatchbox"") then { _x = ""ItemMatchbox_DZE"" };" \n " dayz_myBackpack addWeaponCargoGlobal [_x,(_backpackWpnQtys select _countr)];" \n " _countr = _countr + 1;" \n " } forEach _backpackWpnTypes;" \n diff --git a/SQF/dayz_epoch/models/dshkm_mag.p3d b/SQF/dayz_epoch/models/dshkm_mag.p3d new file mode 100644 index 000000000..8a67f3577 Binary files /dev/null and b/SQF/dayz_epoch/models/dshkm_mag.p3d differ diff --git a/SQF/dayz_epoch/textures/dshkm.rvmat b/SQF/dayz_epoch/textures/dshkm.rvmat new file mode 100644 index 000000000..6ac9e9d04 --- /dev/null +++ b/SQF/dayz_epoch/textures/dshkm.rvmat @@ -0,0 +1,92 @@ +ambient[]={0.80784315,0.80784315,0.80784315,1}; +diffuse[]={0.80784315,0.80784315,0.80784315,1}; +forcedDiffuse[]={0,0,0,0}; +emmisive[]={0,0,0,1}; +specular[]={0.66274512,0.7764706,0.60784316,1}; +specularPower=200; +PixelShaderID="Super"; +VertexShaderID="Super"; +class Stage1 +{ + texture="z\addons\dayz_epoch\textures\dshkm_nohq.paa"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage2 +{ + texture="#(argb,8,8,3)color(0.5,0.5,0.5,1,DT)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage3 +{ + texture="#(argb,8,8,3)color(0,0,0,0,MC)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage4 +{ + texture="#(argb,8,8,3)color(1,1,1,1,AS)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage5 +{ + texture="z\addons\dayz_epoch\textures\dshkm_smdi.paa"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage6 +{ + texture="#(ai,32,128,1)fresnel(1.7,7.0)"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; +class Stage7 +{ + texture="ca\data\env_land_co.paa"; + uvSource="tex"; + class uvTransform + { + aside[]={1,0,0}; + up[]={0,1,0}; + dir[]={0,0,0}; + pos[]={0,0,0}; + }; +}; diff --git a/SQF/dayz_epoch/textures/dshkm_co.paa b/SQF/dayz_epoch/textures/dshkm_co.paa new file mode 100644 index 000000000..4dd9b73ed Binary files /dev/null and b/SQF/dayz_epoch/textures/dshkm_co.paa differ diff --git a/SQF/dayz_epoch/textures/dshkm_nohq.paa b/SQF/dayz_epoch/textures/dshkm_nohq.paa new file mode 100644 index 000000000..c9d6b8293 Binary files /dev/null and b/SQF/dayz_epoch/textures/dshkm_nohq.paa differ diff --git a/SQF/dayz_epoch/textures/dshkm_smdi.paa b/SQF/dayz_epoch/textures/dshkm_smdi.paa new file mode 100644 index 000000000..7060df5cb Binary files /dev/null and b/SQF/dayz_epoch/textures/dshkm_smdi.paa differ diff --git a/SQF/dayz_server/system/server_monitor.sqf b/SQF/dayz_server/system/server_monitor.sqf index a4fae310c..fb8e126ca 100644 --- a/SQF/dayz_server/system/server_monitor.sqf +++ b/SQF/dayz_server/system/server_monitor.sqf @@ -175,7 +175,7 @@ if (isServer and isNil "sm_done") then { }; _object setdir _dir; - _object setpos _pos; + _object setposATL _pos; _object setDamage _damage; if (count _intentory > 0) then { @@ -192,6 +192,7 @@ if (isServer and isNil "sm_done") then { _countr = 0; { if (_x == "Crossbow") then { _x = "Crossbow_DZ" }; // Convert Crossbow to Crossbow_DZ + if (_x == "ItemMatchbox") then { _x = "ItemMatchbox_DZE" }; // Convert Crossbow to Crossbow_DZ _isOK = isClass(configFile >> "CfgWeapons" >> _x); if (_isOK) then { _block = getNumber(configFile >> "CfgWeapons" >> _x >> "stopThis") == 1;