[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