Pārlūkot izejas kodu

- Fixed a bug in unit_can_reach_bl which breaks path seeking when the target is near obstacles.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6950 54d463be-8e91-2dee-dedb-b68131a5f0ec
skotlex 19 gadi atpakaļ
vecāks
revīzija
d75974f962
2 mainītis faili ar 5 papildinājumiem un 3 dzēšanām
  1. 2 0
      Changelog-Trunk.txt
  2. 3 3
      src/map/unit.c

+ 2 - 0
Changelog-Trunk.txt

@@ -4,6 +4,8 @@ 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/06/02
+	* Fixed a bug in unit_can_reach_bl which breaks path seeking when the
+	  target is near obstacles. [Skotlex]
 	* Updated offensive use of Sanctuary to function like on the official servers [MasterOfMuppets]
 	* Changed the interval between waterballs from 150 to 250 milliseconds [MasterOfMuppets]
 	* Corrected clif_parse_takeitem to ALWAYS return a NAK packet when it

+ 3 - 3
src/map/unit.c

@@ -1080,8 +1080,8 @@ int unit_attack(struct block_list *src,int target_id,int type)
 		return 0;
 	}
 
-	if(!(src->type == BL_MOB && ((TBL_MOB *)src)->state.killer) && (battle_check_target(src,target,BCT_ENEMY)<=0 ||
-		!status_check_skilluse(src, target, 0, 0))
+	if(battle_check_target(src,target,BCT_ENEMY)<=0 ||
+		!status_check_skilluse(src, target, 0, 0)
 	) {
 		unit_unattackable(src);
 		return 1;
@@ -1156,7 +1156,7 @@ int unit_can_reach_bl(struct block_list *bl,struct block_list *tbl, int range, i
 	dx=(dx>0)?1:((dx<0)?-1:0);
 	dy=(dy>0)?1:((dy<0)?-1:0);
 	
-	if (map_getcell(tbl->m,tbl->x+dx,tbl->y+dy,CELL_CHKNOREACH))
+	if (map_getcell(tbl->m,tbl->x-dx,tbl->y-dy,CELL_CHKNOREACH))
 	{	//Look for a suitable cell to place in.
 		for(i=0;i<9 && map_getcell(tbl->m,tbl->x-dirx[i],tbl->y-diry[i],CELL_CHKNOREACH);i++);
 		if (i==9) return 0; //No valid cells.