viewing paste Unknown #5700 | C

Posted on the
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
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))
Viewed 234 times, submitted by unknown.