Browse Source

- Added a skill_unit_db entry for NJ_HYOUSYOURAKU, thanks to Eus for the data.
- Added the dummy intravision case for the changeoption packet 0x229
- Corrected Fog of Wall so that all targetted offensive skills (not only those who do damage) will fail on cast-end 75% of the time.


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

skotlex 19 years ago
parent
commit
5b8eac3bc4
6 changed files with 28 additions and 17 deletions
  1. 4 0
      Changelog-Trunk.txt
  2. 2 0
      db/Changelog.txt
  3. 1 1
      db/skill_db.txt
  4. 1 0
      db/skill_unit_db.txt
  5. 8 5
      src/map/clif.c
  6. 12 11
      src/map/skill.c

+ 4 - 0
Changelog-Trunk.txt

@@ -4,6 +4,10 @@ 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/07/20
 2006/07/20
+	* Added the dummy intravision case for the changeoption packet 0x229
+	  [Skotlex]
+	* Corrected Fog of Wall so that all targetted offensive skills (not only
+	  those who do damage) will fail on cast-end 75% of the time. [Skotlex]
 	* corrected @homlevel up and one entry in the homun exp table as reported
 	* corrected @homlevel up and one entry in the homun exp table as reported
 	  on the forums by Albator. [Skotlex]
 	  on the forums by Albator. [Skotlex]
 	* Added the SQL fix to Homunculus skill learning/saving bug [DracoRPG]
 	* Added the SQL fix to Homunculus skill learning/saving bug [DracoRPG]

+ 2 - 0
db/Changelog.txt

@@ -25,6 +25,8 @@
 
 
 =========================
 =========================
 07/20
 07/20
+	* Added a skill_unit_db entry for NJ_HYOUSYOURAKU, thanks to Eus for the
+	  data. [Skotlex]
 	* Updated Speed/Delays of Niflheim mobs [Playtester]
 	* Updated Speed/Delays of Niflheim mobs [Playtester]
 	* Updated Speed/Delays of Umbala mobs [Playtester]
 	* Updated Speed/Delays of Umbala mobs [Playtester]
 	* Updated Speed/Delays of Kunlun mobs [Playtester]
 	* Updated Speed/Delays of Kunlun mobs [Playtester]

+ 1 - 1
db/skill_db.txt

@@ -560,7 +560,7 @@
 536,9,8,1,3,2,2,5,3,no,0,0,0,magic,0	//NJ_BAKUENRYU#NJ_BAKUENRYU#
 536,9,8,1,3,2,2,5,3,no,0,0,0,magic,0	//NJ_BAKUENRYU#NJ_BAKUENRYU#
 537,9,8,1,1,0,0,10,1:2:3:4:5:6:7:7:7:7,no,0,0,0,magic,0	//NJ_HYOUSENSOU#NJ_HYOUSENSOU#
 537,9,8,1,1,0,0,10,1:2:3:4:5:6:7:7:7:7,no,0,0,0,magic,0	//NJ_HYOUSENSOU#NJ_HYOUSENSOU#
 538,9,6,2,0,1,0,10,1,no,0,0,0,magic,0	//NJ_SUITON#NJ_SUITON#
 538,9,6,2,0,1,0,10,1,no,0,0,0,magic,0	//NJ_SUITON#NJ_SUITON#
-539,0,6,4,1,0,3,5,1,no,0,0,0,magic,0	//NJ_HYOUSYOURAKU#NJ_HYOUSYOURAKU#
+539,0,6,4,1,0,0,5,1,no,0,0,0,magic,0	//NJ_HYOUSYOURAKU#NJ_HYOUSYOURAKU#
 540,9,8,1,4,0,0,10,1:2:2:3:3:4:4:5:5:6,no,0,0,0,magic,0	//NJ_HUUJIN#NJ_HUUJIN#
 540,9,8,1,4,0,0,10,1:2:2:3:3:4:4:5:5:6,no,0,0,0,magic,0	//NJ_HUUJIN#NJ_HUUJIN#
 541,0,6,4,0,1,0,5,1,no,0,0,0,magic,0	//NJ_RAIGEKISAI#NJ_RAIGEKISAI#
 541,0,6,4,0,1,0,5,1,no,0,0,0,magic,0	//NJ_RAIGEKISAI#NJ_RAIGEKISAI#
 542,9,8,1,-1,0,0,5,1,no,0,0,0,magic,0	//NJ_KAMAITACHI#NJ_KAMAITACHI#
 542,9,8,1,-1,0,0,5,1,no,0,0,0,magic,0	//NJ_KAMAITACHI#NJ_KAMAITACHI#

+ 1 - 0
db/skill_unit_db.txt

