badonnthedeer / anthrotraits Goto Github PK
View Code? Open in Web Editor NEWA mod for Project Zomboid that adds anthro-themed traits for player characters, and integrates with mods that provide furry player models.
License: MIT License
A mod for Project Zomboid that adds anthro-themed traits for player characters, and integrates with mods that provide furry player models.
License: MIT License
"Collider: Userddata, Object: nil"
"Userdata" x10000
Wasteland canid stream
Weight cap becomes 55 with no traits added. Beast of Burden adds 10 lbs at 55 to make 65.
Wasteland Canid Stream
During play I trend towards less nutritious, singular objects since my bonuses don't apply to meals. Fix that. See if you can add tags to them on creation?
function: perform -- file: AnthroTraitsFunctionHooks.lua line # 121 | MOD: Anthro Traits.
[12-06-23 16:06:02.778] WARN : Multiplayer , 1686603962778> 69,200,025> EventPacket.tryProcess> Event skipped: [ player=0 "Badonn" | name="Update" | pos=( 10881.933 ; 10036.508 ; 0.0 ) | type1="" | type2="" | type3="" | type4="" | flags=512" | variables=41984 ].
only works if playerbumpplayer on. Sprinting into a player produces a bump for the receiving player, tripping the aggressor player.
Also make poisoning more obvious
Based off a message exchange with Collide and Albion on the PZ discord:
Albion's code worked flawlessly here https://github.com/demiurgeQuantified/Zombie-Contagion/tree/develop/Contents/mods/ZContagion_Traits
it really was as simple as copying his her https://github.com/demiurgeQuantified/Zombie-Contagion/blob/develop/Contents/mods/ZContagion_Traits/media/lua/client/zcontagion/traitcode.lua and https://github.com/demiurgeQuantified/Zombie-Contagion/blob/develop/Contents/mods/ZContagion_Traits/media/lua/shared/zcontagion/traits.lua files directly into my project and renaming the trait to match my own.
Mod here:
https://steamcommunity.com/sharedfiles/filedetails/?id=2503622437
The error below was thrown on a vanilla belt.
-----------------------------------------
STACK TRACE
-----------------------------------------
Callframe at: se.krka.kahlua.integration.expose.MultiLuaJavaInvoker@f02cb363
function: render -- file: ISToolTipInv.lua line # 78 | Vanilla
function: render -- file: AnthroTraitsFunctionHooks.lua line # 211 | MOD: Anthro Traits
function: render -- file: Skill Recovery Journal Tooltip.lua line # 262 | MOD: Skill Recovery Journal
ERROR: General , 1694205478459> 2,323,907,110> ExceptionLogger.logException> Exception thrown java.lang.reflect.InvocationTargetException at GeneratedMethodAccessor1677.invoke.
ERROR: General , 1694205478459> 2,323,907,110> DebugLogStream.printException> Stack trace:
java.lang.reflect.InvocationTargetException
at jdk.internal.reflect.GeneratedMethodAccessor1677.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at se.krka.kahlua.integration.expose.caller.MethodCaller.call(MethodCaller.java:62)
at se.krka.kahlua.integration.expose.LuaJavaInvoker.call(LuaJavaInvoker.java:198)
at se.krka.kahlua.integration.expose.MultiLuaJavaInvoker.call(MultiLuaJavaInvoker.java:60)
at se.krka.kahlua.vm.KahluaThread.callJava(KahluaThread.java:182)
at se.krka.kahlua.vm.KahluaThread.luaMainloop(KahluaThread.java:1007)
at se.krka.kahlua.vm.KahluaThread.call(KahluaThread.java:163)
at se.krka.kahlua.vm.KahluaThread.pcall(KahluaThread.java:1980)
at se.krka.kahlua.vm.KahluaThread.pcallvoid(KahluaThread.java:1827)
at se.krka.kahlua.integration.LuaCaller.pcallvoid(LuaCaller.java:38)
at zombie.ui.UIElement.render(UIElement.java:1534)
at zombie.ui.UIManager.render(UIManager.java:446)
at zombie.gameStates.IngameState.renderFrameUI(IngameState.java:1183)
at zombie.util.lambda.Invokers$Params1$CallbackStackItem.run(Invokers.java:37)
at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71)
at zombie.core.profiling.AbstractPerformanceProfileProbe.lambda$invokeAndMeasure$0(AbstractPerformanceProfileProbe.java:83)
at zombie.util.lambda.Stacks$Params3$CallbackStackItem.invoke(Stacks.java:230)
at zombie.util.lambda.Stacks$GenericStack.invokeAndRelease(Stacks.java:26)
at zombie.util.Lambda.capture(Lambda.java:130)
at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:81)
at zombie.gameStates.IngameState.renderframeui(IngameState.java:1172)
at zombie.gameStates.IngameState.renderInternal(IngameState.java:1324)
at zombie.util.lambda.Invokers$Params1$CallbackStackItem.run(Invokers.java:37)
at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71)
at zombie.core.profiling.AbstractPerformanceProfileProbe.lambda$invokeAndMeasure$0(AbstractPerformanceProfileProbe.java:83)
at zombie.util.lambda.Stacks$Params3$CallbackStackItem.invoke(Stacks.java:230)
at zombie.util.lambda.Stacks$GenericStack.invokeAndRelease(Stacks.java:26)
at zombie.util.Lambda.capture(Lambda.java:130)
at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:81)
at zombie.gameStates.IngameState.render(IngameState.java:1271)
at zombie.gameStates.GameStateMachine.render(GameStateMachine.java:37)
at zombie.util.lambda.Invokers$Params1$CallbackStackItem.run(Invokers.java:37)
at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:71)
at zombie.core.profiling.AbstractPerformanceProfileProbe.lambda$invokeAndMeasure$0(AbstractPerformanceProfileProbe.java:83)
at zombie.util.lambda.Stacks$Params3$CallbackStackItem.invoke(Stacks.java:230)
at zombie.util.lambda.Stacks$GenericStack.invokeAndRelease(Stacks.java:26)
at zombie.util.Lambda.capture(Lambda.java:130)
at zombie.core.profiling.AbstractPerformanceProfileProbe.invokeAndMeasure(AbstractPerformanceProfileProbe.java:81)
at zombie.GameWindow.renderInternal(GameWindow.java:340)
at zombie.GameWindow.frameStep(GameWindow.java:774)
at zombie.GameWindow.run_ez(GameWindow.java:681)
at zombie.GameWindow.mainThread(GameWindow.java:495)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassCastException: class zombie.inventory.types.InventoryContainer cannot be cast to class zombie.inventory.types.Clothing (zombie.inventory.types.InventoryContainer and zombie.inventory.types.Clothing are in unnamed module of loader 'app')
at zombie.inventory.types.Clothing.DoTooltip(Clothing.java:237)
at zombie.inventory.InventoryItem.DoTooltip(InventoryItem.java:619)
... 45 more
LOG : General , 1694205478461> 2,323,907,111>
either add on to carn/herb/bug-o-ssieur or create a different one
Player of the beta was confused with what rotten foods he was able to eat less than 30 mins after character creation. Make affected items more obvious to the player.
function: ATOnCharacterCollide -- file: AnthroTraits.lua line # 642 | MOD: Anthro Traits.
[12-06-23 16:14:03.265] ERROR: General , 1686604443265> 69,680,515> ExceptionLogger.logException> Exception thrown java.lang.RuntimeException: Object tried to call nil in ATOnCharacterCollide at KahluaUtil.fail line:82..
[12-06-23 16:14:03.265] ERROR: General , 1686604443265> 69,680,516> DebugLogStream.printException> Stack trace:.
[12-06-23 16:14:03.270] LOG : General , 1686604443270> 69,680,520> -----------------------------------------
Heyo!
Fantastic mod, really adds to the flavor of playing an anthro creature.
I'm having trouble with the traits not showing their description in-game. I've tried unsubbing, resubbing, restarting the game in various combinations without much luck.
Edit: Sike, apparently.
I loaded up the game to grab a screenshot and they were working. Only thing I did differently is that I loaded up a save file I'd already started and went to make a new character.
Either that gets the descriptions to register properly, or you gotta really spam a restart of the game multiple times. But they do show up. Will post again if I have further trouble.
Last edited by Kaiser; Nov 3 @ 9:34pm โ [See post history](javascript:Forum_ShowForumAudits( '3817417431886225385', '3942398662636308875' );)
#28
MommaBee has Project Zomboid Nov 18 @ 9:27am
Im also having the issue as Kaiser above, im thinking it could be a mod description or another mod possibly over writing the descriptions? but im not entirely sure
eat half ham
[12-06-23 00:42:20.678] LOG : General , 1686544940678> 10,181,286> Item| BaseHunger: -0.6000000238418579, ThirstChange: 0, BoredomChange: 0, UnhappyChange: 0, Calories: 780.
[12-06-23 00:42:20.679] LOG : General , 1686544940679> 10,181,286> Before Mod| Hunger: 0.03786119818687439, Thirst: 0.10292135924100876, Boredom: 3.8533828258514404, Unhappiness: 5.250000953674316, Calories:-733.5172119140625.
[12-06-23 00:42:20.679] LOG : General , 1686544940679> 10,181,287> After Mod| Hunger: -0.11213880777359009, Thirst: 0.10292135924100876, Boredom: 3.8533828258514404, Unhappiness: 5.250000953674316, Calories:-928.5172119140625.
eat half ham
[12-06-23 00:44:57.247] LOG : General , 1686545097247> 10,337,851> Item| BaseHunger: -0.6000000238418579, ThirstChange: 0, BoredomChange: 0, UnhappyChange: 0, Calories: 780.
[12-06-23 00:44:57.247] LOG : General , 1686545097247> 10,337,852> Before Mod| Hunger: -0.26408085227012634, Thirst: 0.14571015536785126, Boredom: 11.275405883789062, Unhappiness: 5, Calories:-208.2215576171875.
[12-06-23 00:44:57.248] LOG : General , 1686545097248> 10,337,852> After Mod| Hunger: -0.5640808343887329, Thirst: 0.14571015536785126, Boredom: 11.275405883789062, Unhappiness: 5, Calories:-598.2215576171875.
Wasteland Canid stream
Wasteland Canid stream.
Cannot find item Base.Sunfish to add tag ATCarnivore.
[13-06-23 21:47:12.210] LOG : General , 1686710832210> 0> Cannot find item base.Ginsing to add tag ATHerbivore.
[13-06-23 21:47:12.211] LOG : General , 1686710832211> 0> Cannot find item base.Winterberry to add tag ATHerbivore.
ISRemoveGlass.lua line # 70 | Vanilla.
[17-06-23 23:35:42.151] ERROR: General , 1687059342151> 354,968,969> ExceptionLogger.logException> Exception thrown java.lang.IllegalArgumentException at NativeMethodAccessorImpl.invoke0 (Native Method)..
Was removing glass with suture holders in close proximity inside. Action was cancelled on completion.
Nullifies Beast of Burden. Attempts to fix have been met with no change.
function: ATOnObjectCollide -- file: AnthroTraits.lua line # 713 | MOD: Anthro Traits.
[12-06-23 16:00:41.315] LOG : General , 1686603641315> 68,878,564> Object: nil.
[12-06-23 16:00:41.316] LOG : General , 1686603641316> 68,878,564> collider: userdata.
[12-06-23 16:00:41.316] LOG : General , 1686603641316> 68,878,565> -------------------------------------------------------------
attempted index: canTripChecked of non-table: null.
function: ATPlayerUpdate -- file: AnthroTraitsMain.lua line # 796 | MOD: Anthro Traits.
[16-10-23 01:03:02.473] LOG : General , 1697439782473> 5,193,240,822> -------------------------------------------------------------
attempted index: oldFallTime of non-table: null.
[16-10-23 01:03:02.473] LOG : General , 1697439782473> 5,193,240,822> -----------------------------------------
STACK TRACE
My theory is that since a new character isn't created, the OldFallTime var never gets created and added to a character, causing this issue.
elseif instanceof(item, "Drainable") then
local text = getText("IGUI_invpanel_Remaining") .. ":"
self:drawTextAndProgressBar(text, item:getUsedDelta(), xoff, top, fgText, fgBar)
elseif item:getMeltingTime() > 0 then
local text = getText("IGUI_invpanel_Melting") .. ":"
self:drawTextAndProgressBar(text, item:getMeltingTime() / 100, xoff, top, fgText, fgBar)
elseif instanceof(item, "Food") then
if item:isIsCookable() and not item:isFrozen() and item:getHeat() > 1.6 then
local ct = item:getCookingTime()
local mtc = item:getMinutesToCook()
local mtb = item:getMinutesToBurn()
local f = ct / mtc;
local s = getText("IGUI_invpanel_Cooking") .. ":"
if ct > mtb then
s = getText("IGUI_invpanel_Burnt") .. ":"
elseif ct > mtc then
s = getText("IGUI_invpanel_Burning") .. ":"
f = (ct - mtc) / (mtb - mtc);
fgBar.r = getCore():getBadHighlitedColor():getR()
fgBar.g = getCore():getBadHighlitedColor():getG()
fgBar.b = getCore():getBadHighlitedColor():getB()
end
self:drawText(s, 40 + 30 + xoff, top + (self.itemHgt - self.fontHgt) / 2, fgText.a, fgText.r, fgText.g, fgText.b, self.font);
if item:isBurnt() then return end
local textWid = getTextManager():MeasureStringX(self.font, s)
self:drawProgressBar(40 + math.max(120, 30 + textWid + 20) + xoff, top+(self.itemHgt/2)-1, 100, 2, f, fgBar);
elseif item:getFreezingTime() > 0 then
local text = getText("IGUI_invpanel_FreezingTime") .. ":"
self:drawTextAndProgressBar(text, item:getFreezingTime() / 100, xoff, top, fgText, fgBar)
Try this from --ISInventoryPane.drawItemDetails
On creating a second character, ATEveryOneMinute fires, erroring out on line 779. it can't find a player with the player index and when modData is attempted to be initialized, it causes said error. Look into the event itself and figure out if there's a way to turn it off as a player spawns.
knockdowns only show on the source client and don't sync with others.
Dhert, discord:
No, the server doesn't process any of that information. On hit the attacker sends a command to the sever with the zombie's ID (and some other stuff), and this is then relayed to all players. I build a cache periodically of all zombies in your current cell and organize it by ID so I can just get the zombie's reference by the ID received. I then just call the java hit reaction function, as I don't have access to the "FallDown" state (but I do to all the others. blech).
NuclearPotato on Steam:
How about the digitigrade trait reducing your carrying capacity somewhat? One of the main benefits of a human plantigrade stature is that more weight can be distributed across more surface area straight down, while a digitigrade leg is in a constant state of stress and has less surface area to bear weight on.
Beast of Burden nullified. Attempts to fix have met with no change.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.