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 1165 times, submitted by lighta.