Project Zomboid

Project Zomboid

Dynamic Traits Sauce Edition [B41]
BlackORG 25 Jul, 2022 @ 10:32am
[BugFix] DTByKills doesn't work on existing save with character that has more than 3000 kills
Problem:
Desensitized perk added only if player has kills in between 1000 and 1050

Fix:
Remove upper limit


Fixed code with little bit of refactoring (DTByKills.lua):
function traitsGainsByKills(zombie) for playerIndex = 0, getNumActivePlayers()-1 do local player = getSpecificPlayer(playerIndex); local zombieKills = player:getZombieKills(); -- replaced all player:getZombieKills() calls with variable if zombieKills >= 250 and zombieKills <= 300 then if player:HasTrait("Cowardly") then player:getTraits():remove("Cowardly"); end if player:HasTrait("Nightmares") then player:getTraits():remove("Nightmares"); end elseif zombieKills >= 500 and zombieKills <= 550 and not player:HasTrait("Brave") then player:getTraits():add("Brave"); elseif zombieKills >= 750 and zombieKills <= 800 then if player:HasTrait("Agoraphobic") then player:getTraits():remove("Agoraphobic"); end if player:HasTrait("Claustophobic") then player:getTraits():remove("Claustophobic"); end if player:HasTrait("Hemophobic") then player:getTraits():remove("Hemophobic"); end elseif zombieKills >= 1000 and not player:HasTrait("Desensitized") then -- removed upper limit - "and zombieKills <= 1050" if player:HasTrait("Pacifist") then player:getTraits():remove("Pacifist"); end player:getTraits():remove("Brave"); player:getTraits():add("Desensitized"); end end end Events.OnZombieDead.Add(traitsGainsByKills);

Now it works as expected :)
Thank you for your mod!
Last edited by BlackORG; 25 Jul, 2022 @ 10:36am