Sign in to follow this  
Naih

Inconsistent item valuation related to metal properties

Recommended Posts

I made a copper file and used get price against it, then offered it to a trader.

 

Test QL was 32.12.

 

On using get price from inventory:

[00:20:21] A trader would sell this for about 5 copper and 15 iron.

This value is consistent with the math listed on https://wurmpedia.com/index.php/Base_Price#Item_type_constants

 

On offering to trader:

iSLjfsw.png

The offer price in the trader window is consistent with the value multiplier, combined with the modifier for lack of stock documented on https://www.wurmpedia.com/index.php/Get_price#Trader_prices

 

The metal properties modifier is not reflected in the get price context menu option.

Share this post


Link to post
Share on other sites
2 hours ago, Naih said:

The metal properties modifier is not reflected in the get price context menu option.

We've found that the trader's prices change, depending on what has already been bought and sold. They are not predictable from one day to the next.  Keep in mind also that wurmpedia.com is a wiki for Wurm Online, not specifically for Wurm Unlimited. Although there is vast overlap between the two, they are not exactly the same. 

Edited by Batta

Share this post


Link to post
Share on other sites
16 hours ago, Naih said:

 

The offer price in the trader window is consistent with the value multiplier, combined with the modifier for lack of stock documented on https://www.wurmpedia.com/index.php/Get_price#Trader_prices

 

Unlimited is a fork of Online. I understand the semantics which is why I posted here. The behavior is consistent with the parent branch to a level conclusive enough to document the bug. Either the "get price" description is out of date and this figure does not represent a trader valuation, or there is code segmentation such that trader math is not being handled in one place resulting in the "get price" functionality returning incorrect results.

Share this post


Link to post
Share on other sites

The metal type modifier for price only applies to jewelery smithing items, as far as I know.

Share this post


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

The metal type modifier for price only applies to jewelery smithing items, as far as I know.

 

The screenshot indicates to the contrary. That price is a function of both the metal property modifier and the trader stock modifier. You can test this on a private server.

  • Like 1

Share this post


Link to post
Share on other sites
5 hours ago, Naih said:

 

The screenshot indicates to the contrary. That price is a function of both the metal property modifier and the trader stock modifier. You can test this on a private server.

I think you'll find that the actual results confirm what we're saying. The price a trader gives will not be predictable, as it's determined by more than just the formula you're referencing. The wiki is frequently wrong, so not a good source of 100% accurate info.

 

Share this post


Link to post
Share on other sites

If you really believe that, then go report it in it's own section. The bug report stands. Either "get price" is not the trader price and the bug is textual or "get price" is not functioning correctly when accounting for metal properties and the responsible modifier needs to be consolidated.

Share this post


Link to post
Share on other sites
14 hours ago, Naih said:

If you really believe that, then go report it in it's own section. The bug report stands. Either "get price" is not the trader price and the bug is textual or "get price" is not functioning correctly when accounting for metal properties and the responsible modifier needs to be consolidated.

Not at all, I don't see it as a bug. That was my point. Just trying to help, man. This is the reality that has been with WU from the start. As I said, you can't go by what the wiki says. It's a WO wiki, it's written by players (not by officials), and it's out of date or just plain incorrect on many points.

Edited by Batta

Share this post


Link to post
Share on other sites

Except you are factually wrong, you are off topic, and you are not helping. I don't even know why I need to validate this with you to make a bug report. I have demonstrated the behavior is consistent with recorded math on the wiki. I have provided the information necessary to reproduce it yourself in lieu of derailing what should be a simple bug report and yet you persist. Now I provide factual evidence that an attempt is being made to calculate metal properties value modifier in the "get price " action. You are not staff. It is absurd that I even have to go this far for someone who has no interest in doing seemingly anything other than perpetuating a years old wives' tale.

 

com.wurm.server.items Item.class

    public final int getValue() {
        if (!this.isCoin() && !this.isFullprice()) {
            if (this.isChallengeNewbieItem()) {
                return 0;
            } else {
                int val = this.template.getValue();
                if (this.isCombine()) {
                    float nums = (float)this.getWeightGrams() / (float)this.template.getWeightGrams();
                    val = (int)(nums * (float)this.template.getValue() * this.getQualityLevel() * this.getQualityLevel() / 10000.0F * ((100.0F - this.getDamage()) / 100.0F));
                } else {
                    val = (int)((float)this.template.getValue() * this.getQualityLevel() * this.getQualityLevel() / 10000.0F * ((100.0F - this.getDamage()) / 100.0F));
                }

                if (this.template.priceAffectedByMaterial) {
                    val = (int)((float)val * this.getMaterialPriceModifier());
                }

                if (this.rarity > 0) {
                    val *= this.rarity;
                }

                return val;
            }
        } else {
            return this.template.getValue();
        }
    }

Note the branch for checking the template for affected material. This logic is called when using "get price" from your player inventory or from the context menu of an item in the trade window.

 

This code base is large with many monolithic classes and my research is by no means exhaustive. I have only just begun looking at things like TradeHandler.class and LocalSupplyDemand.class. It does appear that there are at least 2 sections for handling the value of an item, those being the general get price above from Item.class and whatever is going on in TradeHandler and LocalSupplyDemand.

Share this post


Link to post
Share on other sites

Chill, dude. Not only admins respond on this forum. I was trying to help, but I'll stop.

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
Sign in to follow this