[CF-Devel] patch:Bargaining experience
crossfire-devel at archives.real-time.com
crossfire-devel at archives.real-time.com
Mon Nov 10 01:51:23 CST 2003
Bernd Edler wrote:
>
With this patch, players can gain experience in bargaining skill.
>
The malus for buy/sell is between 80%-20% (as before).
>
>
The player gets one exp per gold coin he saved due to his cha and
>
bargaining level.
>
He gets one exp per platin coin he earns additionally.
>
I set the reference price to be the one you get having cha = 7 and no
>
bargaining skill.
I'm still mixed on the idea of your charisma affecting the exp you get for
bargaining.
It seems that the bargaining skill should all be what counts.
>
There was a bug with expmul in level_exp which is requires all the
>
one-line diffs to fix.
Unfortunately, that creates other problems.
I don't think there are any race/classes that use it, but originally expmul
was added as a value to set in a race/class to denote how much more/less exp
they need for each level. This was meant to be another potential way to balance
the classes.
Obviously, there are other problems with the code as is currently in CVS,
since it doesn't do the right thing with respect to skills with expmul that is
not 1. Probably the right approach on that would be the code that calls
level_exp() to do the expmul work, since anyplace that calls it should know if
it is the player vs a skill.
A few other notes:
Rather than mucking with storing away charisma and resetting it, and likewise
doing the same with the player inventory, query_cost() should instead be
modified so that flag can also contain data like 'show baseline cost', which
acts as if cha is 7 and no bargaining (just add that as a bitmask to existing
values).
That IMO is cleaner code. I'm always a bit concerned with mucking things
like that - while unlikely, there could be conditions that cause the player to
get saved out with those temporarily reset values (getting a sighup for
example). It'd just generally seem that the code would be cleaner for the
actually processing routine to use different values and not actually modify the
player, even temporarily.
Last note (to anyone really) - if you're posting diffs, and they are
relatively small (like less than 50k), please just post them as an uncompressed
attachment. It is much handier/easier to deal with if I can just see the diffs
in my mail reader, vs having to save to disk, uncompress, untar, and then look
at the files.
_______________________________________________
crossfire-devel mailing list
crossfire-devel at lists.real-time.com
https://mailman.real-time.com/mailman/listinfo/crossfire-devel
More information about the crossfire
mailing list