[crossfire] Selling price variance and buying price variance

Brendan Lally brenlally at gmail.com
Tue Nov 8 03:53:16 CST 2005


On 11/8/05, Mark Wedel <
     mwedel at sonic.net
     > wrote:
>
      Brendan Lally wrote:
     >
      > This is because there is an arbitrary adjustment to price based on the
     >
      > item count and map name, it is in the range of +-5% it is designed to
     >
      > allow otherwise identical shops to give a small variation in price.
     >
      >
     >
      > Possibly it shouldn't apply to shops selling items, only buying them?
     >
     
     >
        How does it do that?  does it just randomize the price in the query strings
     >
      (if so, how does that remain consistent), or does it change the actual objects
     >
      value?
     
It is the price returned by query_cost that changes.

lines 295-300 server/shop.c
/* we will also have an extra 0-5% variation between shops of the same type
	 * for valuable items (below a value of 50 this effect wouldn't be very
	 * pointful, and could give fun with rounding.
	 */
	if(who->map->path!=NULL && val > 50)
	  val=(sint64)val+0.05*(sint64)val*cos(tmp->count+strlen(who->map->path));

making this not apply to a shop when it sells items, is as simple as
adding an '&& flag == F_SELL' to the if statement.

    


More information about the crossfire mailing list