|
@@ -1007,7 +1007,6 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
|
|
|
enum sc_type status;
|
|
|
int skill;
|
|
|
int rate;
|
|
|
- int chorusbonus = 0;
|
|
|
|
|
|
nullpo_ret(src);
|
|
|
nullpo_ret(bl);
|
|
@@ -1062,16 +1061,6 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
|
|
|
//So if the target can't be inflicted with statuses, this is pointless.
|
|
|
return 0;
|
|
|
|
|
|
- // Minstrel/Wanderer number check for chorus skills.
|
|
|
- // Bonus remains 0 unless 3 or more Minstrels/Wanderers are in the party.
|
|
|
- if( sd && sd->status.party_id ) {
|
|
|
- chorusbonus = party_foreachsamemap(party_sub_count_class, sd, AREA_SIZE, MAPID_THIRDMASK, MAPID_MINSTRELWANDERER);
|
|
|
- if( chorusbonus > 7 )
|
|
|
- chorusbonus = 5; // Maximum effect possible from 7 or more Minstrels/Wanderers
|
|
|
- else if( chorusbonus > 2 )
|
|
|
- chorusbonus = chorusbonus - 2; // Effect bonus from additional Minstrels/Wanderers if not above the max possible.
|
|
|
- }
|
|
|
-
|
|
|
if( sd )
|
|
|
{ // These statuses would be applied anyway even if the damage was blocked by some skills. [Inkfish]
|
|
|
if( skill_id != WS_CARTTERMINATION && skill_id != AM_DEMONSTRATION && skill_id != CR_REFLECTSHIELD && skill_id != MS_REFLECTSHIELD && skill_id != ASC_BREAKER ) {
|
|
@@ -1662,7 +1651,7 @@ int skill_additional_effect(struct block_list* src, struct block_list *bl, uint1
|
|
|
tsc->data[SC_GLOOMYDAY] || tsc->data[SC_GLOOMYDAY_SK] || tsc->data[SC_SONGOFMANA] ||
|
|
|
tsc->data[SC_DANCEWITHWUG] || tsc->data[SC_SATURDAYNIGHTFEVER] || tsc->data[SC_LERADSDEW] ||
|
|
|
tsc->data[SC_MELODYOFSINK] || tsc->data[SC_BEYONDOFWARCRY] || tsc->data[SC_UNLIMITEDHUMMINGVOICE] ) &&
|
|
|
- rnd()%100 < 4 * skill_lv + 2 * ((sd) ? pc_checkskill(sd, WM_LESSON) : skill_get_max(WM_LESSON)) + 10 * chorusbonus) {
|
|
|
+ rnd()%100 < 4 * skill_lv + 2 * ((sd) ? pc_checkskill(sd, WM_LESSON) : skill_get_max(WM_LESSON)) + 10 * battle_calc_chorusbonus(sd)) {
|
|
|
status_change_start(src, bl, SC_STUN, 10000, skill_lv, 0, 0, 0, skill_get_time(skill_id,skill_lv), SCSTART_NOTICKDEF);
|
|
|
status_change_end(bl, SC_DANCING, INVALID_TIMER);
|
|
|
status_change_end(bl, SC_RICHMANKIM, INVALID_TIMER);
|
|
@@ -6078,7 +6067,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
|
|
|
struct status_data *sstatus, *tstatus;
|
|
|
struct status_change *tsc;
|
|
|
struct status_change_entry *tsce;
|
|
|
- int chorusbonus = 0;
|
|
|
|
|
|
int i = 0;
|
|
|
enum sc_type type;
|
|
@@ -6119,16 +6107,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
|
|
|
tstatus = status_get_status_data(bl);
|
|
|
sstatus = status_get_status_data(src);
|
|
|
|
|
|
- // Minstrel/Wanderer number check for chorus skills.
|
|
|
- // Bonus remains 0 unless 3 or more Minstrels/Wanderers are in the party.
|
|
|
- if( sd && sd->status.party_id ) {
|
|
|
- chorusbonus = party_foreachsamemap(party_sub_count_class, sd, AREA_SIZE, MAPID_THIRDMASK, MAPID_MINSTRELWANDERER);
|
|
|
- if( chorusbonus > 7 )
|
|
|
- chorusbonus = 5; // Maximum effect possible from 7 or more Minstrels/Wanderers
|
|
|
- else if( chorusbonus > 2 )
|
|
|
- chorusbonus = chorusbonus - 2; // Effect bonus from additional Minstrels/Wanderers if not above the max possible.
|
|
|
- }
|
|
|
-
|
|
|
//Check for undead skills that convert a no-damage skill into a damage one. [Skotlex]
|
|
|
switch (skill_id) {
|
|
|
case HLIF_HEAL: //[orn]
|
|
@@ -10091,10 +10069,10 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
|
|
|
if( flag&1 ) { // These affect to to all party members near the caster.
|
|
|
struct status_change *sc = status_get_sc(src);
|
|
|
if( sc && sc->data[type] ) {
|
|
|
- sc_start2(src,bl,type,100,skill_lv,chorusbonus,skill_get_time(skill_id,skill_lv));
|
|
|
+ sc_start2(src,bl,type,100,skill_lv,battle_calc_chorusbonus(sd),skill_get_time(skill_id,skill_lv));
|
|
|
}
|
|
|
} else if( sd ) {
|
|
|
- if( sc_start2(src,bl,type,100,skill_lv,chorusbonus,skill_get_time(skill_id,skill_lv)) )
|
|
|
+ if( sc_start2(src,bl,type,100,skill_lv,battle_calc_chorusbonus(sd),skill_get_time(skill_id,skill_lv)) )
|
|
|
party_foreachsamemap(skill_area_sub,sd,skill_get_splash(skill_id,skill_lv),src,skill_id,skill_lv,tick,flag|BCT_PARTY|1,skill_castend_nodamage_id);
|
|
|
clif_skill_nodamage(src,bl,skill_id,skill_lv,1);
|
|
|
}
|
|
@@ -10103,9 +10081,9 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
|
|
|
case WM_MELODYOFSINK:
|
|
|
case WM_BEYOND_OF_WARCRY:
|
|
|
if( flag&1 ) {
|
|
|
- sc_start2(src,bl,type,100,skill_lv,chorusbonus,skill_get_time(skill_id,skill_lv));
|
|
|
+ sc_start2(src,bl,type,100,skill_lv,battle_calc_chorusbonus(sd),skill_get_time(skill_id,skill_lv));
|
|
|
} else { // These affect to all targets arround the caster.
|
|
|
- if( rnd()%100 < 15 + 5 * skill_lv * 5 * chorusbonus ) {
|
|
|
+ if( rnd()%100 < 15 + 5 * skill_lv * 5 * battle_calc_chorusbonus(sd) ) {
|
|
|
map_foreachinallrange(skill_area_sub, src, skill_get_splash(skill_id,skill_lv),BL_PC, src, skill_id, skill_lv, tick, flag|BCT_ENEMY|1, skill_castend_nodamage_id);
|
|
|
clif_skill_nodamage(src,bl,skill_id,skill_lv,1);
|
|
|
}
|