FrenzyFire000 Posted July 6, 2014 Report Share Posted July 6, 2014 Has anyone else notice that the smelting is not working in epoch 1.0.5.1? I have looked in the code and don't see player_mineOre.sqf, or anything else that goes along with this. I know that the Dev team has redone a lot of code this time around, but we can't smelt any orr and we had a contest running on my server that requires orr smelting. Anyone have any clues? Thanks FrenzyFire000 Link to comment Share on other sites More sharing options...
Incar Posted July 6, 2014 Report Share Posted July 6, 2014 I've read a few people say it has an endless cycle and never completes, it's a bug that will be addressed in 1.0.5.2 update. https://github.com/vbawol/DayZ-Epoch/blob/master/CHANGE%20LOG%201.0.5.2.txt [FIXED] Infinite loop when crafting ore into bars #1351 @icomrade Link to comment Share on other sites More sharing options...
prue420 Posted July 20, 2014 Report Share Posted July 20, 2014 Can someone just post a fix so we don't have to wait? Link to comment Share on other sites More sharing options...
icomrade Posted July 20, 2014 Report Share Posted July 20, 2014 Here's the changes. https://github.com/vbawol/DayZ-Epoch/commit/8af00ef28429a8751e0ad619dbf5e7e278b28087 calamity 1 Link to comment Share on other sites More sharing options...
FrenzyFire000 Posted September 4, 2014 Author Report Share Posted September 4, 2014 Yah, this did not fix anything. Made it worst got dayz_code file errors in the files init.sqf. Link to comment Share on other sites More sharing options...
TolH Posted September 7, 2014 Report Share Posted September 7, 2014 Yah, this did not fix anything. Made it worst got dayz_code file errors in the files init.sqf. # Make a file called " player_craftItem.sqf " then put this in it: /* DayZ Epoch Crafting 0.3 Made for DayZ Epoch && Unleashed by [VB]AWOL please ask permission to use/edit/distrubute email [email protected]. Thanks to thevisad for help with the spawn call fixes. USAGE EXAMPLE: class ItemActions { class Crafting { text = "Craft Tent"; script = ";['Crafting','CfgMagazines', _id] spawn player_craftItem;"; // [Class of itemaction,CfgMagazines || CfgWeapons, item] neednearby[] = {"workshop","fire"}; requiretools[] = {"ItemToolbox","ItemKnife"}; // (cfgweapons only) output[] = {{"ItemTent",1}}; // (CfgMagazines, qty) input[] = {{"ItemCanvas",2},{"ItemPole",2}}; // (CfgMagazines, qty) inputstrict = true; // (CfgMagazines input without inheritsFrom) Optional inputweapons[] = {"ItemToolbox"}; // consume toolbox (cfgweapons only) outputweapons[] = {"ItemToolbox"}; // return toolbox (cfgweapons only) }; }; */ private ["_tradeComplete","_onLadder","_canDo","_selectedRecipeOutput","_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"]; if(DZE_ActionInProgress) exitWith { cutText [(localize "str_epoch_player_63") , "PLAIN DOWN"]; }; DZE_ActionInProgress = true; // This is used to find correct recipe based what itemaction was click allows multiple recipes per item. _crafting = _this select 0; // This tells the script what type of item we are clicking on _baseClass = _this select 1; _item = _this select 2; _abort = false; _distance = 3; _reason = ""; _waterLevel = 0; _outputWeapons = []; _selectedRecipeOutput = []; _onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1; _canDo = (!r_drag_sqf && !r_player_unconscious && !_onLadder); // Need Near Requirements _needNear = getArray (configFile >> _baseClass >> _item >> "ItemActions" >> _crafting >> "neednearby"); if("fire" in _needNear) then { _isNear = {inflamed _x} count (getPosATL player nearObjects _distance); if(_isNear == 0) then { _abort = true; _reason = "fire"; }; }; if("workshop" in _needNear) then { _isNear = count (nearestObjects [player, ["Wooden_shed_DZ","WoodShack_DZ","WorkBench_DZ"], _distance]); if(_isNear == 0) then { _abort = true; _reason = "workshop"; }; }; if(_abort) exitWith { cutText [format[(localize "str_epoch_player_149"),_reason,_distance], "PLAIN DOWN"]; DZE_ActionInProgress = false; }; // diag_log format["Checking for fire: %1", _isFireNear]; if (_canDo) then { _selectedRecipeTools = getArray (configFile >> _baseClass >> _item >> "ItemActions" >> _crafting >> "requiretools"); _selectedRecipeOutput = getArray (configFile >> _baseClass >> _item >> "ItemActions" >> _crafting >> "output"); _selectedRecipeInput = getArray (configFile >> _baseClass >> _item >> "ItemActions" >> _crafting >> "input"); _selectedRecipeInputStrict = if ((isNumber (configFile >> _baseClass >> _item >> "ItemActions" >> _crafting >> "inputstrict")) && (getNumber (configFile >> _baseClass >> _item >> "ItemActions" >> _crafting >> "inputstrict") > 0)) then {true} else {false}; _outputWeapons = getArray (configFile >> _baseClass >> _item >> "ItemActions" >> _crafting >> "outputweapons"); _inputWeapons = getArray (configFile >> _baseClass >> _item >> "ItemActions" >> _crafting >> "inputweapons"); _sfx = getText(configFile >> _baseClass >> _item >> "sfx"); if(_sfx == "") then { _sfx = "repair"; }; _randomOutput = 0; if(isNumber (configFile >> _baseClass >> _item >> "ItemActions" >> _crafting >> "randomOutput")) then { _randomOutput = getNumber(configFile >> _baseClass >> _item >> "ItemActions" >> _crafting >> "randomOutput"); }; _craft_doLoop = true; _tradeComplete = 0; while {_craft_doLoop} do { _temp_removed_array = []; _missing = ""; _missingTools = false; { _hastoolweapon = _x in weapons 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. _proceed = true; if (count _selectedRecipeInput > 0) then { { _itemIn = _x select 0; _countIn = _x select 1; _qty = { (_x == _itemIn) || (!_selectedRecipeInputStrict && configName(inheritsFrom(configFile >> "cfgMagazines" >> _x)) == _itemIn) } count magazines player; if(_qty < _countIn) exitWith { _missing = _itemIn; _missingQty = (_countIn - _qty); _proceed = false; }; } forEach _selectedRecipeInput; }; // If all parts proceed if (_proceed) then { cutText [(localize "str_epoch_player_62"), "PLAIN DOWN"]; [1,1] call dayz_HungerThirst; player playActionNow "Medic"; [player,_sfx,0,false] call dayz_zombieSpeak; [player,50,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 && !_isMedic) then { r_doLoop = false; _finished = true; }; if (r_interrupt) then { r_doLoop = false; }; sleep 0.1; }; r_doLoop = false; if (_finished) then { _removed_total = 0; // count total of removed items _tobe_removed_total = 0; // count total of all to be removed items _waterLevel_lowest = 0; // find the lowest _waterLevel // Take items { _removed = 0; _itemIn = _x select 0; _countIn = _x select 1; // diag_log format["Recipe Finish: %1 %2", _itemIn,_countIn]; _tobe_removed_total = _tobe_removed_total + _countIn; // Preselect the item { _configParent = configName(inheritsFrom(configFile >> "cfgMagazines" >> _x)); if ((_x == _itemIn) || (!_selectedRecipeInputStrict && _configParent == _itemIn)) then { // Get lowest waterlevel if ((_x == "ItemWaterbottle") ||( _configParent == "ItemWaterbottle")) then { _waterLevel = getNumber(configFile >> "CfgMagazines" >> _x >> "wateroz"); // _waterLevel = floor((getNumber(configFile >> "CfgMagazines" >> _x >> "wateroz")) - 1); if (_waterLevel_lowest == 0 || _waterLevel < _waterLevel_lowest) then { _waterLevel_lowest = _waterLevel; }; }; }; } forEach (magazines player); // } forEach magazines player; { _configParent = configName(inheritsFrom(configFile >> "cfgMagazines" >> _x)); if( (_removed < _countIn) && ((_x == _itemIn) || (!_selectedRecipeInputStrict && _configParent == _itemIn))) then { if ((_waterLevel_lowest == 0) || ((_waterLevel_lowest > 0) && (getNumber(configFile >> "CfgMagazines" >> _x >> "wateroz") == _waterLevel_lowest))) then { _num_removed = ([player,_x] call BIS_fnc_invRemove); } else { _num_removed = 0; }; _removed = _removed + _num_removed; _removed_total = _removed_total + _num_removed; if(_num_removed >= 1) then { //diag_log format["debug remove: %1 of: %2", _configParent, _x]; if (_x == "ItemWaterbottle" || _configParent == "ItemWaterbottle") then { _waterLevel = floor((getNumber(configFile >> "CfgMagazines" >> _x >> "wateroz")) - 1); }; _temp_removed_array set [count _temp_removed_array,_x]; }; }; } forEach (magazines player); // } forEach magazines player; } forEach _selectedRecipeInput; //diag_log format["removed: %1 of: %2", _removed, _tobe_removed_total]; // Only proceed if all parts were removed successfully if(_removed_total == _tobe_removed_total) then { _num_removed_weapons = 0; { _num_removed_weapons = _num_removed_weapons + ([player,_x] call BIS_fnc_invRemove); } forEach _inputWeapons; if (_num_removed_weapons == (count _inputWeapons)) then { if(_randomOutput == 1) then { if (!isNil "_outputWeapons" && count _outputWeapons > 0) then { _selectedWeapon = _outputWeapons call BIS_fnc_selectRandom; _outputWeapons = [_selectedWeapon]; }; if (!isNil "_selectedRecipeOutput" && count _selectedRecipeOutput > 0) then { _selectedMag = _selectedRecipeOutput call BIS_fnc_selectRandom; _selectedRecipeOutput = [_selectedMag]; }; // exit loop _craft_doLoop = false; }; { player addWeapon _x; } forEach _outputWeapons; { _itemOut = _x select 0; _countOut = _x select 1; if (_itemOut == "ItemWaterbottleUnfilled") then { if (_waterLevel > 0) then { _itemOut = format["ItemWaterbottle%1oz",_waterLevel]; }; }; // diag_log format["Checking for water level: %1", _waterLevel]; for "_x" from 1 to _countOut do { player addMagazine _itemOut; }; _textCreate = getText(configFile >> "CfgMagazines" >> _itemOut >> "displayName"); // Add crafted item cutText [format[(localize "str_epoch_player_150"),_textCreate,_countOut], "PLAIN DOWN"]; // sleep here sleep 1; } forEach _selectedRecipeOutput; _tradeComplete = _tradeComplete+1; }; } else { // Refund parts since we failed {player addMagazine _x; } forEach _temp_removed_array; cutText [format[(localize "str_epoch_player_151"),_removed_total,_tobe_removed_total], "PLAIN DOWN"]; }; } else { r_interrupt = false; if (vehicle player == player) then { [objNull, player, rSwitchMove,""] call RE; player playActionNow "stop"; }; cutText [(localize "str_epoch_player_64"), "PLAIN DOWN"]; _craft_doLoop = false; }; } else { _textMissing = getText(configFile >> "CfgMagazines" >> _missing >> "displayName"); cutText [format[(localize "str_epoch_player_152"),_missingQty, _textMissing,_tradeComplete], "PLAIN DOWN"]; _craft_doLoop = false; }; } else { _textMissing = getText(configFile >> "CfgWeapons" >> _missing >> "displayName"); cutText [format[(localize "STR_EPOCH_PLAYER_137"),_textMissing], "PLAIN DOWN"]; _craft_doLoop = false; }; }; } else { cutText [(localize "str_epoch_player_64"), "PLAIN DOWN"]; }; DZE_ActionInProgress = false; # Copy the file anywhere in your mission folder where your init.sqf is. # Open your compiles.sqf assuming you already have a custom one and make a search for player_craftItem.sqf You should find this: player_craftItem = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_craftItem.sqf"; # Replace the path to where you copied the new player_craftItem.sqf Should look like this: player_craftItem = compile preprocessFileLineNumbers "YOURPATHTOFILE\player_craftItem.sqf"; MG-Maximus 1 Link to comment Share on other sites More sharing options...
FrenzyFire000 Posted September 8, 2014 Author Report Share Posted September 8, 2014 (edited) Thanks so much. I will try it now. :D Worked great!!!! Edited September 8, 2014 by FrenzyFire000 Link to comment Share on other sites More sharing options...
MG-Maximus Posted September 20, 2014 Report Share Posted September 20, 2014 Great fix. Thanks TolH :) Link to comment Share on other sites More sharing options...
TolH Posted September 22, 2014 Report Share Posted September 22, 2014 This is not my doing, it's taken from the git hub just to be clear. Link to comment Share on other sites More sharing options...
spoofshadow Posted September 26, 2014 Report Share Posted September 26, 2014 okay I have been trying to fix this and I followed your steps but now crafting is all Broken so i have done something wrong ... here is what i have done the epoch server files all lie with in a epoch folder on my E:\ drive .... E:\epoch\(all server files) here is my edit: player_craftItem = compile preprocessFileLineNumbers "E:\epoch\MPMissions\DayZ_Epoch_11.Chernarus\player_craftItem.sqf"; or did i put this in the wrong folder? I have also checked my init.sqf was indeed still pointing to the correct compiles.sqf Link to comment Share on other sites More sharing options...
TolH Posted September 26, 2014 Report Share Posted September 26, 2014 When your .sqf is directly in your DayZ_Epoch_11.Chernarus folder, then your path should look like this: player_craftItem = compile preprocessFileLineNumbers "player_craftItem.sqf"; Also from your init.sqf, what is the path you did put in there to point to your custom compile.sqf ? Link to comment Share on other sites More sharing options...
spoofshadow Posted September 27, 2014 Report Share Posted September 27, 2014 in my init.sqf it is call compile preprocessFileLineNumbers "custom\compiles.sqf"; //Compile regular functions EDIT: btw changing it to player_craftItem = compile preprocessFileLineNumbers "player_craftItem.sqf"; fixed my problem. Thank you! Link to comment Share on other sites More sharing options...
Rusty Posted February 22, 2015 Report Share Posted February 22, 2015 Thank you for posting this. I really appreciate it! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now