From b759efef25f50cc4cbe3b02e70fe01f10e2bf60a Mon Sep 17 00:00:00 2001 From: aleos Date: Fri, 13 Oct 2023 15:32:41 -0400 Subject: [PATCH] Properly remove movement restriction * Remove the movement restriction from Longing for Freedom when it becomes active with an Ensemble skill. --- db/pre-re/status.yml | 2 ++ src/map/status.cpp | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/db/pre-re/status.yml b/db/pre-re/status.yml index d71cb767c5..e28df0be96 100644 --- a/db/pre-re/status.yml +++ b/db/pre-re/status.yml @@ -1702,6 +1702,8 @@ Body: CalcFlags: Speed: true Aspd: true + States: + NoMove: true - Status: Hermode Icon: EFST_HERMODE DurationLookup: CG_HERMODE diff --git a/src/map/status.cpp b/src/map/status.cpp index d469e30759..a52f3d861d 100644 --- a/src/map/status.cpp +++ b/src/map/status.cpp @@ -5403,12 +5403,20 @@ void status_calc_state( struct block_list *bl, status_change *sc, std::bitsetgetSCE(SC_SPIDERWEB) && sc->getSCE(SC_SPIDERWEB)->val1) || (sc->getSCE(SC_HIDING) && (bl->type != BL_PC || (pc_checkskill(BL_CAST(BL_PC,bl),RG_TUNNELDRIVE) <= 0))) || (sc->getSCE(SC_DANCING) && sc->getSCE(SC_DANCING)->val4 && ( +#ifndef RENEWAL + !sc->getSCE(SC_LONGING) || +#endif (sc->getSCE(SC_DANCING)->val1&0xFFFF) == CG_MOONLIT || (sc->getSCE(SC_DANCING)->val1&0xFFFF) == CG_HERMODE )) || (sc->getSCE(SC_CRYSTALIZE) && bl->type != BL_MOB) ) sc->cant.move += (start ? 1 : ((sc->cant.move) ? -1 : 0)); +#ifndef RENEWAL + // Remove movement restriction when Longing for Freedom becomes active with an Ensemble skill. + if (start && sc->getSCE(SC_DANCING) && sc->getSCE(SC_DANCING)->val4 && sc->getSCE(SC_LONGING)) + sc->cant.move = 0; +#endif } // Can't use skills