Fixed Soul Reaper's Soul Collect behavior

Added missing status change cancel condition, when the player has reached the maximum amount of soul spheres.
Fixed duration display on the client.
Some cleanup of duplicate code.

Thanks to @aleos89
This commit is contained in:
Lemongrass3110
2020-04-14 15:25:04 +02:00
parent 8323b0b275
commit 6570489a84
2 changed files with 13 additions and 10 deletions

View File

@@ -7718,21 +7718,19 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
case SJ_STARSTANCE:
case SJ_UNIVERSESTANCE:
case SJ_SUNSTANCE:
case SP_SOULCOLLECT:
if( tsce )
{
clif_skill_nodamage(src,bl,skill_id,skill_lv,status_change_end(bl, type, INVALID_TIMER));
map_freeblock_unlock();
return 0;
}
clif_skill_nodamage(src,bl,skill_id,skill_lv,sc_start(src,bl,type,100,skill_lv,skill_get_time(skill_id,skill_lv)));
break;
case SP_SOULCOLLECT:
if (tsce) {
clif_skill_nodamage(src, bl, skill_id, skill_lv, status_change_end(bl, type, INVALID_TIMER));
map_freeblock_unlock();
return 0;
if( skill_id == SP_SOULCOLLECT ){
clif_skill_nodamage(src, bl, skill_id, skill_lv, sc_start2(src, bl, type, 100, skill_lv, pc_checkskill(sd, SP_SOULENERGY), max(1000, skill_get_time(skill_id, skill_lv))));
}else{
clif_skill_nodamage(src, bl, skill_id, skill_lv, sc_start(src, bl, type, 100, skill_lv, skill_get_time(skill_id, skill_lv)));
}
clif_skill_nodamage(src, bl, skill_id, skill_lv, sc_start2(src, bl, type, 100, skill_lv, pc_checkskill(sd,SP_SOULENERGY), max(1000, skill_get_time(skill_id, skill_lv))));
break;
case SL_KAITE:
case SL_KAAHI: