Cleanup for some Soul Reaper skills (#6700)

This commit is contained in:
Lemongrass3110 2022-03-16 21:54:12 +01:00 committed by GitHub
parent 0449f39015
commit 79d978e010
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 18 additions and 16 deletions

View File

@ -6975,7 +6975,7 @@ Body:
NoDispell: true NoDispell: true
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
End: Fail:
Spirit: true Spirit: true
Soulgolem: true Soulgolem: true
Soulfalcon: true Soulfalcon: true
@ -6990,7 +6990,7 @@ Body:
NoDispell: true NoDispell: true
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
End: Fail:
Spirit: true Spirit: true
Soulgolem: true Soulgolem: true
Soulshadow: true Soulshadow: true
@ -7006,7 +7006,7 @@ Body:
NoDispell: true NoDispell: true
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
End: Fail:
Spirit: true Spirit: true
Soulgolem: true Soulgolem: true
Soulshadow: true Soulshadow: true
@ -7022,7 +7022,7 @@ Body:
NoDispell: true NoDispell: true
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
End: Fail:
Spirit: true Spirit: true
Soulshadow: true Soulshadow: true
Soulfalcon: true Soulfalcon: true

View File

@ -9990,20 +9990,13 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
case SP_SOULSHADOW: case SP_SOULSHADOW:
case SP_SOULFALCON: case SP_SOULFALCON:
case SP_SOULFAIRY: case SP_SOULFAIRY:
if (sd && !dstsd) { // Only player's can be soul linked. if( sc_start( src, bl, type, 100, skill_lv, skill_get_time( skill_id, skill_lv ) ) ){
clif_skill_fail(sd, skill_id, USESKILL_FAIL,0); clif_skill_nodamage( src, bl, skill_id, skill_lv, 1 );
break; }else{
} if( sd ){
if (tsc) { clif_skill_fail( sd, skill_id, USESKILL_FAIL, 0 );
if (tsc->data[skill_get_sc(skill_id)]) { // Allow refreshing an already active soul link.
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;
} else if (tsc->data[SC_SPIRIT] || tsc->data[SC_SOULGOLEM] || tsc->data[SC_SOULSHADOW] || tsc->data[SC_SOULFALCON] || tsc->data[SC_SOULFAIRY]) { // Soul links from Soul Linker and Soul Reaper skills don't stack.
clif_skill_fail(sd, skill_id, USESKILL_FAIL, 0);
break;
} }
} }
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; break;
case SP_SOULREVOLVE: case SP_SOULREVOLVE:

View File

@ -9544,6 +9544,15 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
return 0; return 0;
} }
break; break;
case SC_SOULGOLEM:
case SC_SOULSHADOW:
case SC_SOULFALCON:
case SC_SOULFAIRY:
if( sd == nullptr ){
// Status change is only applicable for players
return 0;
}
break;
} }
// Before overlapping fail, one must check for status cured. // Before overlapping fail, one must check for status cured.