Jump to content

XLib and XSkills


Xandu

Recommended Posts

A few observations and questions about the Gourmet ability...

 

Getting above tier 5 must be extra rare; even with Gourmet 2 and skill level 9, I've never seen a 5.

Stacked items seem to always go down in quality; if you cook a bunch of meats, the result's quality will go down with each subsequent meat, until it's terrible. If you pick them out one by one and stack them, the stack gets the average quality of the meats.

The same thing seems to happen to pies; they get a quality when part cooked, but the quality always goes down when fully cooked.

 

Does getting Epic quality require anything else? My goal of obtaining a Legendary pie seems out of reach...

Link to comment
Share on other sites

15 hours ago, Hexedian said:

A few observations and questions about the Gourmet ability...

 

Getting above tier 5 must be extra rare; even with Gourmet 2 and skill level 9, I've never seen a 5.

Stacked items seem to always go down in quality; if you cook a bunch of meats, the result's quality will go down with each subsequent meat, until it's terrible. If you pick them out one by one and stack them, the stack gets the average quality of the meats.

The same thing seems to happen to pies; they get a quality when part cooked, but the quality always goes down when fully cooked.

 

Does getting Epic quality require anything else? My goal of obtaining a Legendary pie seems out of reach...

It scales up to cooking skill level 20. So there is still room for improvements. 😄 

I will take a look at the stacked items. It shold behave the same as stacking them in your inventory.


Pies are a little bit more complicated because of the backing stage mechanics of the game. It shouldn't always go down. It should be random. But i am going to make some changes there, too.

It's the same as cooking meals. There are some factors that influence the quality of the meal such as the used ingredients and your cooking skill.

  • Like 2
Link to comment
Share on other sites

I made a version for the current pre versions of the game for people that like to find bugs. So i don't know if everything works as intended but at least it should load the mod without issues. 
This version is for the game version 1.16.0-pre.5.

Patch Notes:

-Made some adjustments on how meals with multiple baking stages such as pies calculate quality.
    -Increasing the baking stages no longer set the quality to a new random value.
    -Becoming charred has now a massive influence on the quality.
-Made 1.16 api adjustments (primarily gui, liquid container api and food stuff)

-fixed a crash that can occur when you die from eating damaging food
-fixed a bug in the quality calculation when cooking stackable food (the items were merged with an item with 0 quality before the actual quality calculation, this still happens but will now be taken into account)

xskills_v0.6.3-pre.1.zip

xlib_v0.6.3-pre.1.zip

Edited by Xandu
  • Thanks 1
Link to comment
Share on other sites

[Error] System.NullReferenceException: Object reference not set to an instance of an object.
   at XSkills.CollectiblePatch.Postfix(CollectibleObject __instance, Single __state, Single secondsUsed, ItemSlot slot, EntityAgent byEntity)
   at Vintagestory.API.Common.CollectibleObject.tryEatStop_Patch2(CollectibleObject this, Single secondsUsed, ItemSlot slot, EntityAgent byEntity)
   at Vintagestory.API.Common.CollectibleObject.OnHeldInteractStop_Patch1(CollectibleObject this, Single secondsUsed, ItemSlot slot, EntityAgent byEntity, BlockSelection blockSel, EntitySelection entitySel)
   at Vintagestory.Server.ServerSystemInventory.HandleHandInteraction(_7Tp9zNMxEyO9KldCgN7pQgpQtPN packet, ConnectedClient client)
   at Vintagestory.Server.ServerMain.ProcessNetMessage(NetIncomingMessage msg, NetServer mainSocket)

 

we are using 0.6.1 / 0.6.2. After my player crashed, his corpse (Mod: Player Corpse) disappeared in front of his eyes, after logging back in.

Link to comment
Share on other sites

47 minutes ago, CoB_Kai said:

