summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-08-03 01:50:40 +0000
committerskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-08-03 01:50:40 +0000
commit4a8d8fb69eefc1fdc436ea1943c1d6e4f066c59c (patch)
tree9b11749ec2345d8f13887cb3afb2d348ec590290 /src
parent9baa8fbabf43dc119e44394532505a8f0f277817 (diff)
downloadhercules-4a8d8fb69eefc1fdc436ea1943c1d6e4f066c59c.tar.gz
hercules-4a8d8fb69eefc1fdc436ea1943c1d6e4f066c59c.tar.bz2
hercules-4a8d8fb69eefc1fdc436ea1943c1d6e4f066c59c.tar.xz
hercules-4a8d8fb69eefc1fdc436ea1943c1d6e4f066c59c.zip
- Modified yet again SC_SILENCE after iRO tests from Entwined on IRC. Silence now ONLY blocks skills from being used, it will not stop on-going casts.
- Updated status_cast_cancel to also include silence (so the cast bar is cancelled if you are silenced during it) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8086 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src')
-rw-r--r--src/map/status.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/map/status.c b/src/map/status.c
index b334275e8..3c75ee226 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -957,6 +957,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_SILENCE].timer != -1 ||
(sc->data[SC_MARIONETTE].timer != -1 && skill_num != CG_MARIONETTE) ||
(sc->data[SC_MARIONETTE2].timer != -1 && skill_num == CG_MARIONETTE) ||
sc->data[SC_STEELBODY].timer != -1 ||
@@ -964,10 +965,6 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, int
))
return 0;
- //Silence is a special, but weird, case. It prevents skill begin, and skill end only when there's a target. [Skotlex]
- if(sc->data[SC_SILENCE].timer != -1 && flag <= (target?1:0))
- return 0;
-
//Skill blocking.
if (
(sc->data[SC_VOLCANO].timer != -1 && skill_num == WZ_ICEWALL) ||
@@ -5472,6 +5469,10 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val
case SC_CHASEWALK:
unit_stop_attack(bl);
break;
+ case SC_SILENCE:
+ if (battle_config.sc_castcancel)
+ unit_skillcastcancel(bl, 0);
+ break;
}
if (vd && pcdb_checkid(vd->class_)) //Only for players sprites, client crashes if they receive this for a mob o.O [Skotlex]