From 0d2cb05e7ded96c694bfe768c3c97e3c5b3615ec Mon Sep 17 00:00:00 2001 From: Matias Date: Tue, 25 Jun 2013 17:54:46 -0400 Subject: - Fixed a bug with Ensemble songs allowing the Buffed target to leave party and keep the buff. Also fixed a strange issue that'd allow non-party members to receive the buff under specific case --- src/map/party.c | 7 ++++++- src/map/status.c | 9 +++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/map/party.c b/src/map/party.c index 306c68e3e..154f84207 100644 --- a/src/map/party.c +++ b/src/map/party.c @@ -585,7 +585,12 @@ int party_member_withdraw(int party_id, int account_id, int char_id) if( p->instances ) instance->check_kick(sd); } - + if (sd && sd->sc.data[SC_DANCING]) { + status_change_end(&sd->bl, SC_DANCING, INVALID_TIMER); + status_change_end(&sd->bl, SC_DRUMBATTLE, INVALID_TIMER); + status_change_end(&sd->bl, SC_NIBELUNGEN, INVALID_TIMER); + status_change_end(&sd->bl, SC_SIEGFRIED, INVALID_TIMER); + } return 0; } diff --git a/src/map/status.c b/src/map/status.c index fdee5b954..1105e97c0 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -6576,6 +6576,15 @@ int status_change_start(struct block_list* bl,enum sc_type type,int rate,int val undead_flag = battle->check_undead(status->race,status->def_ele); //Check for inmunities / sc fails switch (type) { + case SC_DRUMBATTLE: + case SC_NIBELUNGEN: + case SC_INTOABYSS: + case SC_SIEGFRIED: + if( bl->type == BL_PC) { + struct map_session_data *sd = BL_CAST(BL_PC,bl); + if (!sd->status.party_id) return 0; + } + break; case SC_ANGRIFFS_MODUS: case SC_GOLDENE_FERSE: if ((type==SC_GOLDENE_FERSE && sc->data[SC_ANGRIFFS_MODUS]) -- cgit v1.2.3-70-g09d2