Project Zomboid

Project Zomboid

Infinite weapons durability
17 kommentarer
Tidurian 5. mar. kl. 13:45 
if PrimaryItem:getCondition() ~= PrimaryItem:getConditionMax() or PrimaryItem:getHeadCondition() ~= PrimaryItem:getHeadConditionMax() or PrimaryItem:getSharpness() ~= PrimaryItem:getMaxSharpness() then

and

if SecondaryItem:getCondition() ~= SecondaryItem:getConditionMax() or SecondaryItem:getHeadCondition() ~= SecondaryItem:getHeadConditionMax() or SecondaryItem:getSharpness() ~= SecondaryItem:getMaxSharpness() then

those are one continous line. Steam breaks them into three lines.
Tidurian 5. mar. kl. 13:38 
@Thrice should not matter but "every line below a IF "one tab in" every "end" one tab back. but yeah should not matter.
Thrice 5. mar. kl. 13:37 
@Tildurian - Steam removed any formatting in that text you posted. Does that matter? Total lua noob.
Tidurian 10. feb. kl. 0:00 
Core.Main = function()
local player = getPlayer();
if player ~= null then
local PrimaryItem = player:getPrimaryHandItem();
local SecondaryItem = player:getSecondaryHandItem();
if PrimaryItem ~= nil then
if PrimaryItem:getCondition() ~= PrimaryItem:getConditionMax() or PrimaryItem:getHeadCondition() ~= PrimaryItem:getHeadConditionMax() or PrimaryItem:getSharpness() ~= PrimaryItem:getMaxSharpness() then
Core.DoRepair(PrimaryItem)
end
end
if SecondaryItem ~= nil then
if SecondaryItem:getCondition() ~= SecondaryItem:getConditionMax() or SecondaryItem:getHeadCondition() ~= SecondaryItem:getHeadConditionMax() or SecondaryItem:getSharpness() ~= SecondaryItem:getMaxSharpness() then
Core.DoRepair(SecondaryItem)
end
end
end
end
Tidurian 9. feb. kl. 23:54 
Core.DoRepair = function(ItemToRepair)
-- sets the maximum conditions
ItemToRepair:setCondition(ItemToRepair:getConditionMax() )
ItemToRepair:setHeadCondition(ItemToRepair:getHeadConditionMax())
if ItemToRepair:hasSharpness() then ItemToRepair:applyMaxSharpness() end
end
Tidurian 9. feb. kl. 23:54 
i went ahead and rewrote the entire "infiniteWeaponsDurability.lua" includes sharpness and also checks the secondary hand. also replaced reoccuring checks with local Variables. (should be better for performance)

will be a multipost since Steam dosnt allows me more then 1000 letters for comments....
Tidurian 9. feb. kl. 23:37 
Feature suggestion b42 : Keep bladed items sharpened as well as repaired. i already know the function to use within your mod : just add in your "Core.DoRepair function" : "if ItemToRepair:hasSharpness() then ItemToRepair:applyMaxSharpness() end"
TimmyNeutron 22. jan. kl. 15:14 
@Bryoda thank you so much kind sir your code works <3
TarLink 14. jan. kl. 3:16 
@Bryoda , thanks, I used your code and it works ! :steamthumbsup:
TarLink 11. jan. kl. 17:02 
I confirm, the axe broke, but the handle is still there !
Bryoda 3. jan. kl. 20:27 
@TimmyNeutron @Sham the fart that addition only replaces the functions repairing the handle with ones that repair the head. if you replace the original functions with this it should work. If there is a function to repair sharpness that could be added too but I'm not a modder

Core.Main = function()
if getPlayer()~= null and getPlayer():getPrimaryHandItem() ~= nil then
if getPlayer():getPrimaryHandItem():getCondition() ~= getPlayer():getPrimaryHandItem():getConditionMax() or getPlayer():getPrimaryHandItem():getHeadCondition() ~= getPlayer():getPrimaryHandItem():getHeadConditionMax() then
Core.DoRepair()
end
end
end

Core.DoRepair = function()
-- gets the item in the players hand
local ItemToRepair = getPlayer():getPrimaryHandItem()
-- sets the maximum conditions
ItemToRepair:setCondition( getPlayer():getPrimaryHandItem():getConditionMax() )
ItemToRepair:setHeadCondition( getPlayer():getPrimaryHandItem():getHeadConditionMax())
end
SCH 31. dec. 2024 kl. 21:49 
pls made sharp:steamthumbsup:
TimmyNeutron 30. dec. 2024 kl. 19:23 
@sham the fart this seems to break the handle repairing mechanism
Sham the fart 23. dec. 2024 kl. 15:33 
if you path to C:\Program Files (x86)\Steam\steamapps\workshop\content\108600\3386659539\mods\InfiniteWeaponsDurability\42\media\lua\client\ISUI\InfiniteWeaponsDurability.lua and open it in a text editor you can add

Core.Main = function()
if getPlayer()~= null and getPlayer():getPrimaryHandItem() ~= nil then
if getPlayer():getPrimaryHandItem():getHeadCondition() ~= getPlayer():getPrimaryHandItem():getHeadConditionMax() then
Core.DoRepair()
end
end
end

and

Core.DoRepair = function()
-- gets the item in the players hand
local ItemToRepair = getPlayer():getPrimaryHandItem()
-- sets the maximum conditions
ItemToRepair:setHeadCondition( getPlayer():getPrimaryHandItem():getHeadConditionMax() )
end

to also make head condition infinite, no idea how to make sharpness infinite, if you figure it out please tell me.
︻デ 一GOD_SKplCSGOSKINS 22. dec. 2024 kl. 4:18 
please make head condition unbreakable
caveira6614 20. dec. 2024 kl. 13:49 
bild 42
Rex87 19. dec. 2024 kl. 16:56 
only makes handle durability infinite, the head of the weapon still does get damaged and eventually weapon will just fall apart anyway

still this mod makes weapons just a tiny bit more durable but sadly not unbreakable