Small clean-up

This commit is contained in:
Atemo 2024-07-22 16:56:58 +02:00
parent 121c2d10f3
commit 5e84cc685d
7 changed files with 70 additions and 114 deletions

View File

@ -41769,20 +41769,19 @@ Body:
TargetType: Self
DamageFlags:
NoDamage: true
Duration1: 300000
Duration1: 300000
CastCancel: true
CastTime: 1700
FixedCastTime: 1000
Requires:
SpCost: 90
Status: Colors_of_Hyun_Rok_Buff
- Id: 5445
Name: SH_HYUN_ROKS_BREEZE
Description: Hyunrok Breeze
MaxLevel: 7
Type: Magic
TargetType: Ground
Hit: Multi_Hit
Hit: Single
HitCount: 1
Range: 9
GiveAp: 4
@ -41810,7 +41809,6 @@ Body:
Amount: 94
Unit:
Id: HYUN_ROKS_BREEZE
Layout: 0
Range:
- Level: 1
Size: 2
@ -41839,9 +41837,8 @@ Body:
TargetType: Attack
Range: -11
GiveAp: 1
Hit: Multi_Hit
Hit: Single
HitCount: 1
Element: Endowed
CastCancel: true
CastTime: 2000
Cooldown: 300

View File

@ -9051,6 +9051,3 @@ Body:
- Status: Blessing_of_M_C_Debuff
Icon: EFST_BLESSING_OF_M_C_DEBUFF
DurationLookup: SH_BLESSING_OF_MYSTICAL_CREATURES
CalcFlags:
Patk: true
Smatk: true

View File

@ -3038,8 +3038,7 @@ static bool is_attack_critical(struct Damage* wd, struct block_list *src, struct
}
break;
case SH_CHUL_HO_SONIC_CLAW:
case SH_HOGOGONG_STRIKE:
if (pc_checkskill(sd, SH_COMMUNE_WITH_CHUL_HO) == 0 || !(sc && sc->getSCE(SC_TEMPORARY_COMMUNION)))
if (pc_checkskill(sd, SH_COMMUNE_WITH_CHUL_HO) == 0 && !(sc && sc->getSCE(SC_TEMPORARY_COMMUNION)))
return false;
break;
}

View File

@ -1912,35 +1912,6 @@
export_constant(SC_HIDDEN_CARD);
export_constant(SC_PERIOD_RECEIVEITEM_2ND);
export_constant(SC_PERIOD_PLUSEXP_2ND);
// Sky Emperor
export_constant(SC_RISING_SUN);
export_constant(SC_NOON_SUN);
export_constant(SC_SUNSET_SUN);
export_constant(SC_RISING_MOON);
export_constant(SC_MIDNIGHT_MOON);
export_constant(SC_DAWN_MOON);
export_constant(SC_STAR_BURST);
export_constant(SC_SKY_ENCHANT);
// Soul Ascetic
export_constant(SC_TALISMAN_OF_PROTECTION);
export_constant(SC_TALISMAN_OF_WARRIOR);
export_constant(SC_TALISMAN_OF_MAGICIAN);
export_constant(SC_TALISMAN_OF_FIVE_ELEMENTS);
export_constant(SC_TOTEM_OF_TUTELARY);
export_constant(SC_T_FIRST_GOD);
export_constant(SC_T_SECOND_GOD);
export_constant(SC_T_THIRD_GOD);
export_constant(SC_T_FOURTH_GOD);
export_constant(SC_T_FIFTH_GOD);
export_constant(SC_HEAVEN_AND_EARTH);
// Shinkiro/Shiranui
export_constant(SC_SHADOW_CLOCK);
export_constant(SC_SHINKIROU_CALL);
export_constant(SC_NIGHTMARE);
export_constant(SC_SBUNSHIN);
// Spirit Handler
export_constant(SC_HOGOGONG);
@ -11062,7 +11033,6 @@
export_constant(UNT_JACK_FROST_NOVA);
export_constant(UNT_GROUND_GRAVITATION);
export_constant(UNT_KUNAIWAIKYOKU);
export_constant(UNT_GD_LEADERSHIP);
export_constant(UNT_GD_GLORYWOUNDS);
export_constant(UNT_GD_SOULCOLD);

