瀏覽代碼

- Reduced the check area of hermod to 3x3, you now have to literally stand next to a warp for it to work.
- Corrected the Fog of Wall check so that it lasts 2x when it is placed on TOP of a suiton/deluge, not when the caster is on top of them.
- Updated status_check_skilluse so that when the caster has a disabling status change (stun/petrify/etc) it will block the skill in all cases EXCEPT on cast-end when the skill is ground-targetted.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9185 54d463be-8e91-2dee-dedb-b68131a5f0ec

skotlex 18 年之前
父節點
當前提交
9dd5eb5674
共有 5 個文件被更改,包括 19 次插入8 次删除
  1. 5 0
      Changelog-Trunk.txt
  2. 2 0
      db/Changelog.txt
  3. 1 1
      db/skill_db.txt
  4. 4 3
      src/map/skill.c
  5. 7 4
      src/map/status.c

+ 5 - 0
Changelog-Trunk.txt

@@ -5,6 +5,11 @@ IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 
 2006/11/09
 =======
+	* Corrected the Fog of Wall check so that it lasts 2x when it is placed on
+	  TOP of a suiton/deluge, not when the caster is on top of them. [Skotlex]
+	* Updated status_check_skilluse so that when the caster has a disabling
+	  status change (stun/petrify/etc) it will block the skill in all cases
+	  EXCEPT on cast-end when the skill is ground-targetted. [Skotlex]
 	* Fixed Health Conversion skill formula bug. [Lupus]
 2006/11/08
 	* Fixed Desperado's hit-rate, now it behaves as it should. [Skotlex]

+ 2 - 0
db/Changelog.txt

@@ -20,6 +20,8 @@
 
 ========================
 11/09
+	* Reduced the check area of hermod to 3x3, you now have to literally stand
+	  next to a warp for it to work. [Skotlex]
 	* Official Weight and Max SP values for TK/SG/SL/GS/NJ [Playtester]
 	- why were ours so far off the official ones?
 11/08

+ 1 - 1
db/skill_db.txt

@@ -511,7 +511,7 @@
 485,-2,6,1,-1,0,0,10,1,no,0,0,0,weapon,0	//WS_CARTTERMINATION#Cart Termination#
 486,0,6,4,0,1,0,5,1,no,0,0,0,weapon,0	//WS_OVERTHRUSTMAX#Maximum Power Thrust#
 487,0,6,4,0,1,0,5,1,no,0,0,0,none,0	//CG_LONGINGFREEDOM#Longing for Freedom#
-488,0,6,4,0,1,2,5,1,no,0,64,0,misc,0	//CG_HERMODE#Wand of Hermod#
+488,0,6,4,0,1,1,5,1,no,0,64,0,misc,0	//CG_HERMODE#Wand of Hermod#
 489,9,6,1,0,1,0,5,1,no,0,0,0,misc,0	//CG_TAROTCARD#Tarot Card of Fate#
 490,9,8,1,0,0,0,10,1:2:3:4:5:6:7:8:9:10,yes,0,0,0,misc,0	//CR_ACIDDEMONSTRATION#Acid Demonstration#
 491,1,6,2,0,1,0,2,1,no,0,0,0,none,0	//CR_CULTIVATION#Cultivation#

+ 4 - 3
src/map/skill.c

@@ -6661,9 +6661,10 @@ struct skill_unit_group *skill_unitsetting (struct block_list *src, int skillid,
 		val2 = skilllv*10;	//Status ailment resistance
 		break;
 	case PF_FOGWALL:
-		if(sc && (
-			sc->data[SC_DELUGE].timer!=-1 || sc->data[SC_SUITON].timer != -1
-		)) limit *= 2;
+		//When casted on top of Deluge/Suiton: Double duration.
+		if (map_find_skill_unit_oncell(src,x,y,SA_DELUGE,NULL) ||
+		  	map_find_skill_unit_oncell(src,x,y,NJ_SUITON,NULL))
+			limit *= 2;
 		break;
 	case RG_GRAFFITI:			/* Graffiti */
 		count=1;	// Leave this at 1 [Valaris]

+ 7 - 4
src/map/status.c

@@ -963,10 +963,13 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, int
 	
 	if(sc && sc->count)
 	{
-		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(sc->opt1 >0)
+		{	//Stuned/Frozen/etc
+			if (flag != 1) //Can't cast, casted stuff can't damage. 
+				return 0;
+			if (!skill_get_inf(skill_num)&INF_GROUND_SKILL)
+				return 0; //Targetted spells can't come off.
+		}
 
 		if (
 			(sc->data[SC_TRICKDEAD].timer != -1 && skill_num != NV_TRICKDEAD)