View Single Post
  #2  
Old 01-30-2014, 03:53 PM
DrakePhoenix
Fire Beetle
 
Join Date: Jan 2014
Posts: 22
Default

OK sorry, now that I've looked at the current function code some more, I realize that the method basically is a method of direct proportional scaling. I wasn't taking into account the fact that the method basically is causing a truncation of a float value. So basically ((level*10000)/reclevel)*basestat is a way to handle (level/reclevel)*basestat using int instead of float. The +/-5000 is the equivalent of +0.5 or -0.5 as the case may be if we were using float instead of int. So the odd values I was getting, where they had an extra 0.5 in the result was because I was not truncating off the decimals.

Now that I understand that more clearly, the question then is, why does the client and the server not seem to agree? Because this suggests that either the scaling method used by the client is *not* directly proportional, and/or that the rounding method employed by the client is not truncation, but is instead floor, ceiling, standard rounding, or banker's rounding.

Does anyone happen to have any raw test data for determining how the client handles this calculation? I'd be interested in seeing it if you do.

Thanks,
Drake Phoenix
Reply With Quote