diff options
Diffstat (limited to 'src/map/status.c')
-rw-r--r-- | src/map/status.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/map/status.c b/src/map/status.c index 89ad5c483..3ec822a6a 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -1992,11 +1992,15 @@ int status_calc_pc_(struct map_session_data* sd, bool first) if(!data->script) continue; if(data->flag.no_equip) { //Card restriction checks. - if(map[sd->bl.m].flag.restricted && data->flag.no_equip&map[sd->bl.m].zone) + if(map[sd->bl.m].flag.restricted && data->flag.no_equip&(8*map[sd->bl.m].zone)) continue; - if(map[sd->bl.m].flag.pvp && data->flag.no_equip&1) + if(!map_flag_vs(sd->bl.m) && data->flag.no_equip&1) continue; - if(map_flag_gvg(sd->bl.m) && data->flag.no_equip&2) + if(map[sd->bl.m].flag.pvp && data->flag.no_equip&2) + continue; + if(map_flag_gvg(sd->bl.m) && data->flag.no_equip&4) + continue; + if(map[sd->bl.m].flag.battleground && data->flag.no_equip&8) continue; } if(i == EQI_HAND_L && sd->status.inventory[index].equip == EQP_HAND_L) |