From 00e418c45bb0a96117a4b6b83a8fe5a6f5b2c868 Mon Sep 17 00:00:00 2001 From: skotlex Date: Mon, 12 Jun 2006 21:34:38 +0000 Subject: - @heal no longer displays a healing animation. Fixes the client believing you couldn't be healed more than 32K. - Now you can use any skills (except encore/dancing ones) while under Longing for Freeding. - Now you can use any skills while under Marionette Control. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7111 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/atcommand.c | 8 ++++---- src/map/status.c | 9 ++++++++- 2 files changed, 12 insertions(+), 5 deletions(-) (limited to 'src/map') diff --git a/src/map/atcommand.c b/src/map/atcommand.c index 168f6cb62..9ac4af66b 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -2488,7 +2488,7 @@ int atcommand_heal( sscanf(message, "%d %d", &hp, &sp); if (hp == 0 && sp == 0) { - if (!status_heal(&sd->bl, sd->battle_status.max_hp, sd->battle_status.max_sp, 2)) + if (!status_percent_heal(&sd->bl, 100, 100)) clif_displaymessage(fd, msg_table[157]); // HP and SP are already with the good value. else clif_displaymessage(fd, msg_table[17]); // HP, SP recovered. @@ -2496,7 +2496,7 @@ int atcommand_heal( } if(hp > 0 && sp >= 0) { - if(!status_heal(&sd->bl, hp, sp, 2)) + if(!status_heal(&sd->bl, hp, sp, 0)) clif_displaymessage(fd, msg_table[157]); // HP and SP are already with the good value. else clif_displaymessage(fd, msg_table[17]); // HP, SP recovered. @@ -2513,7 +2513,7 @@ int atcommand_heal( //Opposing signs. if (hp) { if (hp > 0) - status_heal(&sd->bl, hp, 0, 2); + status_heal(&sd->bl, hp, 0, 0); else { status_damage(NULL, &sd->bl, -hp, 0, 0, 0); clif_damage(&sd->bl,&sd->bl, gettick(), 0, 0, -hp, 0 , 4, 0); @@ -2522,7 +2522,7 @@ int atcommand_heal( if (sp) { if (sp > 0) - status_heal(&sd->bl, 0, sp, 2); + status_heal(&sd->bl, 0, sp, 0); else status_damage(NULL, &sd->bl, 0, -sp, 0, 0); } diff --git a/src/map/status.c b/src/map/status.c index e1e35dcac..9dd77e727 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -870,7 +870,7 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, int (src->type != BL_PC || ((TBL_PC*)src)->skillitem != skill_num) ) { //Skills blocked through status changes... if (!flag && ( //Blocked only from using the skill (stuff like autospell may still go through - (sc->data[SC_MARIONETTE].timer != -1 && skill_num != CG_MARIONETTE) || +// (sc->data[SC_MARIONETTE].timer != -1 && skill_num != CG_MARIONETTE) || (sc->data[SC_MARIONETTE2].timer != -1 && skill_num == CG_MARIONETTE) || sc->data[SC_SILENCE].timer != -1 || sc->data[SC_STEELBODY].timer != -1 || @@ -888,6 +888,13 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, int if (flag!=2 && sc->data[SC_DANCING].timer != -1) { + if(sc->data[SC_LONGING].timer != -1) + { //Allow everything except dancing/re-dancing. [Skotlex] + if (skill_num == BD_ENCORE || + skill_get_inf2(skill_num)&(INF2_SONG_DANCE|INF2_ENSEMBLE_SKILL) + ) + return 0; + } else if (skill_num != BD_ADAPTATION && skill_num != CG_LONGINGFREEDOM && skill_num != BA_MUSICALSTRIKE && skill_num != DC_THROWARROW) return 0; -- cgit v1.2.3-70-g09d2