Jump to content
Earthworm

Loot Probability Viewer

Recommended Posts

Thanks Stompy, sorry I didn't reply earlier, been busy. I will make the update and add a new release.

 

Coolies, I'mma wait till that release cause I don't have an editor for visual studio stuff but I am glad I saw this, this is exactly what I was looking for. You da man @Earthworm !

Share this post


Link to post
Share on other sites

Alpha 5 of the loot viewer uploaded.

 

* fixed an additional math error with probability templates

* Upped the default max skill to 200 to match alpha 15

* increased decimal precision to 4 on probability display

* added new Alpha 15 loot container names.

Edited by Earthworm
Stupid autocorrect (see edit history)

Share this post


Link to post
Share on other sites

Error with the latest version after loading up loot.xml:

 

See the end of this message for details on invoking

just-in-time (JIT) debugging instead of this dialog box.

 

************** Exception Text **************

System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.

at System.Collections.Generic.Dictionary`2.get_Item(TKey key)

at _7DtD_LootViewer.LootViewer.explodeGroup(String& groupName, lootGroupContents& incGroupDetails)

at _7DtD_LootViewer.LootViewer.B_Load_Click(Object sender, EventArgs e)

at System.Windows.Forms.Control.OnClick(EventArgs e)

at System.Windows.Forms.Button.OnClick(EventArgs e)

at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)

at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)

at System.Windows.Forms.Control.WndProc(Message& m)

at System.Windows.Forms.ButtonBase.WndProc(Message& m)

at System.Windows.Forms.Button.WndProc(Message& m)

at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)

at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)

at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

 

 

************** Loaded Assemblies **************

mscorlib

Assembly Version: 4.0.0.0

Win32 Version: 4.6.1586.0 built by: NETFXREL2

CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll

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

7DtD-LootViewer

Assembly Version: 1.0.0.0

Win32 Version: 1.0.0.0

CodeBase: file:///C:/Users/Setari/Downloads/7DtD-LootViewer/7DtD-LootViewer.exe

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

System.Windows.Forms

Assembly Version: 4.0.0.0

Win32 Version: 4.6.1586.0 built by: NETFXREL2

CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll

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

System

Assembly Version: 4.0.0.0

Win32 Version: 4.6.1586.0 built by: NETFXREL2

CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll

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

System.Drawing

Assembly Version: 4.0.0.0

Win32 Version: 4.6.1586.0 built by: NETFXREL2

CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll

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

System.Xml

Assembly Version: 4.0.0.0

Win32 Version: 4.6.1586.0 built by: NETFXREL2

CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll

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

System.Xml.Linq

Assembly Version: 4.0.0.0

Win32 Version: 4.6.1586.0 built by: NETFXREL2

CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml.Linq/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.Linq.dll

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

System.Core

Assembly Version: 4.0.0.0

Win32 Version: 4.6.1586.0 built by: NETFXREL2

CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll

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

 

************** JIT Debugging **************

To enable just-in-time (JIT) debugging, the .config file for this

application or computer (machine.config) must have the

jitDebugging value set in the system.windows.forms section.

The application must also be compiled with debugging

enabled.

 

For example:

 

<configuration>

<system.windows.forms jitDebugging="true" />

</configuration>

 

When JIT debugging is enabled, any unhandled exception

will be sent to the JIT debugger registered on the computer

rather than be handled by this dialog box.

Share this post


Link to post
Share on other sites

Setari, sorry about the delay, I didn't get informed of a new post here. The crash is due to a lootgroup being referenced in your loot.dml that is not defined prior in the file. Look for typos in your loot group names and the references. Or something similar. I will correct the crash in next release to give more detail.

Share this post


Link to post
Share on other sites

Thanks for creating this!

 

This doesn't seem to run on windows 10. If I select it, I just the loading circle, but it never opens up.

 

Does the exe need something else to run, like a support library?

Edited by Gareee (see edit history)

Share this post


Link to post
Share on other sites
Thanks for creating this!

 

This doesn't seem to run on windows 10. If I select it, I just the loading circle, but it never opens up.

 

Does the exe need something else to run, like a support library?

 

This should work in Windows 10, it was compiled in Windows 10, so not sure the issue. Possibly don't have correct .Net version or not updated?

Share this post


Link to post
Share on other sites

This app works great. It would be nice if in the next version you could browse for the xml file you want. It would also be nice if it remembered the last file used and not always reset to the default file on your PC.

 

I also noticed if a lootcontainer itself has count="all" applied then the application list probabilities incorrectly. Each item will drop so should have a 100% probability assigned, not a fraction as currently listed.

 

A big request would to have the output editable and than formated in a way that it could be cut and pasted back into the xml file. That way this app could be used to easily cleanup all the probabilities in the loot tables.

 

So rather than the current output of the birdnest which is:

 

feather, 75.0000% Count: 1-4

egg, 25.0000% Count: 1

 

You would output:

 

<item name="feather" count="1,4" prob="0.7500" />

<item name="egg" count="1" prob="0.2500" />

 

 

That would make this utility much more useful than it already is. This might be more work than you have time for, but it would be something to consider for a future release.

Edited by xyth (see edit history)

Share this post


Link to post
Share on other sites
This app works great. It would be nice if in the next version you could browse for the xml file you want. It would also be nice if it remembered the last file used and not always reset to the default file on your PC.

 

I also noticed if a lootcontainer itself has count="all" applied then the application list probabilities incorrectly. Each item will drop so should have a 100% probability assigned, not a fraction as currently listed.

 

A big request would to have the output editable and than formated in a way that it could be cut and pasted back into the xml file. That way this app could be used to easily cleanup all the probabilities in the loot tables.

 

So rather than the current output of the birdnest which is:

 

feather, 75.0000% Count: 1-4

egg, 25.0000% Count: 1

 

You would output:

 

<item name="feather" count="1,4" prob="0.7500" />

<item name="egg" count="1" prob="0.2500" />

 

 

That would make this utility much more useful than it already is. This might be more work than you have time for, but it would be something to consider for a future release.

 

Actually now the more I think about it, the harder this becomes. Just outputting with XML is pretty easy, but adding in the edit-ability would require a rewrite of most of the logic of the tool. And without the ability to edit the values, the XML output doesn't help a whole lot. I will consider it if I find myself with a lot of time on my hands, but unlikely.

 

Thanks for the kind words and the suggestion though.

Edited by Earthworm (see edit history)

Share this post


Link to post
Share on other sites

Actually, the formated xml output as is would be a big help. Its really hard to grasp the probabilities when they don't add up to 100%. I'd copy and paste the output into the loot.xml and adjust from there. A boon would be a new button that did a one shot convert and output to an xml file which then could be harvested on section at a time and pasted into the loot.xml without having to go back to the app for every loot ID. You already dump the container names xml file this way, just add a full dump of all the revised probabilities sorted by loot container then by name or probability. Not sure which one would work best.

Edited by xyth (see edit history)

Share this post


Link to post
Share on other sites

This mod was updated for A18 by Sphereii and I. I used this tool to balance loot tables when I was working on TS/Starvation, and I figured it would be useful to the modding community if we updated it until Earthworm becomes active in the modding community again. The tool works well as is, and neither SphereII or I plan to enhance the tool unless it becomes widely used. So enjoy it as it is!

Share this post


Link to post
Share on other sites

Trying to use for A19 getting error. Tried updating containernames.xml still same error not sure if I'm doing something wrong or if it needs updating. 

************** Exception Text **************
System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
   at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
   at _7DtD_LootViewer.LootViewer.B_Load_Click(Object sender, EventArgs e) in C:\Users\jkilpatrick\Documents\GitHub\7DtD-LootViewer\7DtD-LootViewer\Form1.cs:line 369
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

 

Share this post


Link to post
Share on other sites

It seems to hang every time at This is a Loot Group: groupAmmoRegularGunslingerT1. I'm not seeing anything wrong in the loot.xml. Its the default A19 b173 xml.

Share this post


Link to post
Share on other sites

This will likely need to be updated for A19 then.

Share this post


Link to post
Share on other sites

Wish I could help more, I downloaded the master from github and looked at the code but I'm not a programmer. More of a tinkerer and I have no idea what I'm doing. It sure would be a handy tool to have as I am in the process of making a loot overhaul to slow progress and make a bit more sense as far as what you get where and when. Still trying to understand the lootqualitytemplates as in playing I seem to get a lot of quality 6 items.

Share this post


Link to post
Share on other sites

Its on the list to update.

Share this post


Link to post
Share on other sites

I was curious and looked at it but there is no way to input a gamestage so the output wouldn't have anything to do with ingame results.

 

There are fields for a mystery skill and player level, neither of which have any direct impact on the result.

  • Like 1

Share this post


Link to post
Share on other sites
1 hour ago, Gazz said:

I was curious and looked at it but there is no way to input a gamestage so the output wouldn't have anything to do with ingame results.

 

There are fields for a mystery skill and player level, neither of which have any direct impact on the result.

The original code is very old, I was only letting it limp along. However, based on the changes to the game staged loot, we may need to put in more effort into it, if it still has users.

  • Like 1

Share this post


Link to post
Share on other sites

No worries. Was just curious. 😃

Share this post


Link to post
Share on other sites
Just now, Gazz said:

No worries. Was just curious. 😃

I appreciate it. I don't use the tool (or even understand it). I just make it compile for xyth :)

Share this post


Link to post
Share on other sites

Thanks sphereii. It does help visualize what loot can be found where. Doesn't help for actual probability numbers since you cant set the proper gamestage but It's still helpful to me. :) 

Share this post


Link to post
Share on other sites

Yea, loot changed so much since this was a thing.   Its still useful for the reasons above.  It there is demand for it we can take another look at it.

  • Thanks 1

Share this post


Link to post
Share on other sites

I would be very interested in an working tool like this. Been cursing for about a week trying to tune loottables to fit our taste but it's a pain in the beep to try to gather enough tests to say if it's too high or low droprate of items especially when gamestages mucks up the intended results too.

(double the issue since I don't fully comprehend how the game calculates lootchanches and prob's )

 

Share this post


Link to post
Share on other sites

This tool works well, it just doesnt account for perks or higher levels.  But for a level 1 character it shows the loot distribution well.

Share this post


Link to post
Share on other sites

I guess trying to calculate for the gamestage alterations would be a total nightmare ? :(

 

Trying my best to balance the game around 50% loot in serverconfig, and still it just showers us with guns and ammo and basically everything.

(except mp5s, day 80ish and still havent seen one of those o.O)

I'm trying to stop the guns from being aquired by day 2, and have primitive weapons stay relevant for a longer time,

Ideally the first two hordenights should be fought with bows :D

 

Gamestage does alter whatkind of loot is found right?

(I really have to try harder to understand the loot.xml file, (and progression and buffs and and and and...x.x))

 

 

 

 

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...