summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/map/map.c2
-rw-r--r--src/map/status.c9
2 files changed, 9 insertions, 2 deletions
diff --git a/src/map/map.c b/src/map/map.c
index 0c8c2d949..14af392b7 100644
--- a/src/map/map.c
+++ b/src/map/map.c
@@ -5020,6 +5020,7 @@ void read_map_zone_db(void) {
CREATE( entry, struct map_zone_disabled_skill_entry, 1 );
entry->nameid = izone->disabled_skills[j]->nameid;
entry->type = izone->disabled_skills[j]->type;
+ entry->subtype = izone->disabled_skills[j]->subtype;
zone->disabled_skills[zone->disabled_skills_count-1] = entry;
}
}
@@ -5114,6 +5115,7 @@ void read_map_zone_db(void) {
entry->nameid = izone->capped_skills[j]->nameid;
entry->cap = izone->capped_skills[j]->cap;
entry->type = izone->capped_skills[j]->type;
+ entry->subtype = izone->capped_skills[j]->subtype;
zone->capped_skills[zone->capped_skills_count-1] = entry;
}
}
diff --git a/src/map/status.c b/src/map/status.c
index 746ca51e2..a8a0f066d 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -1601,8 +1601,13 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, uin
if( src->type == BL_PC )
clif->msg((TBL_PC*)src, SKILL_CANT_USE_AREA); // This skill cannot be used within this area
else if( src->type == BL_MOB && map->list[src->m].zone->disabled_skills[i]->subtype != MZS_NONE ) {
- if( (st->mode&MD_BOSS) && !(map->list[src->m].zone->disabled_skills[i]->subtype&MZS_BOSS) )
- break;
+ if( st->mode&MD_BOSS ) { /** is boss **/
+ if( !( map->list[src->m].zone->disabled_skills[i]->subtype&MZS_BOSS ) )
+ break;
+ } else { /** is not boss **/
+ if( map->list[src->m].zone->disabled_skills[i]->subtype&MZS_BOSS )
+ break;
+ }
}
return 0;
}