[Error] System.NullReferenceException: Object reference not set to an instance of an object.
   at XSkills.CollectiblePatch.Postfix(CollectibleObject __instance, Single __state, Single secondsUsed, ItemSlot slot, EntityAgent byEntity)
   at Vintagestory.API.Common.CollectibleObject.tryEatStop_Patch2(CollectibleObject this, Single secondsUsed, ItemSlot slot, EntityAgent byEntity)
   at Vintagestory.API.Common.CollectibleObject.OnHeldInteractStop_Patch1(CollectibleObject this, Single secondsUsed, ItemSlot slot, EntityAgent byEntity, BlockSelection blockSel, EntitySelection entitySel)
   at Vintagestory.Server.ServerSystemInventory.HandleHandInteraction(_7Tp9zNMxEyO9KldCgN7pQgpQtPN packet, ConnectedClient client)
   at Vintagestory.Server.ServerMain.ProcessNetMessage(NetIncomingMessage msg, NetServer mainSocket)

 

we are using 0.6.1 / 0.6.2. After my player crashed, his corpse (Mod: Player Corpse) disappeared in front of his eyes, after logging back in.

This one should be fixed in the 0.6.3-pre.1 version for the game version 1.16.0-pre.5. Unfortunately i don't have the time at the moment to make a patch for older versions of the game.

Link to comment
Share on other sites

21 minutes ago, Tarquinius753 said:

We are using your mods on our Server but have noticed that the sapling droprate skill doesn’t seem to affect the tree seed droprate. Would it be possible to adjust this skill to the 1.15 tree seeds?

I thought i made it so that these saplings are affected by this skill. Can you say which saplings are not affected? I do not know anymore which saplings were added with 1.15.

Link to comment
Share on other sites

36 minutes ago, Xandu said:

I thought i made it so that these saplings are affected by this skill. Can you say which saplings are not affected? I do not know anymore which saplings were added with 1.15.

The thing is, that it isn‘t saplings anymore but seeds. I have for example a pine farm to produce coal. Before 1.15 i used to get more saplings than needed to replant the forest without needing to shear the leaves (by using the skill). But now even if i shear them i get only enough to replant half of them. But other players have noticed it with the other trees too. Oak maple birch, kapok acazia but the new trees like redwood and ebony are really hard to get seeds. We just noticed that sustainable forestry doesn’t work anymore and thought it might be because the skill is still looking for saplings but the game giving seeds for all trees instead of saplings. But might also be caused by the game giving way less seeds than it gave saplings. I don’t know. We just want to avoid deforesting the whole servermap.

Link to comment
Share on other sites

5 hours ago, Tarquinius753 said:

The thing is, that it isn‘t saplings anymore but seeds. I have for example a pine farm to produce coal. Before 1.15 i used to get more saplings than needed to replant the forest without needing to shear the leaves (by using the skill). But now even if i shear them i get only enough to replant half of them. But other players have noticed it with the other trees too. Oak maple birch, kapok acazia but the new trees like redwood and ebony are really hard to get seeds. We just noticed that sustainable forestry doesn’t work anymore and thought it might be because the skill is still looking for saplings but the game giving seeds for all trees instead of saplings. But might also be caused by the game giving way less seeds than it gave saplings. I don’t know. We just want to avoid deforesting the whole servermap.

I investigated this a little bit and couldn't find any technical issue. So it should work as in 1.14. It could be that the drop rate was lowered by the base game and therefore reduced the total drop rate. If you want, you can buff the ability in the configuration files to get more saplings.

  • Thanks 1
Link to comment
Share on other sites

1 hour ago, Xandu said:

I investigated this a little bit and couldn't find any technical issue. So it should work as in 1.14. It could be that the drop rate was lowered by the base game and therefore reduced the total drop rate. If you want, you can buff the ability in the configuration files to get more saplings.

Thank you for testing maybe we have some problem on our server. Seems we need to test where it is coming from. Maby some mods don’t like each other. By the way i just noticed some problems with it not giving metal bits so it seems to be on our end.

Edited by Tarquinius753
Link to comment
Share on other sites

  • 2 weeks later...

thanks for the great mod!

now some bugs in the latest 1.16rc2

canteen cook doesn't work with liquids. liquids can only be placed as a max 6l in the cooking pot.