@@ -93,3 +93,4 @@
 538,0xbb,,1:1:1:2:2:2:3:3:3:4,0,-1,all,0x010	//NJ_SUITON
 538,0xbb,,1:1:1:2:2:2:3:3:3:4,0,-1,all,0x010	//NJ_SUITON
 516,0xbc,    ,  0, 3, 100,enemy, 0x000	//GS_DESPERADO
 516,0xbc,    ,  0, 3, 100,enemy, 0x000	//GS_DESPERADO
 521,0xc2,    ,  0, 1,1000,enemy, 0x006	//GS_GROUNDDRIFT
 521,0xc2,    ,  0, 1,1000,enemy, 0x006	//GS_GROUNDDRIFT
+539,0x86,    ,  0, 3,1000,enemy, 0x008	//NJ_HYOUSYOURAKU

+ 8 - 5
src/map/clif.c

@@ -342,17 +342,20 @@ int clif_send_sub(struct block_list *bl, va_list ap)
 					{	//option‚Ì�C�³
 					{	//option‚Ì�C�³
 						switch(((unsigned short*)buf)[0])
 						switch(((unsigned short*)buf)[0])
 						{
 						{
-							case 0x119:
-								WFIFOW(sd->fd,10) &= ~(OPTION_HIDE|OPTION_CLOAK);
-								break;
 #if PACKETVER > 6
 #if PACKETVER > 6
-							case 0x22c:
-							case 0x22b:
+							case 0x229:
+								WFIFOL(sd->fd,10) &= ~(OPTION_HIDE|OPTION_CLOAK);
+								break;
 							case 0x22a:
 							case 0x22a:
+							case 0x22b:
+							case 0x22c:
 								WFIFOL(sd->fd,12) &=~(OPTION_HIDE|OPTION_CLOAK);
 								WFIFOL(sd->fd,12) &=~(OPTION_HIDE|OPTION_CLOAK);
 								break;
 								break;
 #endif
 #endif
 #if PACKETVER > 3
 #if PACKETVER > 3
+							case 0x119:
+								WFIFOW(sd->fd,10) &= ~(OPTION_HIDE|OPTION_CLOAK);
+								break;
 							case 0x1d8:
 							case 0x1d8:
 							case 0x1d9:
 							case 0x1d9:
 							case 0x1da:
 							case 0x1da:

+ 12 - 11
src/map/skill.c

@@ -2623,15 +2623,10 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int
 	if (status_isdead(bl))
 	if (status_isdead(bl))
 		return 1;
 		return 1;
 
 
-	if (skillid && skill_get_type(skillid) == BF_MAGIC)
-	{
-		sc = status_get_sc(bl);
-		if (status_isimmune(bl) || (
-			sc && sc->count && sc->data[SC_FOGWALL].timer != -1 && rand()%100 < 75)
-		) { //GTB/Fogwall makes all targetted skills silently fail.
-			if (sd) clif_skill_fail(sd,skillid,0,0);
-			return 1;
-		}
+	if (skillid && skill_get_type(skillid) == BF_MAGIC && status_isimmune(bl))
+	{	//GTB makes all targetted magic fail silently.
+		if (sd) clif_skill_fail(sd,skillid,0,0);
+		return 1;
 	}
 	}
 	
 	
 	sc = status_get_sc(src);	
 	sc = status_get_sc(src);	
@@ -3202,7 +3197,6 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int
 		break;
 		break;
 	case NJ_KOUENKA:
 	case NJ_KOUENKA:
 	case NJ_HYOUSENSOU:
 	case NJ_HYOUSENSOU:
-	case NJ_HYOUSYOURAKU:
 	case NJ_HUUJIN:
 	case NJ_HUUJIN:
 		skill_attack(BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag);
 		skill_attack(BF_MAGIC,src,src,bl,skillid,skilllv,tick,flag);
 		break;
 		break;
@@ -3221,7 +3215,6 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int
 	//case NJ_KIRIKAGE:
 	//case NJ_KIRIKAGE:
 	//case NJ_KOUENKA:
 	//case NJ_KOUENKA:
 	//case NJ_HYOUSENSOU:
 	//case NJ_HYOUSENSOU:
-	//case NJ_HYOUSYOURAKU:
 	//case NJ_HUUJIN:
 	//case NJ_HUUJIN:
 	//case NJ_KAMAITACHI:
 	//case NJ_KAMAITACHI:
 	case NJ_ISSEN:
 	case NJ_ISSEN:
@@ -5826,6 +5819,14 @@ int skill_castend_id (int tid, unsigned int tick, int id, int data)
 
 
 			if (inf && battle_check_target(src, target, inf) <= 0)
 			if (inf && battle_check_target(src, target, inf) <= 0)
 				break;
 				break;
+
+			if(inf&BCT_ENEMY && (sc = status_get_sc(target)) &&
+				sc->count && sc->data[SC_FOGWALL].timer != -1 &&
+				rand()%100 < 75)
+		  	{	//Fogwall makes all offensive-type targetted skills fail at 75%
+				if (sd) clif_skill_fail(sd,ud->skillid,0,0);
+				break;
+			}
 		}
 		}
 		
 		
 		//Avoid doing double checks for instant-cast skills.
 		//Avoid doing double checks for instant-cast skills.