Parcourir la 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 il y a 19 ans
Parent
commit
689c7368e6
2 fichiers modifiés avec 7 ajouts et 3 suppressions
  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.
 
 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.
 	  NPC_SELFDESTRUCTION will no longer cancel walking, it will instead resend
 	  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;
 
-			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;
 
 			//Skill blocking.