Corrections : misspeak and said 7 bit when I meant 12 bit, and I said 4096 for max. (A signed 12 bit int can represent between -2048 and +2047, but an unsigned can represent between 0 and +4095)
I am testing to debunk the myth that there is an overflow condition at 2,731% or higher EXP when it reaches nighttime in game. The structure of this test is as follows -
I went on a level low enough that kills of a specific mob would yield a significant percentage of exp per kill. This kill by kill method is far more reliable than trying to do a test over a period of time, which introduces several unnecessary variables. I had a total of 3,224% exp without nighttime bonus. This means that if nighttime were additive, I would have 3,274 and if it were multiplicative, I would have 4,836. I then killed several of the same mob during nighttime and then during daytime.
RESULTS: The exp I gained during nighttime per kill was between 0.166 and 0.167%. The exp I gained per kill during daytime was 0.164%. These findings directly contradict the claim that there is an overflow, as the values of exp used by the person making the initial claim were lower than these (if those triggered an overflow, these would too). It also stands to reason based on these results that nighttime is additive as opposed to multiplicative.
Notes: If nighttime were multiplicative and it overflowed, I would have 740% exp (4836-4096). If I got 0.167 with 740%, I should be getting 0.727 to 0.728% during daytime with the full 3224%. If night were multiplicative but there were no overflow, I would be getting 0.111 to 0.112% per kill during daytime if I got 0.167 during nighttime.
For anyone who is not familiar with what an overflow is (but assuming you alr know binary stuffs)
I will use 4 bit values and only talk about unsigned to make this a little less annoying to read. Anyways .. if you had a 4 bit *unsigned* integer value, a computer represents it in binary with a sequence of 1's and 0's which correspond to the number. Example .. if you wanted to represent 10 (decimal ten) in a 4 bit int, it would be 1010 and if you wanted to represent 1 (decimal one), it would be 0001. The max this 4 bit value can represent is 1111. For an unsigned integer of n bits, the max it can represent is 2ⁿ-1 where n is the number of bits, so a 12 bit maxes out at 4095. Now .. what happens with a 4 bit value if you have 1111 and you try to add 0010 to it? The value only has 4 'slots,' but the addition is still carried out normally. This results in the value 10001, but we must throw the leftmost 1 out as we do not have a slot for it. The result of this is 0001 or decimal 1 (one). The claim in the original post was saying this is what was happening with exp above a certain value.
Total exp buffs applied:
Base exp (100%)
Pet exp (15%)
Bell exp (100%)
Title exp (9%)
Event exp (1000%)
Elixir exp (20%)
Food exp (20%)
Artifact exp (400%)
530 scroll exp (530%)
Daily whatever it is called scroll but combined 3 of them (600%)
Blessed message scroll exp (200%)
Value pack (30%)
Combat book (100%)
Old moon thingy (100%)
Total: 3224%
9 сен 2024