Updated Arrullo and Deep Sleep Lullaby (fixes #1063)
* Deep Sleep status is now avoidable thus removing the 5 second minimum duration. * Corrected the success chance for Arrullo and Deep Sleep Lullaby being 10x higher. * Deep Sleep status duration is now BaseDuration - 25 * tarBaseINT - 50 * tarBaseLevel. -- Deep Sleep Lullaby duration is doubled with BaseDuration - 50 * tarBaseINT - 50 * tarBaseLevel.
This commit is contained in:
parent
c14758f932
commit
19e4f599de
@ -10100,24 +10100,20 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
|
||||
|
||||
case SO_ARRULLO:
|
||||
{
|
||||
// Success chance: [(15 + 5 * Skill Level) + ( Caster's INT / 5 ) + ( Caster's Job Level / 5 ) - ( Target's INT / 6 ) - ( Target's LUK / 10 )] %
|
||||
int rate = (15 + 5 * skill_lv) * 1000 + status_get_int(src) * 200 + (sd ? sd->status.job_level * 200 : 0) - status_get_int(bl) * 1000 / 6 - status_get_luk(bl) * 100;
|
||||
// Resistance: {(Target's Base Level / 20) + (Target's Base INT / 40)} seconds
|
||||
int duration = skill_get_time(skill_id, skill_lv) - (status_get_lv(bl) * 50 + (sd ? sd->status.int_ : status_get_base_status(bl)->int_) * 25);
|
||||
int rate = (15 + 5 * skill_lv) + status_get_int(src) / 5 + (sd ? sd->status.job_level / 5 : 0) - status_get_int(bl) / 6 - status_get_luk(bl) / 10;
|
||||
|
||||
clif_skill_nodamage(src, bl, skill_id, skill_lv, 1);
|
||||
status_change_start(src,bl,type,rate,skill_lv,0,0,0,max(duration,5000),SCSTART_NORATEDEF|SCSTART_NOTICKDEF); // Avoid general resistance
|
||||
sc_start(src, bl, type, rate, skill_lv, skill_get_time(skill_id, skill_lv));
|
||||
}
|
||||
break;
|
||||
|
||||
case WM_LULLABY_DEEPSLEEP:
|
||||
if (flag&1) {
|
||||
// Resistance: {(Target's Base Level / 20) + (Target's Base INT / 20)} seconds
|
||||
int duration = skill_area_temp[6] - (status_get_lv(bl) * 50 + (sd ? sd->status.int_ : status_get_base_status(bl)->int_) * 50);
|
||||
status_change_start(src,bl,type,skill_area_temp[5],skill_lv,0,0,0,max(duration,5000),SCSTART_NORATEDEF|SCSTART_NOTICKDEF); // Avoid general resistance
|
||||
int rate = 4 * skill_lv + (sd ? pc_checkskill(sd, WM_LESSON) * 2) + status_get_lv(src) / 15 + (sd ? sd->status.job_level / 5 : 0);
|
||||
int duration = skill_get_time(skill_id, skill_lv) - (status_get_base_status(bl)->int_ * 50 + status_get_lv(bl) * 50); // Duration reduction for Deep Sleep Lullaby is doubled
|
||||
|
||||
sc_start(src, bl, type, rate, skill_lv, duration);
|
||||
} else {
|
||||
// Success chance: [(Skill Level x 4) + (Voice Lessons Skill Level x 2) + (Caster's Base Level / 15) + (Caster's Job Level / 5)] %
|
||||
skill_area_temp[5] = (4 * skill_lv * 1000) + ((sd) ? pc_checkskill(sd,WM_LESSON) : skill_get_max(WM_LESSON)) * 2000 + (status_get_lv(src) * 1000 / 15) + (sd ? sd->status.job_level * 200 : 0);
|
||||
skill_area_temp[6] = skill_get_time(skill_id,skill_lv);
|
||||
clif_skill_nodamage(src, bl, skill_id, skill_lv, 1);
|
||||
map_foreachinrange(skill_area_sub, bl, skill_get_splash(skill_id, skill_lv), BL_CHAR, src, skill_id, skill_lv, tick, flag|BCT_ALL|BCT_WOS|1, skill_castend_nodamage_id);
|
||||
}
|
||||
|
@ -7578,9 +7578,7 @@ int status_get_sc_def(struct block_list *src, struct block_list *bl, enum sc_typ
|
||||
sc_def = status->agi*50;
|
||||
break;
|
||||
case SC_DEEPSLEEP:
|
||||
sc_def = (sd ? sd->status.int_ : status_get_base_status(bl)->int_) * 50;
|
||||
tick_def = 0; // Linear reduction instead
|
||||
tick_def2 = ((sd ? sd->status.int_ : status_get_base_status(bl)->int_) + status_get_lv(bl)) * 50; // kRO balance update lists this formula
|
||||
tick_def2 = status_get_base_status(bl)->int_ * 25 + status_get_lv(bl) * 50;
|
||||
break;
|
||||
case SC_NETHERWORLD:
|
||||
// Resistance: {(Target's Base Level / 50) + (Target's Job Level / 10)} seconds
|
||||
@ -7726,7 +7724,6 @@ int status_get_sc_def(struct block_list *src, struct block_list *bl, enum sc_typ
|
||||
switch (type) {
|
||||
case SC_ANKLE:
|
||||
case SC_MARSHOFABYSS:
|
||||
case SC_DEEPSLEEP:
|
||||
tick = max(tick, 5000); // Minimum duration 5s
|
||||
break;
|
||||
case SC_FREEZING:
|
||||
|
Loading…
x
Reference in New Issue
Block a user