diff options
Diffstat (limited to 'src/map')
-rw-r--r-- | src/map/mob.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/map/mob.c b/src/map/mob.c index f41501638..9b83440dd 100644 --- a/src/map/mob.c +++ b/src/map/mob.c @@ -2259,9 +2259,10 @@ int mob_dead(struct mob_data *md, struct block_list *src, int type) int itemid = 0; for (i = 0; i < ARRAYLENGTH(sd->add_drop) && (sd->add_drop[i].id || sd->add_drop[i].group); i++) { - if (sd->add_drop[i].race & (1<<status->race) || - sd->add_drop[i].race & 1<<(status->mode&MD_BOSS?RC_BOSS:RC_NONBOSS) || - sd->add_drop[i].race == md->class_) + if ( ( sd->add_drop[i].race <= (1<<status->race) && + sd->add_drop[i].race & (1<<status->race) || + sd->add_drop[i].race & 1<<(status->mode&MD_BOSS?RC_BOSS:RC_NONBOSS) ) || + ( sd->add_drop[i].race > (1<<RC_MAX) && sd->add_drop[i].race == md->class_) ) { //check if the bonus item drop rate should be multiplied with mob level/10 [Lupus] if(sd->add_drop[i].rate < 0) { |