Browse Source

- Updated the way SC_SILENCE works. From what I remember (from previous forum discussions) it: 1- Always blocks skills from being used. 2- Will only block a skill when the cast-bar ends IF the skill is targetted. If anyone wants to debate to get this changed, make an appropiate forum topic in the svn development area to discuss.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8083 54d463be-8e91-2dee-dedb-b68131a5f0ec
skotlex 19 years ago
parent
commit
689c7368e6
2 changed files with 7 additions and 3 deletions
  1. 5 0
      Changelog-Trunk.txt
  2. 2 3
      src/map/status.c

+ 5 - 0
Changelog-Trunk.txt

@@ -4,6 +4,11 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK.  ALL UNTESTED BUGFIXES/FEATURES GO
 IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 
 
 2006/08/02
 2006/08/02
+	* Updated the way SC_SILENCE works. From what I remember (from previous
+	  forum discussions) it: 1- Always blocks skills from being used. 2- Will
+	  only block a skill when the cast-bar ends IF the skill is targetted. If
+	  anyone wants to debate to get this changed, make an appropiate forum topic
+	  in the svn development area to discuss. [Skotlex]
 	* Added a check in the walking code when triggering skills.
 	* Added a check in the walking code when triggering skills.
 	  NPC_SELFDESTRUCTION will no longer cancel walking, it will instead resend
 	  NPC_SELFDESTRUCTION will no longer cancel walking, it will instead resend
 	  the walk packet, this effectively causes the mob to start walking
 	  the walk packet, this effectively causes the mob to start walking

+ 2 - 3
src/map/status.c

@@ -964,9 +964,8 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, int
 			))
 			))
 				return 0;
 				return 0;
 
 
-			if (flag != 2 && ( //Those that block begin/end casting.
-				sc->data[SC_SILENCE].timer != -1
-			))
+			//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;
 				return 0;
 
 
 			//Skill blocking.
 			//Skill blocking.