From 0d13237a47e0421b187a26995205c4ce76e86d9d Mon Sep 17 00:00:00 2001 From: skotlex Date: Mon, 9 Oct 2006 18:55:43 +0000 Subject: - sc_cast_cancel is now a type 4 setting. - Fixed SC_NOCHAT printing the "skills are now available" message twice on natural expiration. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8953 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/battle.c | 2 +- src/map/status.c | 16 +++++++--------- 2 files changed, 8 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/map/battle.c b/src/map/battle.c index 16187cc46..7b83f5e20 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -4191,7 +4191,7 @@ void battle_set_defaults() { battle_config.allow_es_magic_pc = 0; battle_config.skill_caster_check = 1; - battle_config.sc_castcancel = 0; + battle_config.sc_castcancel = BL_NUL; battle_config.pc_sc_def_rate = 100; battle_config.mob_sc_def_rate = 100; battle_config.pc_luk_sc_def = 300; diff --git a/src/map/status.c b/src/map/status.c index b5dc06b07..d0c8310e8 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -968,8 +968,9 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, int if(sc && sc->count) { - if(sc->opt1 >0 && (battle_config.sc_castcancel || flag != 1)) - //When sc do not cancel casting, the spell should come out. + if(sc->opt1 >0 && flag != 1) + //When sc do not cancel casting, the spell should come out, and when it does, we can never have + //a flag == 1 && sc->opt1 case, since cancelling should had been stopped before. return 0; if ( @@ -5649,7 +5650,7 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val unit_stop_attack(bl); skill_stop_dancing(bl); // Cancel cast when get status [LuzZza] - if (battle_config.sc_castcancel) + if (battle_config.sc_castcancel&bl->type) unit_skillcastcancel(bl, 0); case SC_STOP: case SC_CONFUSION: @@ -5665,7 +5666,7 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val unit_stop_attack(bl); break; case SC_SILENCE: - if (battle_config.sc_castcancel) + if (battle_config.sc_castcancel&bl->type) unit_skillcastcancel(bl, 0); break; } @@ -6053,11 +6054,8 @@ int status_change_end( struct block_list* bl , int type,int tid ) status_change_end(bl,SC_LONGING,-1); break; case SC_NOCHAT: - if (sd) { - if (sd->status.manner < 0 && tid != -1) - sd->status.manner = 0; - clif_updatestatus(sd,SP_MANNER); - } + if (sd && sd->status.manner < 0 && tid != -1) + sd->status.manner = 0; break; case SC_SPLASHER: { -- cgit v1.2.3-70-g09d2