Index: src/map/skill.c
===================================================================
--- src/map/skill.c (revision 17279)
+++ src/map/skill.c (working copy)
@@ -9968,11 +9968,6 @@
if( sc->data[SC_BASILICA] )
status_change_end(src, SC_BASILICA, INVALID_TIMER); // Cancel Basilica
else { // Create Basilica. Start SC on caster. Unit timer start SC on others.
- if( map_foreachinrange(skill_count_wos, src, 2, BL_MOB|BL_PC, src) ) {
- if( sd )
- clif_skill_fail(sd,skill_id,USESKILL_FAIL,0);
- return 1;
- }
skill_clear_unitgroup(src);
if( skill_unitsetting(src,skill_id,skill_lv,x,y,0) )
sc_start4(src,src,type,100,skill_lv,0,0,src->id,skill_get_time(skill_id,skill_lv));
@@ -12936,6 +12934,26 @@
}
break;
}
+ case HP_BASILICA:
+ if( sc && !sc->data[SC_BASILICA]) {
+ if( sd ) {
+ int i,x,y,range = 4;
+ int size = range*2+1;
+ for (i=0;i<size*size;i++) {
+ x = sd->bl.x+(i%size-range);
+ y = sd->bl.y+(i/size-range);
+ if (map_getcell(sd->bl.m,x,y,CELL_CHKWALL)) {
+ clif_skill_fail(sd,skill_id,USESKILL_FAIL,0);
+ return 0;
+ }
+ }
+ if( map_foreachinrange(skill_count_wos, &sd->bl, 2, BL_MOB|BL_PC, &sd->bl)) {
+ clif_skill_fail(sd,skill_id,USESKILL_FAIL,0);
+ return 0;
+ }
+ }
+ }
+ break;
case AM_TWILIGHT2:
case AM_TWILIGHT3:
if (!party_skill_check(sd, sd->status.party_id, skill_id, skill_lv))