diff --git a/db/pre-re/skill_db.txt b/db/pre-re/skill_db.txt index 0b29912e0e..c1970adcde 100644 --- a/db/pre-re/skill_db.txt +++ b/db/pre-re/skill_db.txt @@ -774,7 +774,7 @@ 2049,0,0,0,0,0,0,10,0,no,0,0,0,none,0, AB_EUCHARISTICA,Eucharistica 2050,11,6,16,6,0x1,0,1,1,yes,0,0,0,magic,0, AB_RENOVATIO,Renovatio 2051,11,6,16,6,0x21,0,5,1,yes,0,0,0,magic,0, AB_HIGHNESSHEAL,Highness Heal //CHECK Info shows this has magic attack. -2052,11,6,16,0,0x1,0,5,1,yes,0,0x600,0,magic,0, AB_CLEARANCE,Clearance //CHECK Also shows this as a magic attack. Why? +2052,11,6,16,0,0x1,0,5,1,yes,0,0,0,magic,0, AB_CLEARANCE,Clearance //CHECK Also shows this as a magic attack. Why? 2053,11,6,16,0,0x1,0,5,1,yes,0,0,0,magic,0, AB_EXPIATIO,Expiatio //CHECK Does this also give the buff to party members? 2054,0,6,4,6,0x1,0,10,1,yes,0,0,0,none,0, AB_DUPLELIGHT,Duple Light //CHECK Had issues adding a skill level check to make the % go higher with the skills level. Will do later. 2055,-1,6,1,-1,0,0,10,1,no,0,0,0,weapon,0, AB_DUPLELIGHT_MELEE,Duple Light Melee diff --git a/db/re/skill_db.txt b/db/re/skill_db.txt index df62f90b4a..6da832ea15 100644 --- a/db/re/skill_db.txt +++ b/db/re/skill_db.txt @@ -786,7 +786,7 @@ 2049,0,0,0,0,0,0,10,0,no,0,0,0,none,0, AB_EUCHARISTICA,Eucharistica 2050,11,6,16,6,0x1,0,1,1,yes,0,0,0,magic,0, AB_RENOVATIO,Renovatio 2051,11,6,16,6,0x21,0,5,1,yes,0,0,0,magic,0, AB_HIGHNESSHEAL,Highness Heal //CHECK Info shows this has magic attack. -2052,11,6,16,0,0x1,0,5,1,yes,0,0x600,0,magic,0, AB_CLEARANCE,Clearance //CHECK Also shows this as a magic attack. Why? +2052,11,6,16,0,0x1,0,5,1,yes,0,0,0,magic,0, AB_CLEARANCE,Clearance //CHECK Also shows this as a magic attack. Why? 2053,11,6,16,0,0x1,0,5,1,yes,0,0,0,magic,0, AB_EXPIATIO,Expiatio //CHECK Does this also give the buff to party members? 2054,0,6,4,6,0x1,0,10,1,yes,0,0,0,none,0, AB_DUPLELIGHT,Duple Light //CHECK Had issues adding a skill level check to make the % go higher with the skills level. Will do later. 2055,-1,6,1,-1,0,0,10,1,no,0,0,0,weapon,0, AB_DUPLELIGHT_MELEE,Duple Light Melee diff --git a/src/map/clif.c b/src/map/clif.c index 941047ccb2..28863411e2 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -5367,12 +5367,12 @@ void clif_status_change(struct block_list *bl,int type,int flag,int tick,int val 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 @@ void clif_party_option(struct party_data *p,struct map_session_data *sd,int flag if(!sd && flag==0){ int i; - for(i=0;idata[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 @@ void clif_party_withdraw(struct party_data* p, struct map_session_data* sd, int if(!sd && (flag&0xf0)==0) { int i; - for(i=0;idata[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 @@ void clif_party_message(struct party_data* p, int account_id, const char* mes, i 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]; diff --git a/src/map/skill.c b/src/map/skill.c index e875d75535..2c5c9e4592 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -7875,6 +7875,10 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui 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 ) // 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) {