Переглянути джерело

Modified battle_range to check if sd is null first

git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@445 54d463be-8e91-2dee-dedb-b68131a5f0ec
celest 20 роки тому
батько
коміт
f54b34d14c
2 змінених файлів з 9 додано та 4 видалено
  1. 1 0
      Changelog.txt
  2. 8 4
      src/map/battle.c

+ 1 - 0
Changelog.txt

@@ -4,6 +4,7 @@ Date	Added
 	* Fixed a battle_range crash [MouseJstr]
         * Updated Stone Curse, Soul Drain, Auto Berserk [celest]
         * Added a fix for MVP exp being multiplied twice by Gengar
+        * Modified battle_range to check for sd first [celest]
 
 12/2
 	* Fixed double login feature, resets online users when map connects to char [Wizputer]

+ 8 - 4
src/map/battle.c

@@ -4949,7 +4949,7 @@ int battle_check_range(struct block_list *src,struct block_list *bl,int range)
 	int dx,dy;
 	struct walkpath_data wpd;
 	int arange;
-
+	
 	nullpo_retr(0, src);
 	nullpo_retr(0, bl);
 
@@ -4962,10 +4962,14 @@ int battle_check_range(struct block_list *src,struct block_list *bl,int range)
 
 	if( range>0 && range < arange )	{// 遠すぎる
 // be lenient if the skill was cast before we have moved to the correct position [Celest]
-		if (src->type != BL_PC ||
-			(bl->type == BL_PC && ((struct map_session_data *)bl)->walktimer != -1 &&
-			!((arange-=battle_config.skill_range_leniency)<=range)))
+		if (src->type != BL_PC)
 			return 0;
+		else if (src->type == BL_PC) {
+			struct map_session_data *sd;
+			nullpo_retr(0, (sd=(struct map_session_data *)bl));
+			if (sd->walktimer != -1 && !((arange-=battle_config.skill_range_leniency)<=range))
+				return 0;
+		}
 	}
 
 	if( arange<2 )	// 同じマスか隣接