can't shift click reliably items out of the strong bag inventory when is has a blue overlay

bright harvest has a typo instead of "once" it is used "ones"

  • Thanks 1
Link to comment
Share on other sites

Spoiler

[Server Fatal] System.NullReferenceException: Object reference not set to an instance of an object.

   at XSkills.BlockEntityFirepitPatch.Postfix(BlockEntityFirepit __instance, Single& __result)

   at Vintagestory.GameContent.BlockEntityFirepit.maxCookingTime_Patch1(BlockEntityFirepit this)

   at Vintagestory.GameContent.BlockEntityFirepit.OnBurnTick(Single dt)

   at Vintagestory.Common.EventManager.TriggerGameTick(Int64 ellapsedMilliseconds, IWorldAccessor world)

   at Vintagestory.Server.CoreServerEventManager.TriggerGameTick(Int64 ellapsedMilliseconds, IWorldAccessor world)

   at Vintagestory.Server.ServerMain.Process()

we are on 1.15.10 and xskills version 0.6.2

  • Thanks 1
Link to comment
Share on other sites

CTD when eating a gourmet 1 portion of 3stacks of meat with white currant

Spoiler

Running on 64 bit Windows with 16 GB RAM
Version: v1.16.0-rc.5 (Unstable)03/01/2022 19:01:58: Critical error occurred
System.MissingMethodException: Method not found: 'Void Vintagestory.API.Common.Entities.EntityBehavior.OnEntityReceiveDamage(Vintagestory.API.Common.DamageSource, Single)'.
   at XLib.XEffects.HotEffect.OnInterval()
   at XLib.XEffects.Effect.CheckTick()
   at XLib.XEffects.AffectedEntityBehavior.OnGameTick(Single deltaTime)
   at Vintagestory.API.Common.Entities.Entity.OnGameTick(Single dt)
   at Vintagestory.API.Common.EntityAgent.OnGameTick(Single dt)
   at Vintagestory.Client.NoObf.ClientSystemEntities.OnGameTick(Single dt)
   at Vintagestory.Common.EventManager.TriggerGameTick(Int64 ellapsedMilliseconds, IWorldAccessor world)
   at Vintagestory.Client.NoObf.ClientMain.MainRenderLoop(Single dt)
   at Vintagestory.Client.NoObf.ClientMain.MainGameLoop(Single deltaTime)
   at _RpDe0Jt5dbuWGpUxAyvHOIbDBGg._JrOYFvXabkNin58oh7yl80dMH66(Single )
   at _NLF4wmb6UPVLzv4DtU2r1ijDMNo._g5gGlJCvd5tg8L2OIzh5Cqwv60N(Single )
   at _NLF4wmb6UPVLzv4DtU2r1ijDMNo._0gqbRXtZfqKlQCIZaKgLGM2FkhV(Single )
   at Vintagestory.Client.NoObf.ClientPlatformWindows.window_RenderFrame(Object sender, FrameEventArgs e)
   at System.EventHandler`1.Invoke(Object sender, TEventArgs e)
   at OpenTK.GameWindow.RaiseRenderFrame(Double elapsed, Double& timestamp) in C:\Users\Nexrem\Desktop\transfer\opentk\src\OpenTK\GameWindow.cs:line 479
   at OpenTK.GameWindow.DispatchRenderFrame() in C:\Users\Nexrem\Desktop\transfer\opentk\src\OpenTK\GameWindow.cs:line 454
   at OpenTK.GameWindow.Run(Double updates_per_second, Double frames_per_second) in C:\Users\Nexrem\Desktop\transfer\opentk\src\OpenTK\GameWindow.cs:line 375
   at _nFNsDM20as86sGo44HbF6xxAkUD._UjMaM1bzP5Ozg5ilu06DMFIxPyO(_uhgd4BSf8z6N7PAibzFcq8c5IRD , String[] )
   at _Y4Bk3tLdFsgoJryQq19g4IoitkE._UjMaM1bzP5Ozg5ilu06DMFIxPyO(ThreadStart )


-------------------------------

 

Link to comment
Share on other sites

On 12/25/2021 at 8:19 AM, nebux said:

thanks for the great mod!

now some bugs in the latest 1.16rc2

canteen cook doesn't work with liquids. liquids can only be placed as a max 6l in the cooking pot.

can't shift click reliably items out of the strong bag inventory when is has a blue overlay

bright harvest has a typo instead of "once" it is used "ones"

Thanks for your bug reports. Unfortunately there is not much i can do about the canteen cock ability an the moment since the liquid capacity is implemented differently than the normal slots capacity  and can not be changed that easy. Maybe i can find i way when Tyron adjust the implementation or published the source code. 

At the moment i couldn't find out why the shift click does not behave as expected. 

 

On 12/29/2021 at 10:30 AM, nebux said:

you can't get unlearn points anymore as making mead gives an alcohol beverage that doesn't give unlearn points

 

I will remove mead from the mod with the next update. But i haven't come up with a new way to get unlearn points. I wanted to add them  to alcohol in general. But the way the alcoholic drinks are implemented make it quite difficult to add things like this.
 

21 hours ago, nebux said:

CTD when eating a gourmet 1 portion of 3stacks of meat with white currant

  Reveal hidden contents

Running on 64 bit Windows with 16 GB RAM
Version: v1.16.0-rc.5 (Unstable)03/01/2022 19:01:58: Critical error occurred
System.MissingMethodException: Method not found: 'Void Vintagestory.API.Common.Entities.EntityBehavior.OnEntityReceiveDamage(Vintagestory.API.Common.DamageSource, Single)'.
   at XLib.XEffects.HotEffect.OnInterval()
   at XLib.XEffects.Effect.CheckTick()
   at XLib.XEffects.AffectedEntityBehavior.OnGameTick(Single deltaTime)
   at Vintagestory.API.Common.Entities.Entity.OnGameTick(Single dt)
   at Vintagestory.API.Common.EntityAgent.OnGameTick(Single dt)
   at Vintagestory.Client.NoObf.ClientSystemEntities.OnGameTick(Single dt)
   at Vintagestory.Common.EventManager.TriggerGameTick(Int64 ellapsedMilliseconds, IWorldAccessor world)
   at Vintagestory.Client.NoObf.ClientMain.MainRenderLoop(Single dt)
   at Vintagestory.Client.NoObf.ClientMain.MainGameLoop(Single deltaTime)
   at _RpDe0Jt5dbuWGpUxAyvHOIbDBGg._JrOYFvXabkNin58oh7yl80dMH66(Single )
   at _NLF4wmb6UPVLzv4DtU2r1ijDMNo._g5gGlJCvd5tg8L2OIzh5Cqwv60N(Single )
   at _NLF4wmb6UPVLzv4DtU2r1ijDMNo._0gqbRXtZfqKlQCIZaKgLGM2FkhV(Single )
   at Vintagestory.Client.NoObf.ClientPlatformWindows.window_RenderFrame(Object sender, FrameEventArgs e)
   at System.EventHandler`1.Invoke(Object sender, TEventArgs e)
   at OpenTK.GameWindow.RaiseRenderFrame(Double elapsed, Double& timestamp) in C:\Users\Nexrem\Desktop\transfer\opentk\src\OpenTK\GameWindow.cs:line 479
   at OpenTK.GameWindow.DispatchRenderFrame() in C:\Users\Nexrem\Desktop\transfer\opentk\src\OpenTK\GameWindow.cs:line 454
   at OpenTK.GameWindow.Run(Double updates_per_second, Double frames_per_second) in C:\Users\Nexrem\Desktop\transfer\opentk\src\OpenTK\GameWindow.cs:line 375
   at _nFNsDM20as86sGo44HbF6xxAkUD._UjMaM1bzP5Ozg5ilu06DMFIxPyO(_uhgd4BSf8z6N7PAibzFcq8c5IRD , String[] )
   at _Y4Bk3tLdFsgoJryQq19g4IoitkE._UjMaM1bzP5Ozg5ilu06DMFIxPyO(ThreadStart )

