viewing paste Unknown #5659 | Diff

Posted on the | Last edited on
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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
Index: src/map/skill.c
===================================================================
--- src/map/skill.c     (revision 17260)
+++ src/map/skill.c     (working copy)
@@ -7875,6 +7875,8 @@
        case AB_CLEARANCE:
                if( flag&1 || (i = skill_get_splash(skill_id, skill_lv)) < 1 )
                { //As of the behavior in official server Clearance is just a super version of Dispell skill. [Jobbie]
+                       if ( bl->type != BL_MOB || battle_check_target(src,bl,BCT_PARTY) <= 0) //can only affect mob or party
+                               break;
                        clif_skill_nodamage(src,bl,skill_id,skill_lv,1);
 
                        if((dstsd && (dstsd->class_&MAPID_UPPERMASK) == MAPID_SOUL_LINKER) || rnd()%100 >= 60 + 8 * skill_lv) {
Index: src/map/clif.c
===================================================================
--- src/map/clif.c      (revision 17260)
+++ src/map/clif.c      (working copy)
@@ -5367,12 +5367,12 @@
        WBUFL(buf,4)=bl->id;
        WBUFB(buf,8)=flag;
 #if PACKETVER >= 20120618
-       WBUFL(buf,9)=tick;/* at this stage remain and total are the same value I believe */
-       WBUFL(buf,13)=tick;
        if(flag && battle_config.display_status_timers && sd) {
                if (tick <= 0)
                        tick = 9999; // this is indeed what official servers do
 
+               WBUFL(buf,9) = tick;/* at this stage remain and total are the same value I believe */
+               WBUFL(buf,13) = tick;
                WBUFL(buf,17) = val1;
                WBUFL(buf,21) = val2;
                WBUFL(buf,25) = val3;
@@ -6700,7 +6700,7 @@
 
        if(!sd && flag==0){
                int i;
-               for(i=0;i<MAX_PARTY && !p->data[i].sd;i++);
+               ARR_FIND(0,MAX_PARTY,i,!p->data[i].sd);
                if (i < MAX_PARTY)
                        sd = p->data[i].sd;
        }
@@ -6733,9 +6733,9 @@
        if(!sd && (flag&0xf0)==0)
        {
                int i;
-               for(i=0;i<MAX_PARTY && !p->data[i].sd;i++);
-                       if (i < MAX_PARTY)
-                               sd = p->data[i].sd;
+               ARR_FIND(0,MAX_PARTY,i,!p->data[i].sd);
+               if (i < MAX_PARTY)
+                       sd = p->data[i].sd;
        }
 
        if(!sd) return;
@@ -6760,7 +6760,7 @@
 
        nullpo_retv(p);
 
-       for(i=0; i < MAX_PARTY && !p->data[i].sd;i++);
+       ARR_FIND(0,MAX_PARTY,i,!p->data[i].sd);
        if(i < MAX_PARTY){
                unsigned char buf[1024];
Viewed 403 times, submitted by lighta.