Forráskód Böngészése

Fixed a bug in GeoData#getSpawnHeight

It should get next lower z and return unmodified z when geodata is not available.
NosBit 10 éve
szülő
commit
7f5601e6a6
1 módosított fájl, 10 hozzáadás és 2 törlés
  1. 10 2
      L2J_Server/java/com/l2jserver/gameserver/GeoData.java

+ 10 - 2
L2J_Server/java/com/l2jserver/gameserver/GeoData.java

@@ -191,8 +191,16 @@ public class GeoData
 	 */
 	public int getSpawnHeight(int x, int y, int z)
 	{
-		int nearestZ = getNearestZ(getGeoX(x), getGeoY(y), z + 100);
-		return Math.abs(nearestZ - z) <= SPAWN_Z_DELTA_LIMIT ? nearestZ : z;
+		final int geoX = getGeoX(x);
+		final int geoY = getGeoY(y);
+		
+		if (!hasGeoPos(geoX, geoY))
+		{
+			return z;
+		}
+		
+		int nextLowerZ = getNextLowerZ(geoX, geoY, z + 100);
+		return Math.abs(nextLowerZ - z) <= SPAWN_Z_DELTA_LIMIT ? nextLowerZ : z;
 	}
 	
 	/**