mirror of
https://github.com/EpochModTeam/DayZ-Epoch.git
synced 2025-12-14 12:12:34 +03:00
@@ -58,6 +58,7 @@
|
|||||||
[FIXED] Running corpses when the dead player has no primary weapon @icomrade
|
[FIXED] Running corpses when the dead player has no primary weapon @icomrade
|
||||||
[FIXED] "AI" text localized on wrong client in death messages. #1867 @LunaCB
|
[FIXED] "AI" text localized on wrong client in death messages. #1867 @LunaCB
|
||||||
[FIXED] Group icons will not show for units inside the player's vehicle anymore (helis, large planes, etc.). #1865 @schwanzkopfhegel
|
[FIXED] Group icons will not show for units inside the player's vehicle anymore (helis, large planes, etc.). #1865 @schwanzkopfhegel
|
||||||
|
[FIXED] Lighting fires and building fireplaces not working on platforms raised over the sea. #1866 @schwanzkopfhegel
|
||||||
|
|
||||||
[NOTE] The fixes below are included in the 1.0.6 Build C server package released December 29th, 2016 (http://dayzepoch.com/a2dayzepoch.php)
|
[NOTE] The fixes below are included in the 1.0.6 Build C server package released December 29th, 2016 (http://dayzepoch.com/a2dayzepoch.php)
|
||||||
[FIXED] Hive child 309 errors that resulted in broken saving of newly built storage object inventory. @icomrade
|
[FIXED] Hive child 309 errors that resulted in broken saving of newly built storage object inventory. @icomrade
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ class PartWoodPile : CA_Magazine
|
|||||||
class ItemActions {
|
class ItemActions {
|
||||||
class Build {
|
class Build {
|
||||||
text = $STR_ACTIONS_MAKEFIRE;
|
text = $STR_ACTIONS_MAKEFIRE;
|
||||||
script = "spawn player_makeFire;";
|
script = "spawn player_makeFire;"; //Do not use player_build because we have no ghost preview model for Land_Fire_DZ yet
|
||||||
use[] = {"PartWoodPile"};
|
use[] = {"PartWoodPile"};
|
||||||
};
|
};
|
||||||
class Crafting
|
class Crafting
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ class ItemMatchbox : ItemMatchbox_base
|
|||||||
class Use
|
class Use
|
||||||
{
|
{
|
||||||
text = $STR_ACTIONS_MAKEFIRE;
|
text = $STR_ACTIONS_MAKEFIRE;
|
||||||
script = "spawn player_makeFire;";
|
script = "spawn player_makeFire;"; //Do not use player_build because we have no ghost preview model for Land_Fire_DZ yet
|
||||||
use[] = {"PartWoodPile"};
|
use[] = {"PartWoodPile"};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -545,6 +545,7 @@ if (_canBuild select 0) then {
|
|||||||
_tmpbuilt setVariable ["CharacterID",dayz_characterID,true];
|
_tmpbuilt setVariable ["CharacterID",dayz_characterID,true];
|
||||||
// fire?
|
// fire?
|
||||||
if (_tmpbuilt isKindOf "Land_Fire_DZ") then { //if campfire, then spawn, but do not publish to database
|
if (_tmpbuilt isKindOf "Land_Fire_DZ") then { //if campfire, then spawn, but do not publish to database
|
||||||
|
[_tmpbuilt,true] call dayz_inflame;
|
||||||
_tmpbuilt spawn player_fireMonitor;
|
_tmpbuilt spawn player_fireMonitor;
|
||||||
} else {
|
} else {
|
||||||
if (DZE_permanentPlot) then {
|
if (DZE_permanentPlot) then {
|
||||||
|
|||||||
@@ -450,7 +450,8 @@ if (_canBuild select 0) then {
|
|||||||
} else {
|
} else {
|
||||||
_tmpbuilt setVariable ["CharacterID",dayz_characterID,true];
|
_tmpbuilt setVariable ["CharacterID",dayz_characterID,true];
|
||||||
// fire?
|
// fire?
|
||||||
if(_tmpbuilt isKindOf "Land_Fire_DZ") then {
|
if (_tmpbuilt isKindOf "Land_Fire_DZ") then { //if campfire, then spawn, but do not publish to database
|
||||||
|
[_tmpbuilt,true] call dayz_inflame;
|
||||||
_tmpbuilt spawn player_fireMonitor;
|
_tmpbuilt spawn player_fireMonitor;
|
||||||
} else {
|
} else {
|
||||||
if (DZE_permanentPlot) then {
|
if (DZE_permanentPlot) then {
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ class ItemActions
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
*/
|
*/
|
||||||
private ["_tradeComplete","_onLadder","_canDo","_selectedRecipeOutput","_boiled","_proceed","_itemIn","_countIn","_missing","_missingQty","_qty","_itemOut","_countOut","_started","_finished","_animState","_isMedic","_removed","_tobe_removed_total","_textCreate","_textMissing","_selectedRecipeInput","_selectedRecipeInputStrict","_num_removed","_removed_total","_temp_removed_array","_abort","_waterLevel","_waterLevel_lowest","_reason","_isNear","_missingTools","_hastoolweapon","_selectedRecipeTools","_distance","_crafting","_needNear","_item","_baseClass","_num_removed_weapons","_outputWeapons","_inputWeapons","_randomOutput","_craft_doLoop","_selectedWeapon","_selectedMag","_sfx"];
|
private ["_tradeComplete","_onLadder","_canDo","_selectedRecipeOutput","_boiled","_proceed","_itemIn","_countIn","_missing","_missingQty","_qty","_itemOut","_countOut","_started","_finished","_animState","_isMedic","_removed","_tobe_removed_total","_textCreate","_textMissing","_selectedRecipeInput","_selectedRecipeInputStrict","_num_removed","_removed_total","_temp_removed_array","_abort","_waterLevel","_waterLevel_lowest","_reason","_isNear","_selectedRecipeTools","_distance","_crafting","_needNear","_item","_baseClass","_num_removed_weapons","_outputWeapons","_inputWeapons","_randomOutput","_craft_doLoop","_selectedWeapon","_selectedMag","_sfx"];
|
||||||
|
|
||||||
if (dayz_actionInProgress) exitWith {localize "str_epoch_player_63" call dayz_rollingMessages;};
|
if (dayz_actionInProgress) exitWith {localize "str_epoch_player_63" call dayz_rollingMessages;};
|
||||||
dayz_actionInProgress = true;
|
dayz_actionInProgress = true;
|
||||||
@@ -94,20 +94,7 @@ if (_canDo) then {
|
|||||||
while {_craft_doLoop} do {
|
while {_craft_doLoop} do {
|
||||||
_temp_removed_array = [];
|
_temp_removed_array = [];
|
||||||
|
|
||||||
_missing = "";
|
if ([_item,_selectedRecipeTools,"none"] call dze_requiredItemsCheck) then {
|
||||||
_missingTools = false;
|
|
||||||
{
|
|
||||||
_hastoolweapon = _x in weapons player;
|
|
||||||
if (_x == "ItemKnife") then {
|
|
||||||
{if (_x in Dayz_Gutting) exitWith {_hastoolweapon = true};} forEach (items player);
|
|
||||||
};
|
|
||||||
if (_x == "ItemMatchbox") then {
|
|
||||||
{if (_x in DayZ_Ignitors) exitWith {_hastoolweapon = true};} forEach (items player);
|
|
||||||
};
|
|
||||||
if (!_hastoolweapon) exitWith { _craft_doLoop = false; _missingTools = true; _missing = _x; };
|
|
||||||
} forEach _selectedRecipeTools;
|
|
||||||
|
|
||||||
if (!_missingTools) then {
|
|
||||||
// Dry run to see if all parts are available.
|
// Dry run to see if all parts are available.
|
||||||
_proceed = true;
|
_proceed = true;
|
||||||
if (count _selectedRecipeInput > 0) then {
|
if (count _selectedRecipeInput > 0) then {
|
||||||
@@ -282,8 +269,7 @@ if (_canDo) then {
|
|||||||
_craft_doLoop = false;
|
_craft_doLoop = false;
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
_textMissing = getText(configFile >> "CfgWeapons" >> _missing >> "displayName");
|
//Missing text shown in dze_requiredItemsCheck
|
||||||
format[localize "STR_EPOCH_PLAYER_137",_textMissing] call dayz_rollingMessages;
|
|
||||||
_craft_doLoop = false;
|
_craft_doLoop = false;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
private ["_item","_config","_exit","_text","_booleans","_worldspace","_dir","_location","_dis","_fire","_tool","_itemPile"];
|
private ["_item","_config","_exit","_text","_booleans","_worldspace","_dir","_location","_dis","_fire","_tool","_itemPile","_posASL","_testSea"];
|
||||||
|
|
||||||
_tool = _this;
|
_tool = _this;
|
||||||
call gear_ui_init;
|
call gear_ui_init;
|
||||||
@@ -11,15 +11,8 @@ _text = getText (_config >> "displayName");
|
|||||||
_exit = false;
|
_exit = false;
|
||||||
|
|
||||||
if (_tool == "PartWoodPile") then {
|
if (_tool == "PartWoodPile") then {
|
||||||
switch true do {
|
_exit = true;
|
||||||
case ("Item1Matchbox" in (weapons player)): {_tool = "Item1Matchbox";};
|
{if (_x in DayZ_Ignitors) exitWith {_exit = false};} forEach (items player);
|
||||||
case ("Item2Matchbox" in (weapons player)): {_tool = "Item2Matchbox";};
|
|
||||||
case ("Item3Matchbox" in (weapons player)): {_tool = "Item3Matchbox";};
|
|
||||||
case ("Item4Matchbox" in (weapons player)): {_tool = "Item4Matchbox";};
|
|
||||||
case ("Item5Matchbox" in (weapons player)): {_tool = "Item5Matchbox";};
|
|
||||||
case ("ItemMatchbox" in (weapons player)): {_tool = "ItemMatchbox";};
|
|
||||||
default {_exit = true;};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
if (_exit) exitWith {(localize "str_fireplace_noMatches") call dayz_rollingMessages;};
|
if (_exit) exitWith {(localize "str_fireplace_noMatches") call dayz_rollingMessages;};
|
||||||
|
|
||||||
@@ -35,8 +28,16 @@ _worldspace = ["Land_Fire_DZ", player, _booleans] call fn_niceSpot;
|
|||||||
// player on ladder or in a vehicle
|
// player on ladder or in a vehicle
|
||||||
if (_booleans select 0) exitWith { localize "str_player_21" call dayz_rollingMessages; };
|
if (_booleans select 0) exitWith { localize "str_player_21" call dayz_rollingMessages; };
|
||||||
|
|
||||||
|
_testSea = true;
|
||||||
|
_posASL = getPosASL player;
|
||||||
|
if ((_booleans select 1) && _posASL select 2 > 2) then {
|
||||||
|
//Allow building on raised platform 2m+ ASL (like docks)
|
||||||
|
_testSea = false;
|
||||||
|
_worldspace = [0,_posASL];
|
||||||
|
};
|
||||||
|
|
||||||
// object would be in the water (pool or sea)
|
// object would be in the water (pool or sea)
|
||||||
if ((_booleans select 1) OR (_booleans select 2)) exitWith { localize "str_player_26" call dayz_rollingMessages; };
|
if ((_booleans select 1 && _testSea) OR (_booleans select 2)) exitWith { localize "str_player_26" call dayz_rollingMessages; };
|
||||||
|
|
||||||
if ((count _worldspace) == 2) then {
|
if ((count _worldspace) == 2) then {
|
||||||
if (_item in magazines player) then {
|
if (_item in magazines player) then {
|
||||||
@@ -61,9 +62,13 @@ if ((count _worldspace) == 2) then {
|
|||||||
|
|
||||||
uiSleep 5;
|
uiSleep 5;
|
||||||
|
|
||||||
_fire = createVehicle ["Land_Fire_DZ", getMarkerpos "respawn_west", [], 0, "CAN_COLLIDE"];
|
_fire = createVehicle ["Land_Fire_DZ", [0,0,0], [], 0, "CAN_COLLIDE"];
|
||||||
_fire setDir _dir;
|
_fire setDir _dir;
|
||||||
|
if (_testSea) then {
|
||||||
_fire setPos _location; // follow terrain slope
|
_fire setPos _location; // follow terrain slope
|
||||||
|
} else {
|
||||||
|
_fire setPosASL _location;
|
||||||
|
};
|
||||||
player reveal _fire;
|
player reveal _fire;
|
||||||
[_fire,true] call dayz_inflame;
|
[_fire,true] call dayz_inflame;
|
||||||
_fire spawn player_fireMonitor;
|
_fire spawn player_fireMonitor;
|
||||||
@@ -74,9 +79,7 @@ if ((count _worldspace) == 2) then {
|
|||||||
achievement = [14, player, dayz_characterID];
|
achievement = [14, player, dayz_characterID];
|
||||||
publicVariableServer "achievement";
|
publicVariableServer "achievement";
|
||||||
};*/
|
};*/
|
||||||
//localize "str_fireplace_01" call dayz_rollingMessages;
|
localize "str_fireplace_01" call dayz_rollingMessages;
|
||||||
(localize "str_fireplace_01") call dayz_rollingMessages;
|
|
||||||
} else {
|
} else {
|
||||||
//localize "str_fireplace_02" call dayz_rollingMessages;
|
localize "str_fireplace_02" call dayz_rollingMessages;
|
||||||
(localize "str_fireplace_0") call dayz_rollingMessages;
|
|
||||||
};
|
};
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
private ["_missingText","_hasrequireditem","_hastoolweapon","_item","_require","_missing","_text","_classname","_hasbuilditem"];
|
private ["_missingText","_hasrequireditem","_hastoolweapon","_item","_require","_missing","_text","_classname","_hasbuilditem","_items","_melee","_weapons","_weapon"];
|
||||||
|
|
||||||
_item = _this select 0;
|
_item = _this select 0;
|
||||||
_require = _this select 1;
|
_require = _this select 1;
|
||||||
@@ -7,16 +7,34 @@ _missing = [];
|
|||||||
_missingText = "";
|
_missingText = "";
|
||||||
_hasrequireditem = true;
|
_hasrequireditem = true;
|
||||||
_text = getText (configFile >> "CfgVehicles" >> _classname >> "displayName");
|
_text = getText (configFile >> "CfgVehicles" >> _classname >> "displayName");
|
||||||
|
_items = items player;
|
||||||
|
_weapons = weapons player;
|
||||||
|
|
||||||
{
|
{
|
||||||
_hastoolweapon = _x in weapons player;
|
_weapon = _x;
|
||||||
|
_hastoolweapon = _x in _weapons;
|
||||||
|
|
||||||
|
if (_x == "ItemKnife") then {
|
||||||
|
{if (_x in Dayz_Gutting) exitWith {_hastoolweapon = true};} forEach _items;
|
||||||
|
};
|
||||||
|
if (_x == "ItemMatchbox") then {
|
||||||
|
{if (_x in DayZ_Ignitors) exitWith {_hastoolweapon = true};} forEach _items;
|
||||||
|
};
|
||||||
|
{
|
||||||
|
_melee = format ["Melee%1",_x];
|
||||||
|
if (_weapon == format["Item%1",_x] && {(_melee in _weapons) or (dayz_onBack == _melee)}) then {
|
||||||
|
_hastoolweapon = true;
|
||||||
|
};
|
||||||
|
} forEach ["Crowbar","Hatchet","Sledge"];
|
||||||
|
|
||||||
if (!_hastoolweapon) then {
|
if (!_hastoolweapon) then {
|
||||||
_missingText = getText (configFile >> "cfgWeapons" >> _x >> "displayName");
|
_missingText = getText (configFile >> "cfgWeapons" >> _x >> "displayName");
|
||||||
_missing set [count _missing, _missingText];
|
_missing set [count _missing, _missingText];
|
||||||
_hasrequireditem = false;
|
_hasrequireditem = false;
|
||||||
};
|
};
|
||||||
} forEach _require;
|
} forEach _require;
|
||||||
_missingText = "";
|
|
||||||
|
|
||||||
|
_missingText = "";
|
||||||
{
|
{
|
||||||
if (_forEachIndex == 0) then {
|
if (_forEachIndex == 0) then {
|
||||||
_missingText = _x;
|
_missingText = _x;
|
||||||
@@ -30,7 +48,7 @@ _missingText = "";
|
|||||||
} forEach _missing;
|
} forEach _missing;
|
||||||
|
|
||||||
_hasbuilditem = _item in magazines player;
|
_hasbuilditem = _item in magazines player;
|
||||||
if (!_hasbuilditem) exitWith {dayz_actionInProgress = false; format[localize "str_player_31",_text,"build"] call dayz_rollingMessages; false;};
|
if (!_hasbuilditem && _text != "") exitWith {dayz_actionInProgress = false; format[localize "str_player_31",_text,"build"] call dayz_rollingMessages; false;};
|
||||||
if (!_hasrequireditem) exitWith {dayz_actionInProgress = false; format[localize "str_epoch_player_137",_missingText] call dayz_rollingMessages; false;};
|
if (!_hasrequireditem) exitWith {dayz_actionInProgress = false; format[localize "str_epoch_player_137",_missingText] call dayz_rollingMessages; false;};
|
||||||
|
|
||||||
//When calling this function in another script use a silent exitWith, unless you have something special to say. i.e. if (!_hasrequireditem) exitWith{};
|
//When calling this function in another script use a silent exitWith, unless you have something special to say. i.e. if (!_hasrequireditem) exitWith{};
|
||||||
|
|||||||
@@ -774,10 +774,16 @@ dayz_inflame_other = {
|
|||||||
_flame = if (count _flame > 0) then { _flame select 0 } else { objNull };
|
_flame = if (count _flame > 0) then { _flame select 0 } else { objNull };
|
||||||
if (isNull _flame) then {
|
if (isNull _flame) then {
|
||||||
//_flame = if (local _fireplace) then { "flamable_DZ" createVehicleLocal getMarkerpos "respawn_west" } else { createVehicle [ "flamable_DZ", getMarkerpos "respawn_west", [], 0, "CAN_COLLIDE"] };
|
//_flame = if (local _fireplace) then { "flamable_DZ" createVehicleLocal getMarkerpos "respawn_west" } else { createVehicle [ "flamable_DZ", getMarkerpos "respawn_west", [], 0, "CAN_COLLIDE"] };
|
||||||
_flame = createVehicle [ "flamable_DZ", getPosATL _fireplace, [], 0, "CAN_COLLIDE"]; // fireplace can be local (towngenerator, poi...) but flames will be networked
|
_flame = createVehicle ["flamable_DZ", [0,0,0], [], 0, "CAN_COLLIDE"]; // fireplace can be local (towngenerator, poi...) but flames will be networked
|
||||||
|
_pos = getPosASL _fireplace;
|
||||||
|
if (surfaceIsWater _pos) then {
|
||||||
|
// modelToWorld changes with wave height
|
||||||
|
_flame setPosASL [_pos select 0,_pos select 1,(_pos select 2)+0.2];
|
||||||
|
} else {
|
||||||
_pos = _fireplace modelToWorld (_fireplace selectionPosition "ohniste"); // ATL
|
_pos = _fireplace modelToWorld (_fireplace selectionPosition "ohniste"); // ATL
|
||||||
_flame setPosATL _pos;
|
_flame setPosATL _pos;
|
||||||
};
|
};
|
||||||
|
};
|
||||||
|
|
||||||
if (["matches",0.12] call fn_dynamicTool) then { _flame inflame true; };
|
if (["matches",0.12] call fn_dynamicTool) then { _flame inflame true; };
|
||||||
} else { // put out the fire
|
} else { // put out the fire
|
||||||
|
|||||||
@@ -42,7 +42,7 @@
|
|||||||
5 setMarkerSize
|
5 setMarkerSize
|
||||||
5 setMarkerText !",if (_vehicle == _x) then {name _x} else {_vehicle call dayz_getCrew}];\n_marker setMarkerColorLocal \"ColorGreen\";"
|
5 setMarkerText !",if (_vehicle == _x) then {name _x} else {_vehicle call dayz_getCrew}];\n_marker setMarkerColorLocal \"ColorGreen\";"
|
||||||
5 setMarkerType !",if (_vehicle == _x) then {name _x} else {_vehicle call dayz_getCrew}];\n_marker setMarkerColorLocal \"ColorGreen\";"
|
5 setMarkerType !",if (_vehicle == _x) then {name _x} else {_vehicle call dayz_getCrew}];\n_marker setMarkerColorLocal \"ColorGreen\";"
|
||||||
5 setPosASL !="_unit setPosAsl [(_position select 0), (_position select 1), (LHA_height+1)];" !="_objectHelper setPosASL _position;" !="_tmpbuilt setPosASL _location;" !="_b0x1337 setPosASL (getPosASL player);" !"_obj setPosASL [_center select 0, " !"_obj setPosASL [_a, " !"_objectSnapGizmo setPosASL " !"_para setposasl [\n" !"_thingy setPosASL (ATLToASL _pos);"
|
5 setPosASL !="_unit setPosAsl [(_position select 0), (_position select 1), (LHA_height+1)];" !="_flame setPosASL [_pos select 0,_pos select 1,(_pos select 2)+0.2];" !="_fire setPosASL _location;" !="_objectHelper setPosASL _position;" !="_tmpbuilt setPosASL _location;" !="_b0x1337 setPosASL (getPosASL player);" !"_obj setPosASL [_center select 0, " !"_obj setPosASL [_a, " !"_objectSnapGizmo setPosASL " !"_para setposasl [\n" !"_thingy setPosASL (ATLToASL _pos);"
|
||||||
5 setTerrainGrid !"if (dayz_REsec == 1) then {call compile preprocessFileLineNumbers \""
|
5 setTerrainGrid !"if (dayz_REsec == 1) then {call compile preprocessFileLineNumbers \""
|
||||||
5 setUnitRecoilCoefficient
|
5 setUnitRecoilCoefficient
|
||||||
5 setVehicle !="_this setVehicleInit \"this setVectorUp [0,0,1];\";" !"if(_status) then {\n_vehicle setVehicleLock \"LOCKED\";\n} else {\n_vehicle setVehicleLock \"UNLOCKED\";\n};"
|
5 setVehicle !="_this setVehicleInit \"this setVectorUp [0,0,1];\";" !"if(_status) then {\n_vehicle setVehicleLock \"LOCKED\";\n} else {\n_vehicle setVehicleLock \"UNLOCKED\";\n};"
|
||||||
|
|||||||
Reference in New Issue
Block a user