[crossfire] Shop prices overhaul

Kevin Zheng kevinz5000 at gmail.com
Wed Dec 3 22:47:17 CST 2014


On 12/02/2014 01:48, Mark Wedel wrote:
>  If you are going to reduce the importance of bargaining, is there any
> reason to just not remove it all together then?  The passive skills were
> always a little odd (passive skills being those that the player just
> automatically uses without any effort, and likewise, can't really focus
> much on improving them).

My intent is to keep bargaining around but re-implement it as
interactive haggling. That way, it's no longer a passive skill.

>  I'm not quite sure how interactive haggling will work out - it will
> seem like someone would pretty quickly figure out how it works, write a
> plugin to the client to just do the work and get maximum value, at which
> point, one asks why not just skip all those steps and just give the
> player the best price to start with.

Getting the details worked out will be difficult, but I don't think
having it abused by a few players will prevent it from being useful to
others. Randomizing well and making things probabilistic may help.

>  One thing to be absolute sure to check is that it is never possible for
> a character to sell something for more than they can buy it (eg, buy for
> 100, sell for 101), because that clearly breaks the game.  In fact, even
> doing it equal would probably break the game.

I'll be careful to make sure this doesn't happen. At the moment, there
are additional calculations made after the charisma/bargaining
adjustment; the 0.5 ratio here is further decreased later on.

>  I'd personally rather that instad of shop_buy_multiplier() having a
> hardcoded formula that is used, that is instead stored in the stat_bonus
> file, and if not set there, perhaps fill in the array based on that
> formula.

The issue with using the file is that existing servers will not reflect
the changes without admin intervention. And, it seems that anyone who is
willing to modify the file might as well change the function.

This approach doesn't seem to be new; plenty of calculations are
delegated to Python scripts in the maps. If an admin is willing to
customize the bonuses, changing a function doesn't seem difficult.

>  I'm not sure how many people actually use the stat_bonus file, but all
> the code is there so it is a pretty simple matter to just keep using it
> - at also lets player admins adjust things more easily (with the formula
> as is, it is pretty much impossible to adjust things - at least with the
> old compiled in arrays, one could change those to get different behavior)

Same thing here: the calculation is split off into a function of its
own, and with documentation should be straightforward to edit. Playing
with different formulas may seem cumbersome, but it seems that being
able to manipulate the formula directly is more useful. Having numbers
without a formula makes analysis and future changes more difficult, and
of course may just be a premature optimization.

That said, using the stat_bonus is straightforward as well; I simply
need to evaluate the function out and stick it in a file. Server admins
will need to merge changes in manually.

Thoughts?
Kevin Zheng

-- 
Kevin Zheng
kevinz5000 at gmail.com | kevinz at kd0lgh.mooo.com | PGP: 0xC22E1090


More information about the crossfire mailing list