summaryrefslogtreecommitdiff
path: root/src/map/pc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/pc.c')
-rw-r--r--src/map/pc.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/map/pc.c b/src/map/pc.c
index 65b89f8b4..e0c5cf394 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -1607,8 +1607,8 @@ static int pc_bonus_item_drop(struct s_add_drop *drop, const short max, short id
}
for(i = 0; i < max && (drop[i].id || drop[i].group); i++) {
if(
- (id && drop[i].id == id) ||
- (group && drop[i].group == group)
+ ((id && drop[i].id == id) ||
+ (group && drop[i].group == group)) && race < (1<<RC_MAX)
) {
drop[i].race |= race;
if(drop[i].rate > 0 && rate > 0)
@@ -2853,6 +2853,10 @@ int pc_bonus3(struct map_session_data *sd,int type,int type2,int type3,int val)
if(sd->state.lr_flag != 2)
pc_bonus_item_drop(sd->add_drop, ARRAYLENGTH(sd->add_drop), type2, 0, 1<<type3, val);
break;
+ case SP_ADD_CLASS_DROP_ITEM:
+ if(sd->state.lr_flag != 2)
+ pc_bonus_item_drop(sd->add_drop, ARRAYLENGTH(sd->add_drop), type2, 0, type3, val);
+ break;
case SP_AUTOSPELL:
if(sd->state.lr_flag != 2)
{