View File

@ -6191,7 +6191,7 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, uint
case TR_SOUNDBLEND:
case SH_HYUN_ROK_CANNON:
clif_skill_nodamage(src, bl, skill_id, skill_lv, 1);
skill_attack(BF_MAGIC, src, src, bl, skill_id, skill_lv, tick, flag);
skill_attack(skill_get_type(skill_id), src, src, bl, skill_id, skill_lv, tick, flag);
break;
case AG_DEADLY_PROJECTION:
@ -13015,8 +13015,9 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
skill_area_temp[1] = bl->id;
skill_area_temp[2] = 0;
clif_skill_nodamage(src, bl, skill_id, skill_lv, 1);
map_foreachinrange(skill_area_sub, bl, i, BL_CHAR, src, skill_id, skill_lv, tick, flag | BCT_ENEMY | SD_SPLASH | 1, skill_castend_damage_id);
map_foreachinrange(skill_area_sub, bl, i, BL_CHAR, src, skill_id, skill_lv, tick, flag | BCT_ENEMY | 1, skill_castend_damage_id);
break;
case SH_HOGOGONG_STRIKE:
i = skill_get_splash(skill_id, skill_lv);
if( pc_checkskill(sd, SH_COMMUNE_WITH_CHUL_HO) > 0 || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION)))
@ -13025,12 +13026,13 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
skill_area_temp[1] = bl->id;
skill_area_temp[2] = 0;
clif_skill_nodamage(src, bl, skill_id, skill_lv, 1);
map_foreachinrange(skill_area_sub, bl, i, BL_CHAR, src, skill_id, skill_lv, tick, flag | BCT_ENEMY | SD_SPLASH | 1, skill_castend_damage_id);
map_foreachinrange(skill_area_sub, bl, i, BL_CHAR, src, skill_id, skill_lv, tick, flag | BCT_ENEMY | 1, skill_castend_damage_id);
break;
case SH_KI_SUL_WATER_SPRAYING:
if (flag & 1) {
if (sd == nullptr || sd->status.party_id == 0 || (flag & 1)) {
int heal = 500 * skill_lv + status_get_int(src) * 5;
heal += pc_checkskill(sd, SH_MYSTICAL_CREATURE_MASTERY)*100;
heal += pc_checkskill(sd, SH_MYSTICAL_CREATURE_MASTERY) * 100;
if (pc_checkskill(sd, SH_COMMUNE_WITH_KI_SUL) > 0 || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION))) {
heal += 250 * skill_lv;
@ -13038,37 +13040,35 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
}
heal = heal * (100 + status_get_crt(src)) * status_get_lv(src) / 10000;
status_heal(bl, heal, 0, 0, 0);
clif_skill_nodamage(0, bl, AL_HEAL, heal, 1);
clif_skill_nodamage(src, bl, skill_id, heal, 1);
}
else {
else if (sd != nullptr) {
i = skill_get_splash(skill_id, skill_lv);
if (pc_checkskill(sd, SH_COMMUNE_WITH_KI_SUL) > 0 || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION)))
i += 2;
clif_skill_nodamage(src, bl, skill_id, skill_lv, 1);
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);
party_foreachsamemap(skill_area_sub, sd, i, src, skill_id, skill_lv, tick, flag|BCT_PARTY|1, skill_castend_nodamage_id);
}
break;
case SH_MARINE_FESTIVAL_OF_KI_SUL:
case SH_SANDY_FESTIVAL_OF_KI_SUL:
if (flag & 1) {
if (sd == nullptr || sd->status.party_id == 0 || (flag & 1)) {
int time = skill_get_time(skill_id, skill_lv);
if (pc_checkskill(sd, SH_COMMUNE_WITH_KI_SUL) > 0 || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION)))
time *= 2;
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, sc_start(src, bl, type, 100, skill_lv, time));
}
else {
else if (sd != nullptr) {
i = skill_get_splash(skill_id, skill_lv);
if (pc_checkskill(sd, SH_COMMUNE_WITH_KI_SUL) > 0 || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION)))
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);
party_foreachsamemap(skill_area_sub, sd, i, src, skill_id, skill_lv, tick, flag|BCT_PARTY|1, skill_castend_nodamage_id);
}
break;
case SH_KI_SUL_RAMPAGE:
if (flag & 1) {
if (!(src == bl)) {
if (src != bl) {
if (pc_checkskill(sd, SH_COMMUNE_WITH_KI_SUL) > 0 || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION)))
status_heal(bl, 0, 0, 4, 0);
else
@ -13076,23 +13076,56 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
}
}
else {
// TODO: no party check ?
clif_skill_nodamage(src, bl, skill_id, skill_lv, 1);
sc_start(src, bl, type, 100, skill_lv, skill_get_time(skill_id, skill_lv));
}
break;
case SH_COLORS_OF_HYUN_ROK:
for(i = SC_COLORS_OF_HYUN_ROK_1; i < SC_COLORS_OF_HYUN_ROK_1+6; i++)
status_change_end(src, (sc_type)i);
if (skill_lv < 7) {
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, (sc_type)(SC_COLORS_OF_HYUN_ROK_1+skill_lv-1), 100, skill_lv, skill_get_time(skill_id, skill_lv));
if (skill_lv == 7) {
status_change_end(src, SC_COLORS_OF_HYUN_ROK_1);
status_change_end(src, SC_COLORS_OF_HYUN_ROK_2);
status_change_end(src, SC_COLORS_OF_HYUN_ROK_3);
status_change_end(src, SC_COLORS_OF_HYUN_ROK_4);
status_change_end(src, SC_COLORS_OF_HYUN_ROK_5);
status_change_end(src, SC_COLORS_OF_HYUN_ROK_6);
clif_skill_nodamage(src, src, skill_id, skill_lv, 1);
}
else {
// Buff to increase Catnip Meteor damage
if (pc_checkskill(sd, SH_COMMUNE_WITH_HYUN_ROK) > 0 || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION)))
sc_start(src, bl, SC_COLORS_OF_HYUN_ROK_BUFF, 100, 1, skill_get_time(skill_id, skill_lv));
// Endows elemental property to Catnip Meteor, Hyunrok Breeze and Hyunrok Cannon skills
switch (skill_lv) {
case 1:
type = SC_COLORS_OF_HYUN_ROK_1;
break;
case 2:
type = SC_COLORS_OF_HYUN_ROK_2;
break;
case 3:
type = SC_COLORS_OF_HYUN_ROK_3;
break;
case 4:
type = SC_COLORS_OF_HYUN_ROK_4;
break;
case 5:
type = SC_COLORS_OF_HYUN_ROK_5;
break;
case 6:
type = SC_COLORS_OF_HYUN_ROK_6;
break;
}
clif_skill_nodamage(src, src, skill_id, skill_lv, sc_start(src, bl, type, 100, skill_lv, skill_get_time(skill_id,skill_lv)) );
}
clif_skill_nodamage(src, src, skill_id, skill_lv, 1);
break;
case SH_BLESSING_OF_MYSTICAL_CREATURES:
status_heal(bl, 0, 0, 200-status_get_ap(bl), 0);
sc_start(src, bl, type, 100, skill_lv, skill_get_time(skill_id, skill_lv));
clif_skill_nodamage(src, src, skill_id, skill_lv, 1);
clif_skill_nodamage(src, src, skill_id, skill_lv, sc_start(src, bl, type, 100, skill_lv, skill_get_time(skill_id, skill_lv)));
break;
default: {

View File

@ -4427,8 +4427,8 @@ int status_calc_pc_sub(map_session_data* sd, uint8 opt)
}
if ((skill = pc_checkskill(sd, SH_MYSTICAL_CREATURE_MASTERY)) > 0) {
base_status->smatk += 1 + (skill - 1) * 15 / 10 + ((skill - 1) * 15 % 10 ? 1 : 0);
base_status->patk += 1 + (skill - 1) * 15 / 10 + ((skill - 1) * 15 % 10 ? 1 : 0);
base_status->smatk += skill * 15 / 10;
base_status->patk += skill * 15 / 10;
}
// ----- PHYSICAL RESISTANCE CALCULATION -----
@ -12814,8 +12814,8 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
val2 = 2 * val1;
break;
case SC_KI_SUL_RAMPAGE:
val4 = tick / 1000;
tick_time = 100;
tick_time = 1000;
val4 = tick / tick_time;
break;
case SC_BLESSING_OF_M_CREATURES:
val2 = val1 * 10;
@ -14978,7 +14978,7 @@ TIMER_FUNC(status_change_timer){
sc_timer_next(500 + tick);
return 0;
case SC_KI_SUL_RAMPAGE:
if (sce->val4-- > 0) {
if (--(sce->val4) >= 0) {
int i = skill_get_splash(SH_KI_SUL_RAMPAGE, sce->val1);
int lv = sce->val1;
if (pc_checkskill(sd, SH_COMMUNE_WITH_KI_SUL) > 0 || (sc && sc->getSCE(SC_TEMPORARY_COMMUNION))) {
@ -14986,7 +14986,7 @@ TIMER_FUNC(status_change_timer){
lv += skill_get_max(SH_KI_SUL_RAMPAGE);
}
clif_skill_nodamage(bl, bl, SH_KI_SUL_RAMPAGE, lv, 1);
map_foreachinrange(skill_area_sub, bl, i, BL_CHAR, bl, SH_KI_SUL_RAMPAGE, lv, tick, BCT_PARTY | SD_SPLASH | 1, skill_castend_nodamage_id);
map_foreachinrange(skill_area_sub, bl, i, BL_CHAR, bl, SH_KI_SUL_RAMPAGE, lv, tick, BCT_PARTY | 1, skill_castend_nodamage_id);
sc_timer_next(1000 + tick);
return 0;
}

View File

@ -1292,41 +1292,7 @@ enum sc_type : int16 {
SC_GROUNDGRAVITY,
SC_BREAKINGLIMIT,
SC_RULEBREAK,
// Sky Emperor
SC_RISING_SUN,
SC_NOON_SUN,
SC_SUNSET_SUN,
SC_RISING_MOON,
SC_MIDNIGHT_MOON,
SC_DAWN_MOON,
SC_STAR_BURST,
SC_SKY_ENCHANT,
// Soul Ascetic
SC_TALISMAN_OF_PROTECTION,
SC_TALISMAN_OF_WARRIOR,
SC_TALISMAN_OF_MAGICIAN,
SC_TALISMAN_OF_FIVE_ELEMENTS,
SC_T_FIRST_GOD,
SC_T_SECOND_GOD,
SC_T_THIRD_GOD,
SC_T_FOURTH_GOD,
SC_T_FIFTH_GOD,
SC_HEAVEN_AND_EARTH,
SC_TOTEM_OF_TUTELARY,
// Night Watch
SC_INTENSIVE_AIM,
SC_INTENSIVE_AIM_COUNT,
SC_GRENADE_FRAGMENT_1,
SC_GRENADE_FRAGMENT_2,
SC_GRENADE_FRAGMENT_3,
SC_GRENADE_FRAGMENT_4,
SC_GRENADE_FRAGMENT_5,
SC_GRENADE_FRAGMENT_6,
SC_AUTO_FIRING_LAUNCHER,
SC_HIDDEN_CARD,
SC_PERIOD_RECEIVEITEM_2ND,
SC_PERIOD_PLUSEXP_2ND,
@ -1335,12 +1301,6 @@ enum sc_type : int16 {
SC_AGIUP,
SC_PROTECTION,
// Shinkiro/Shiranui
SC_SHADOW_CLOCK,
SC_SHINKIROU_CALL,
SC_NIGHTMARE,
SC_SBUNSHIN,
// Spirit Handler
SC_HOGOGONG,
SC_MARINE_FESTIVAL,