|
@@ -10740,12 +10740,6 @@ static int8 skill_castend_id_check(struct block_list *src, struct block_list *ta
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
- // Check partner
|
|
|
|
- if (sd && (inf2&INF2_CHORUS_SKILL) && skill_check_pc_partner(sd, skill_id, &skill_lv, 1, 0) < 1 ) {
|
|
|
|
- clif_skill_fail(sd, skill_id, USESKILL_FAIL_NEED_HELPER, 0);
|
|
|
|
- return USESKILL_FAIL_NEED_HELPER;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
if (inf&INF_ATTACK_SKILL ||
|
|
if (inf&INF_ATTACK_SKILL ||
|
|
(inf&INF_SELF_SKILL && inf2&INF2_NO_TARGET_SELF) //Combo skills
|
|
(inf&INF_SELF_SKILL && inf2&INF2_NO_TARGET_SELF) //Combo skills
|
|
) // Casted through combo.
|
|
) // Casted through combo.
|
|
@@ -14190,7 +14184,9 @@ int skill_check_condition_char_sub (struct block_list *bl, va_list ap)
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
if( inf2&INF2_CHORUS_SKILL ) {
|
|
if( inf2&INF2_CHORUS_SKILL ) {
|
|
- if( tsd->status.party_id == sd->status.party_id && (tsd->class_&MAPID_THIRDMASK) == MAPID_MINSTRELWANDERER )
|
|
|
|
|
|
+ if( tsd->status.party_id && sd->status.party_id &&
|
|
|
|
+ tsd->status.party_id == sd->status.party_id &&
|
|
|
|
+ (tsd->class_&MAPID_THIRDMASK) == MAPID_MINSTRELWANDERER )
|
|
p_sd[(*c)++] = tsd->bl.id;
|
|
p_sd[(*c)++] = tsd->bl.id;
|
|
return 1;
|
|
return 1;
|
|
} else {
|
|
} else {
|
|
@@ -14294,10 +14290,7 @@ int skill_check_pc_partner(struct map_session_data *sd, uint16 skill_id, uint16
|
|
//Else: new search for partners.
|
|
//Else: new search for partners.
|
|
c = 0;
|
|
c = 0;
|
|
memset (p_sd, 0, sizeof(p_sd));
|
|
memset (p_sd, 0, sizeof(p_sd));
|
|
- if( is_chorus )
|
|
|
|
- i = party_foreachsamemap(skill_check_condition_char_sub,sd,AREA_SIZE,&sd->bl, &c, &p_sd, skill_id, *skill_lv);
|
|
|
|
- else
|
|
|
|
- i = map_foreachinrange(skill_check_condition_char_sub, &sd->bl, range, BL_PC, &sd->bl, &c, &p_sd, skill_id);
|
|
|
|
|
|
+ i = map_foreachinrange(skill_check_condition_char_sub, &sd->bl, range, BL_PC, &sd->bl, &c, &p_sd, skill_id);
|
|
|
|
|
|
if ( skill_id != PR_BENEDICTIO && skill_id != AB_ADORAMUS && skill_id != WL_COMET ) //Apply the average lv to encore skills.
|
|
if ( skill_id != PR_BENEDICTIO && skill_id != AB_ADORAMUS && skill_id != WL_COMET ) //Apply the average lv to encore skills.
|
|
*skill_lv = (i+(*skill_lv))/(c+1); //I know c should be one, but this shows how it could be used for the average of n partners.
|
|
*skill_lv = (i+(*skill_lv))/(c+1); //I know c should be one, but this shows how it could be used for the average of n partners.
|
|
@@ -14527,7 +14520,7 @@ bool skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_i
|
|
// perform skill-group checks
|
|
// perform skill-group checks
|
|
inf2 = skill_get_inf2(skill_id);
|
|
inf2 = skill_get_inf2(skill_id);
|
|
if(inf2&INF2_CHORUS_SKILL) {
|
|
if(inf2&INF2_CHORUS_SKILL) {
|
|
- if ( skill_check_pc_partner(sd,skill_id,&skill_lv,skill_get_splash(skill_id,skill_lv),0) < 1 ){
|
|
|
|
|
|
+ if (skill_check_pc_partner(sd, skill_id, &skill_lv, AREA_SIZE, 0) < 1) {
|
|
clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
|
|
clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0);
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
@@ -15063,7 +15056,7 @@ bool skill_check_condition_castbegin(struct map_session_data* sd, uint16 skill_i
|
|
break;
|
|
break;
|
|
case WM_GREAT_ECHO: {
|
|
case WM_GREAT_ECHO: {
|
|
int count;
|
|
int count;
|
|
- count = skill_check_pc_partner(sd, skill_id, &skill_lv, skill_get_splash(skill_id,skill_lv), 0);
|
|
|
|
|
|
+ count = skill_check_pc_partner(sd, skill_id, &skill_lv, AREA_SIZE, 0);
|
|
if( count < 1 ) {
|
|
if( count < 1 ) {
|
|
clif_skill_fail(sd,skill_id,USESKILL_FAIL_NEED_HELPER,0);
|
|
clif_skill_fail(sd,skill_id,USESKILL_FAIL_NEED_HELPER,0);
|
|
return false;
|
|
return false;
|