For the previous poster...no, this existed before the group changes patch.
I haven't gone through the code enough to know all the ins and outs but I found what seems to be the appropriate area in client_packet.cpp. These two lines seems to be the good ones (depending on the server's config):
Code:
price=(int)((item->Price*mp->quantity)*(RuleR(Merchant, BuyCostMod))*Client::CalcPriceMod(vendor,true)+0.5); // need to round up, because client does it automatically when displaying price
Code:
price=(int)((item->Price*mp->quantity)*(RuleR(Merchant, BuyCostMod))+0.5);
So I think this simplifies to something like this pseudocode:
Code:
TotalPrice = INT( price * quantity * Greediness * FactionMod + 0.5 )
Which rounds the price only after everything else. Could the solution be to do compute the single item price then multiple by the quantity like so?
Code:
TotalPrice = INT( (price * Greediness * PriceMod + 0.5)) * quantity