Fixed some more SC_STONEWAIT issues (#7212)

Fixed PR_STRECOVERY not clearing SC_STONEWAIT
Fixed that ending SC_STONEWAIT manually still triggered SC_STONE

Thanks to @Singe-Horizontal and @aleos89
This commit is contained in:
Lemongrass3110 2022-08-28 17:02:37 +02:00 committed by GitHub
parent c751ca6b74
commit 5f4fd5c98b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 5 deletions

View File

@ -8803,15 +8803,16 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui
clif_skill_nodamage(src,bl,skill_id,skill_lv,0);
break;
}
if (tsc && tsc->opt1) {
if (tsc) {
status_change_end(bl, SC_FREEZE);
status_change_end(bl, SC_STONEWAIT);
status_change_end(bl, SC_STONE);
status_change_end(bl, SC_SLEEP);
status_change_end(bl, SC_STUN);
status_change_end(bl, SC_WHITEIMPRISON);
status_change_end(bl, SC_STASIS);
status_change_end(bl, SC_NETHERWORLD);
}
status_change_end(bl, SC_STASIS);
status_change_end(bl, SC_NETHERWORLD);
if(battle_check_undead(tstatus->race,tstatus->def_ele))
skill_addtimerskill(src, tick+1000, bl->id, 0, 0, skill_id, skill_lv, 100, flag);
clif_skill_nodamage(src,bl,skill_id,skill_lv,1);

View File

@ -13434,8 +13434,8 @@ int status_change_end(struct block_list* bl, enum sc_type type, int tid)
if(opt_flag[SCF_ONTOUCH] && sd && !sd->state.warping && map_getcell(bl->m,bl->x,bl->y,CELL_CHKNPC))
npc_touch_area_allnpc(sd,bl->m,bl->x,bl->y); // Trigger on-touch event.
// Needed to be here to make sure OPT1_STONEWAIT has been cleared from the target
if (type == SC_STONEWAIT)
// Needed to be here to make sure OPT1_STONEWAIT has been cleared from the target (only on natural expiration of the stone wait timer)
if (type == SC_STONEWAIT && tid != INVALID_TIMER)
status_change_start(bl, bl, SC_STONE, 100, sce->val1, sce->val2, 0, 0, sce->val3, SCSTART_NOAVOID);
ers_free(sc_data_ers, sce);