Issue information

Issue ID
#278
Status
Unable to Fix
Severity
Medium
Started
Hercules Elf Bot
Oct 22, 2007 15:07
Last Post
Hercules Elf Bot
Oct 22, 2007 15:07
Confirmation
N/A

Hercules Elf Bot - Oct 22, 2007 15:07

Originally posted by [b]theultramage[/b]
http://www.eathena.ws/board/index.php?autocom=bugtracker&showbug=278

Due to recent findings, I'm starting this report in hopes to properly document them.

eAthena uses the following equation for drop success
CODE
if( rand(0,9999) < drop_rate ) then success

but it appears that the official server equation looks like this
CODE
if( rand(0,10000) <= drop_rate ) then success

Indication of this would be that Apples (dummy items that are set to drop at 0) still drop on official servers, and cards (set to drop at 1) drop twice as often as apples [citation needed].
eAthena's equation maps cleanly to the item droprate ranges, and increasing server rates increates the droprate linearly (affine equation?).
Aegis implies a nonlinear equation where the whole thing is skewed depending on the server rates. Also, unadjusted values in the itemdb can't be used for player reference (@mi and such).

CODE
eA(x) = D * x / 10000
Ae(x) = (D * x + 1) / 10001
PT(x) = D * (x + 1) / 10000
are the corresponding equations to calculate the effective droprate based on the itemdb value and server rate.
The third equation is what Playtester suggested as an alternative. A downside is that it makes low (~0.0x) values much higher than eA or Ae at the same rate.

And, I'd like to get an annotated assembly listing from the part of the zone binary that uses this :X

This post has been edited by theultramage: Oct 22 2007, 08:51 AM