Removed useless sd check

This commit is contained in:
Atemo 2024-01-01 16:27:24 +01:00
parent 2aa0335165
commit 0a9e1cd977
4 changed files with 38 additions and 49 deletions

View File

@ -2956,7 +2956,7 @@ static bool is_attack_critical(struct Damage* wd, struct block_list *src, struct
return false; return false;
case SH_CHUL_HO_SONIC_CLAW: case SH_CHUL_HO_SONIC_CLAW:
case SH_HOGOGONG_STRIKE: case SH_HOGOGONG_STRIKE:
if (!(sd && pc_checkskill(sd, SH_COMMUNE_WITH_CHUL_HO)) || !(sc && sc->getSCE(SC_TEMPORARY_COMMUNION))) if (pc_checkskill(sd, SH_COMMUNE_WITH_CHUL_HO) == 0 || !(sc && sc->getSCE(SC_TEMPORARY_COMMUNION)))
return false; return false;
break; break;
} }
@ -5751,46 +5751,40 @@ static int battle_calc_attack_skill_ratio(struct Damage* wd, struct block_list *
case ABR_INFINITY_BUSTER:// Need official formula. case ABR_INFINITY_BUSTER:// Need official formula.
skillratio += -100 + 50000; skillratio += -100 + 50000;
break; break;
case SH_CHUL_HO_SONIC_CLAW: { case SH_CHUL_HO_SONIC_CLAW:
int tmp_val = (sd ? pc_checkskill(sd, SH_MYSTICAL_CREATURE_MASTERY) : 0);
skillratio += -100 + 850 + 1650 * skill_lv; skillratio += -100 + 850 + 1650 * skill_lv;
skillratio += 50 * tmp_val; skillratio += 50 * pc_checkskill(sd, SH_MYSTICAL_CREATURE_MASTERY);
skillratio += 5 * sstatus->pow; skillratio += 5 * sstatus->pow;
if ((sd && pc_checkskill(sd, SH_COMMUNE_WITH_CHUL_HO)) || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION))) { if (pc_checkskill(sd, SH_COMMUNE_WITH_CHUL_HO) > 0 || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION))) {
skillratio += 100 + 400 * skill_lv; skillratio += 100 + 400 * skill_lv;
skillratio += 50 * tmp_val; skillratio += 50 * pc_checkskill(sd, SH_MYSTICAL_CREATURE_MASTERY);
} }
RE_LVL_DMOD(100); RE_LVL_DMOD(100);
break; break;
} case SH_HOWLING_OF_CHUL_HO:
case SH_HOWLING_OF_CHUL_HO: {
int tmp_val = (sd ? pc_checkskill(sd, SH_MYSTICAL_CREATURE_MASTERY) : 0);
skillratio += -100 + 600 + 1050 * skill_lv; skillratio += -100 + 600 + 1050 * skill_lv;
skillratio += 50 * tmp_val; skillratio += 50 * pc_checkskill(sd, SH_MYSTICAL_CREATURE_MASTERY);
skillratio += 5 * sstatus->pow; skillratio += 5 * sstatus->pow;
if ((sd && pc_checkskill(sd, SH_COMMUNE_WITH_CHUL_HO)) || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION))) { if (pc_checkskill(sd, SH_COMMUNE_WITH_CHUL_HO) > 0 || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION))) {
skillratio += 100 + 100 * skill_lv; skillratio += 100 + 100 * skill_lv;
skillratio += 50 * tmp_val; skillratio += 50 * pc_checkskill(sd, SH_MYSTICAL_CREATURE_MASTERY);
} }
RE_LVL_DMOD(100); RE_LVL_DMOD(100);
break; break;
} case SH_HOGOGONG_STRIKE:
case SH_HOGOGONG_STRIKE: {
int tmp_val = (sd ? pc_checkskill(sd, SH_MYSTICAL_CREATURE_MASTERY) : 0);
skillratio += -100 + 180 + 200 * skill_lv; skillratio += -100 + 180 + 200 * skill_lv;
skillratio += 10 * tmp_val; skillratio += 10 * pc_checkskill(sd, SH_MYSTICAL_CREATURE_MASTERY);
skillratio += 5 * sstatus->pow; skillratio += 5 * sstatus->pow;
if ((sd && pc_checkskill(sd, SH_COMMUNE_WITH_CHUL_HO)) || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION))) { if (pc_checkskill(sd, SH_COMMUNE_WITH_CHUL_HO) > 0 || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION))) {
skillratio += 70 + 150 * skill_lv; skillratio += 70 + 150 * skill_lv;
skillratio += 10 * tmp_val; skillratio += 10 * pc_checkskill(sd, SH_MYSTICAL_CREATURE_MASTERY);
} }
RE_LVL_DMOD(100); RE_LVL_DMOD(100);
break; break;
} }
}
return skillratio; return skillratio;
} }
@ -8173,33 +8167,29 @@ struct Damage battle_calc_magic_attack(struct block_list *src,struct block_list
case NPC_RAINOFMETEOR: case NPC_RAINOFMETEOR:
skillratio += 350; // unknown ratio skillratio += 350; // unknown ratio
break; break;
case SH_HYUN_ROKS_BREEZE: { case SH_HYUN_ROKS_BREEZE:
int tmp_val = (sd ? pc_checkskill(sd, SH_MYSTICAL_CREATURE_MASTERY) : 0);
skillratio += -100 + 650 + 750 * skill_lv; skillratio += -100 + 650 + 750 * skill_lv;
skillratio += 20 * tmp_val; skillratio += 20 * pc_checkskill(sd, SH_MYSTICAL_CREATURE_MASTERY);
skillratio += 5 * sstatus->spl; skillratio += 5 * sstatus->spl;
if ((sd && pc_checkskill(sd, SH_COMMUNE_WITH_HYUN_ROK)) || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION))) { if (pc_checkskill(sd, SH_COMMUNE_WITH_HYUN_ROK) > 0 || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION))) {
skillratio += 100 + 200 * skill_lv; skillratio += 100 + 200 * skill_lv;
skillratio += 20 * tmp_val; skillratio += 20 * pc_checkskill(sd, SH_MYSTICAL_CREATURE_MASTERY);
} }
RE_LVL_DMOD(100); RE_LVL_DMOD(100);
break; break;
} case SH_HYUN_ROK_CANNON:
case SH_HYUN_ROK_CANNON: {
int tmp_val = (sd ? pc_checkskill(sd, SH_MYSTICAL_CREATURE_MASTERY) : 0);
skillratio += -100 + 1050 + 1550 * skill_lv; skillratio += -100 + 1050 + 1550 * skill_lv;
skillratio += 50 * tmp_val; skillratio += 50 * pc_checkskill(sd, SH_MYSTICAL_CREATURE_MASTERY);
skillratio += 5 * sstatus->spl; skillratio += 5 * sstatus->spl;
if ((sd && pc_checkskill(sd, SH_COMMUNE_WITH_HYUN_ROK)) || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION))) { if (pc_checkskill(sd, SH_COMMUNE_WITH_HYUN_ROK) > 0 || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION))) {
skillratio += 300 * skill_lv; skillratio += 300 * skill_lv;
skillratio += 25 * tmp_val; skillratio += 25 * pc_checkskill(sd, SH_MYSTICAL_CREATURE_MASTERY);
} }
RE_LVL_DMOD(100); RE_LVL_DMOD(100);
break; break;
} }
}
if (sc) {// Insignia's increases the damage of offensive magic by a fixed percentage depending on the element. if (sc) {// Insignia's increases the damage of offensive magic by a fixed percentage depending on the element.
if ((sc->getSCE(SC_FIRE_INSIGNIA) && sc->getSCE(SC_FIRE_INSIGNIA)->val1 == 3 && s_ele == ELE_FIRE) || if ((sc->getSCE(SC_FIRE_INSIGNIA) && sc->getSCE(SC_FIRE_INSIGNIA)->val1 == 3 && s_ele == ELE_FIRE) ||

View File

@ -7145,10 +7145,11 @@ int pc_get_skillcooldown(map_session_data *sd, uint16 skill_id, uint16 skill_lv)
*------------------------------------------*/ *------------------------------------------*/
uint8 pc_checkskill(map_session_data *sd, uint16 skill_id) uint8 pc_checkskill(map_session_data *sd, uint16 skill_id)
{ {
uint16 idx = 0; if (sd == nullptr)
if (sd == NULL)
return 0; return 0;
uint16 idx = 0;
#ifdef RENEWAL #ifdef RENEWAL
if ((idx = skill_get_index(skill_id)) == 0) { if ((idx = skill_get_index(skill_id)) == 0) {
#else #else

View File

@ -12804,7 +12804,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
case SH_HOWLING_OF_CHUL_HO: case SH_HOWLING_OF_CHUL_HO:
i = skill_get_splash(skill_id, skill_lv); i = skill_get_splash(skill_id, skill_lv);
if ((sd && pc_checkskill(sd, SH_COMMUNE_WITH_CHUL_HO)) || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION))) if (pc_checkskill(sd, SH_COMMUNE_WITH_CHUL_HO) > 0 || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION)))
i += 1; i += 1;
skill_area_temp[0] = 0; skill_area_temp[0] = 0;
skill_area_temp[1] = bl->id; skill_area_temp[1] = bl->id;
@ -12814,7 +12814,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
break; break;
case SH_HOGOGONG_STRIKE: case SH_HOGOGONG_STRIKE:
i = skill_get_splash(skill_id, skill_lv); i = skill_get_splash(skill_id, skill_lv);
if( (sd && pc_checkskill(sd, SH_COMMUNE_WITH_CHUL_HO)) || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION))) if( pc_checkskill(sd, SH_COMMUNE_WITH_CHUL_HO) > 0 || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION)))
status_heal(src, 0, 0, 1, 0); status_heal(src, 0, 0, 1, 0);
skill_area_temp[0] = 0; skill_area_temp[0] = 0;
skill_area_temp[1] = bl->id; skill_area_temp[1] = bl->id;
@ -12825,12 +12825,10 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
case SH_KI_SUL_WATER_SPRAYING: case SH_KI_SUL_WATER_SPRAYING:
if (flag & 1) { if (flag & 1) {
int heal = 500 * skill_lv + status_get_int(src) * 5; int heal = 500 * skill_lv + status_get_int(src) * 5;
if (sd)
heal += pc_checkskill(sd, SH_MYSTICAL_CREATURE_MASTERY)*100; heal += pc_checkskill(sd, SH_MYSTICAL_CREATURE_MASTERY)*100;
if ((sd && pc_checkskill(sd, SH_COMMUNE_WITH_KI_SUL)) || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION)))
{ if (pc_checkskill(sd, SH_COMMUNE_WITH_KI_SUL) > 0 || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION))) {
heal += 250 * skill_lv; heal += 250 * skill_lv;
if (sd)
heal += pc_checkskill(sd, SH_MYSTICAL_CREATURE_MASTERY) * 50; heal += pc_checkskill(sd, SH_MYSTICAL_CREATURE_MASTERY) * 50;
} }
heal = heal * (100 + status_get_crt(src)) * status_get_lv(src) / 10000; heal = heal * (100 + status_get_crt(src)) * status_get_lv(src) / 10000;
@ -12839,7 +12837,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
} }
else { else {
i = skill_get_splash(skill_id, skill_lv); i = skill_get_splash(skill_id, skill_lv);
if ((sd && pc_checkskill(sd, SH_COMMUNE_WITH_KI_SUL)) || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION))) if (pc_checkskill(sd, SH_COMMUNE_WITH_KI_SUL) > 0 || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION)))
i += 2; i += 2;
clif_skill_nodamage(src, bl, skill_id, skill_lv, 1); clif_skill_nodamage(src, bl, skill_id, skill_lv, 1);
@ -12850,14 +12848,14 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
case SH_SANDY_FESTIVAL_OF_KI_SUL: case SH_SANDY_FESTIVAL_OF_KI_SUL:
if (flag & 1) { if (flag & 1) {
int time = skill_get_time(skill_id, skill_lv); int time = skill_get_time(skill_id, skill_lv);
if ((sd && pc_checkskill(sd, SH_COMMUNE_WITH_KI_SUL)) || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION))) if (pc_checkskill(sd, SH_COMMUNE_WITH_KI_SUL) > 0 || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION)))
time *= 2; time *= 2;
sc_start(src, bl, type, 100, skill_lv, time); sc_start(src, bl, type, 100, skill_lv, time);
clif_skill_nodamage(src, bl, skill_id, skill_lv, 1); clif_skill_nodamage(src, bl, skill_id, skill_lv, 1);
} }
else { else {
i = skill_get_splash(skill_id, skill_lv); i = skill_get_splash(skill_id, skill_lv);
if ((sd && pc_checkskill(sd, SH_COMMUNE_WITH_KI_SUL)) || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION))) if (pc_checkskill(sd, SH_COMMUNE_WITH_KI_SUL) > 0 || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION)))
i += 2; i += 2;
map_foreachinrange(skill_area_sub, bl, i, BL_CHAR, src, skill_id, skill_lv, tick, flag | BCT_PARTY | SD_SPLASH | 1, skill_castend_nodamage_id); map_foreachinrange(skill_area_sub, bl, i, BL_CHAR, src, skill_id, skill_lv, tick, flag | BCT_PARTY | SD_SPLASH | 1, skill_castend_nodamage_id);
@ -12866,7 +12864,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
case SH_KI_SUL_RAMPAGE: case SH_KI_SUL_RAMPAGE:
if (flag & 1) { if (flag & 1) {
if (!(src == bl)) { if (!(src == bl)) {
if ((sd && pc_checkskill(sd, SH_COMMUNE_WITH_KI_SUL)) || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION))) if (pc_checkskill(sd, SH_COMMUNE_WITH_KI_SUL) > 0 || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION)))
status_heal(bl, 0, 0, 4, 0); status_heal(bl, 0, 0, 4, 0);
else else
status_heal(bl, 0, 0, 2, 0); status_heal(bl, 0, 0, 2, 0);
@ -12880,7 +12878,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
for(i = SC_COLORS_OF_HYUN_ROK_1; i < SC_COLORS_OF_HYUN_ROK_1+6; i++) for(i = SC_COLORS_OF_HYUN_ROK_1; i < SC_COLORS_OF_HYUN_ROK_1+6; i++)
status_change_end(src, (sc_type)i); status_change_end(src, (sc_type)i);
if (skill_lv < 7) { if (skill_lv < 7) {
if ((sd && pc_checkskill(sd, SH_COMMUNE_WITH_HYUN_ROK)) || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION))) if (pc_checkskill(sd, SH_COMMUNE_WITH_HYUN_ROK) > 0 || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION)))
sc_start(src, bl, type, 100, skill_lv, skill_get_time(skill_id, skill_lv)); sc_start(src, bl, type, 100, skill_lv, skill_get_time(skill_id, skill_lv));
sc_start(src, bl, (sc_type)(SC_COLORS_OF_HYUN_ROK_1+skill_lv-1), 100, skill_lv, skill_get_time(skill_id, skill_lv)); sc_start(src, bl, (sc_type)(SC_COLORS_OF_HYUN_ROK_1+skill_lv-1), 100, skill_lv, skill_get_time(skill_id, skill_lv));
} }
@ -13281,7 +13279,7 @@ TIMER_FUNC(skill_castend_id){
} }
break; break;
case SH_HYUN_ROK_CANNON: case SH_HYUN_ROK_CANNON:
if (pc_checkskill(sd, SH_COMMUNE_WITH_HYUN_ROK) || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION))) if (pc_checkskill(sd, SH_COMMUNE_WITH_HYUN_ROK) > 0 || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION)))
add_ap += 1; add_ap += 1;
break; break;
} }
@ -17914,7 +17912,7 @@ bool skill_check_condition_castbegin(map_session_data* sd, uint16 skill_id, uint
return false; return false;
break; break;
case SH_TEMPORARY_COMMUNION: case SH_TEMPORARY_COMMUNION:
if (sd && !pc_checkskill(sd, SH_COMMUNE_WITH_CHUL_HO) && !pc_checkskill(sd, SH_COMMUNE_WITH_HYUN_ROK) && !pc_checkskill(sd, SH_COMMUNE_WITH_KI_SUL)) { if (sd && pc_checkskill(sd, SH_COMMUNE_WITH_CHUL_HO) == 0 && pc_checkskill(sd, SH_COMMUNE_WITH_HYUN_ROK) == 0 && pc_checkskill(sd, SH_COMMUNE_WITH_KI_SUL) == 0) {
clif_skill_fail(sd,skill_id,USESKILL_FAIL_CONDITION,0); clif_skill_fail(sd,skill_id,USESKILL_FAIL_CONDITION,0);
return false; return false;
} }

View File

@ -14859,7 +14859,7 @@ TIMER_FUNC(status_change_timer){
if (sce->val4-- > 0) { if (sce->val4-- > 0) {
int i = skill_get_splash(SH_KI_SUL_RAMPAGE, sce->val1); int i = skill_get_splash(SH_KI_SUL_RAMPAGE, sce->val1);
int lv = sce->val1; int lv = sce->val1;
if ((sd && pc_checkskill(sd, SH_COMMUNE_WITH_KI_SUL)) || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION))) { if (pc_checkskill(sd, SH_COMMUNE_WITH_KI_SUL) > 0 || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION))) {
i += 2; i += 2;
lv += skill_get_max(SH_KI_SUL_RAMPAGE); lv += skill_get_max(SH_KI_SUL_RAMPAGE);
} }