ThomasandClaude Sonnet 5 46e028c3ec Fix item-drop selection off-by-one and double/slow-drop config defaults
GetNewDrop's weighted item-index selection used a do-while that
increments before its first RunningTotal check, so index 0 (the first
item slot in every drop table) could never be selected -- for the 51
drop tables that only populate item slot 1 (all others zero), this
silently discarded every roll ("item at itemindex does not exist"),
so those mobs/maps never dropped an item at all. Switch to a pre-check
while loop so index 0 is reachable.

Also: battle.cpp's kill-drop loop runs GetDrop()/AddDrop() exactly
Stats->itemdroprate + Config.DROP_RATE times, not as a probability --
with the shipped drop_rate=2 every kill produced two independently
rolled drops (hence always-doubled Zuly boxes for characters with no
item-drop-rate gear). Default drop_rate to 1 so a kill yields one
roll by default; gear/GM commands that raise itemdroprate still grant
extra rolls as designed.

Also default dropdelay to 0: the killed-monster's loot became visible
to clients only after Config.DropDelay (1s) *plus* the next
VisualDelay tick (200ms), giving a ~1.2s lag before drops appeared.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-09 07:06:25 +02:00
2025-08-11 11:03:30 -05:00
2025-08-11 11:03:59 -05:00
S
Description
Rush on seven Slops
30 MiB
0 Stars 1 Watchers 0 Forks
Languages
C++ 92.9%
HTML 3.1%
C 2%
Python 1.3%
CMake 0.4%
Other 0.3%