This one looks like an interface error that should automatically be fixed with the next update. I am surprised that not more of this kind of errors showed up yet.

Edited by Xandu
Link to comment
Share on other sites

I have uploaded a version for the current rc version of the game. I hopefully fixed the issues that occurred with the 16.0 update.

-hopefully fixed a fire pit crash (could not reproduce the crash, so it is difficult to test whether it is really fixed)
-fixed papyrus dropping cattails
-liquids should now work properly with the canteen cook ability again
-you can now add unlearn points to liquids
-you can now receive unlearn points from alcoholic drinks in general
-removed xskills mead

  • Thanks 1
Link to comment
Share on other sites

Version: v1.16.0-rc.6 (Unstable)1/5/2022 2:59:39 PM: Critical error occurred

System.NullReferenceException: Object reference not set to an instance of an object.

 at Vintagestory.API.Config.TranslationService.Load(Boolean lazyLoad)

 at Vintagestory.API.Config.Lang.Load(ILogger logger, IAssetManager assetManager, String defaultLanguage)

 at Vintagestory.Server.ServerSystemModHandler.OnLoadAssets()

at Vintagestory.Server.ServerMain.EnterRunPhase(EnumServerRunPhase runPhase)

at Vintagestory.Server.ServerMain.Launch()

at ().

at _1OzxJijwDv4UbCmbYyW3H8Jf8QN._H28AIBPAN7K3Llru23eo2kbE1Dk(ThreadStart )



Something in xskills is causing my server to crash at startup. 

Link to comment
Share on other sites

Xandu , when i try to put mods into my 1.16 rc6 server, I'm getting this error at launch : 

Version: v1.16.0-rc.6 (Unstable)1/5/2022 6:00:01 PM: Critical error occurred
System.NullReferenceException: Object reference not set to an instance of an object.
   at Vintagestory.API.Config.TranslationService.Load(Boolean lazyLoad)
   at Vintagestory.API.Config.Lang.Load(ILogger logger, IAssetManager assetManager, String defaultLanguage)
   at Vintagestory.Server.ServerSystemModHandler.OnLoadAssets()
   at Vintagestory.Server.ServerMain.EnterRunPhase(EnumServerRunPhase runPhase)
   at Vintagestory.Server.ServerMain.Launch()
   at ‭‏‎‬‍‫‍‎‍‏‫‎‮‮‬‭‬‏‮.‏‍‮‮‎‏‮‪‌‫‪‍‏‍‍‪‏‮‎‮()
   at _1OzxJijwDv4UbCmbYyW3H8Jf8QN._H28AIBPAN7K3Llru23eo2kbE1Dk(ThreadStart )
-------------------------------
 

any suggestions how to fix this ? 

Link to comment
Share on other sites

2 minutes ago, Feroxious said:

Xandu , when i try to put mods into my 1.16 rc6 server, I'm getting this error at launch : 

Version: v1.16.0-rc.6 (Unstable)1/5/2022 6:00:01 PM: Critical error occurred
System.NullReferenceException: Object reference not set to an instance of an object.
   at Vintagestory.API.Config.TranslationService.Load(Boolean lazyLoad)
   at Vintagestory.API.Config.Lang.Load(ILogger logger, IAssetManager assetManager, String defaultLanguage)
   at Vintagestory.Server.ServerSystemModHandler.OnLoadAssets()
   at Vintagestory.Server.ServerMain.EnterRunPhase(EnumServerRunPhase runPhase)
   at Vintagestory.Server.ServerMain.Launch()
   at ‭‏‎‬‍‫‍‎‍‏‫‎‮‮‬‭‬‏‮.‏‍‮‮‎‏‮‪‌‫‪‍‏‍‍‪‏‮‎‮()
   at _1OzxJijwDv4UbCmbYyW3H8Jf8QN._H28AIBPAN7K3Llru23eo2kbE1Dk(ThreadStart )
-------------------------------
 

any suggestions how to fix this ? 

Which language do you use?

Link to comment
Share on other sites

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.