Reverted back to l2j geoengine.
This commit is contained in:
		@@ -1,6 +0,0 @@
 | 
			
		||||
@echo off
 | 
			
		||||
title L2D geodata converter
 | 
			
		||||
 | 
			
		||||
java -Xmx512m -cp ./../libs/* org.l2jmobius.tools.geodataconverter.GeoDataConverter
 | 
			
		||||
 | 
			
		||||
pause
 | 
			
		||||
@@ -1,4 +0,0 @@
 | 
			
		||||
#! /bin/sh
 | 
			
		||||
 | 
			
		||||
java -Xmx512m -cp ../libs/*: org.l2jmobius.tools.geodataconverter.GeoDataConverter > log/stdout.log 2>&1
 | 
			
		||||
 | 
			
		||||
@@ -1,10 +1,6 @@
 | 
			
		||||
# =================================================================
 | 
			
		||||
#                             Geodata
 | 
			
		||||
# =================================================================
 | 
			
		||||
# Because of real-time performance we are using geodata files only in
 | 
			
		||||
# diagonal L2D format now (using filename e.g. 22_16.l2d).
 | 
			
		||||
# L2D geodata can be obtained by conversion of existing L2J or L2OFF geodata.
 | 
			
		||||
# Launch "GeoDataConverter.bat/sh" and follow instructions to start the conversion.
 | 
			
		||||
 | 
			
		||||
# Specifies the path to geodata files. For example, when using geodata files located
 | 
			
		||||
# at different folder/harddrive ("C:/Program Files/Lineage II/system/geodata/"), default: ./data/geodata/
 | 
			
		||||
@@ -16,16 +12,6 @@ GeoDataPath = ./data/geodata/
 | 
			
		||||
#  -1 - Old system: will synchronize Z only
 | 
			
		||||
CoordSynchronize = 2
 | 
			
		||||
 | 
			
		||||
# =================================================================
 | 
			
		||||
#                           Path checking
 | 
			
		||||
# =================================================================
 | 
			
		||||
 | 
			
		||||
# Line of sight start at X percent of the character height, default: 75
 | 
			
		||||
PartOfCharacterHeight = 75
 | 
			
		||||
 | 
			
		||||
# Maximum height of an obstacle, which can exceed the line of sight, default: 32
 | 
			
		||||
MaxObstacleHeight = 32
 | 
			
		||||
 | 
			
		||||
# =================================================================
 | 
			
		||||
#                           Path finding
 | 
			
		||||
# =================================================================
 | 
			
		||||
@@ -37,22 +23,18 @@ PathFinding = true
 | 
			
		||||
# Pathfinding array buffers configuration, default: 100x6;128x6;192x6;256x4;320x4;384x4;500x2
 | 
			
		||||
PathFindBuffers = 100x6;128x6;192x6;256x4;320x4;384x4;500x2
 | 
			
		||||
 | 
			
		||||
# Base path weight, when moving from one node to another on axis direction, default: 10
 | 
			
		||||
BaseWeight = 10
 | 
			
		||||
# Weight for nodes without obstacles far from walls
 | 
			
		||||
LowWeight = 0.5
 | 
			
		||||
 | 
			
		||||
# Path weight, when moving from one node to another on diagonal direction, default: BaseWeight * sqrt(2) = 14
 | 
			
		||||
DiagonalWeight = 14
 | 
			
		||||
# Weight for nodes near walls
 | 
			
		||||
MediumWeight = 2
 | 
			
		||||
 | 
			
		||||
# When movement flags of target node is blocked to any direction, multiply movement weight by this multiplier.
 | 
			
		||||
# This causes pathfinding algorithm to avoid path construction exactly near an obstacle, default: 10
 | 
			
		||||
ObstacleMultiplier = 10
 | 
			
		||||
# Weight for nodes with obstacles
 | 
			
		||||
HighWeight = 3
 | 
			
		||||
 | 
			
		||||
# Weight of the heuristic algorithm, which is giving estimated cost from node to target, default: 20
 | 
			
		||||
# For proper function must be higher than BaseWeight and/or DiagonalWeight.
 | 
			
		||||
HeuristicWeight = 20
 | 
			
		||||
 | 
			
		||||
# Maximum number of generated nodes per one path-finding process, default 3500
 | 
			
		||||
MaxIterations = 3500
 | 
			
		||||
# Weight for diagonal movement.
 | 
			
		||||
# Default: LowWeight * sqrt(2) 
 | 
			
		||||
DiagonalWeight = 0.707
 | 
			
		||||
 | 
			
		||||
# =================================================================
 | 
			
		||||
#                               Other
 | 
			
		||||
 
 | 
			
		||||
@@ -55,8 +55,9 @@ public class AdminGeodata implements IAdminCommandHandler
 | 
			
		||||
				final int worldX = activeChar.getX();
 | 
			
		||||
				final int worldY = activeChar.getY();
 | 
			
		||||
				final int worldZ = activeChar.getZ();
 | 
			
		||||
				final int geoX = GeoEngine.getGeoX(worldX);
 | 
			
		||||
				final int geoY = GeoEngine.getGeoY(worldY);
 | 
			
		||||
				final int geoX = GeoEngine.getInstance().getGeoX(worldX);
 | 
			
		||||
				final int geoY = GeoEngine.getInstance().getGeoY(worldY);
 | 
			
		||||
				
 | 
			
		||||
				if (GeoEngine.getInstance().hasGeoPos(geoX, geoY))
 | 
			
		||||
				{
 | 
			
		||||
					BuilderUtil.sendSysMessage(activeChar, "WorldX: " + worldX + ", WorldY: " + worldY + ", WorldZ: " + worldZ + ", GeoX: " + geoX + ", GeoY: " + geoY + ", GeoZ: " + GeoEngine.getInstance().getHeight(worldX, worldY, worldZ));
 | 
			
		||||
@@ -72,8 +73,9 @@ public class AdminGeodata implements IAdminCommandHandler
 | 
			
		||||
				final int worldX = activeChar.getX();
 | 
			
		||||
				final int worldY = activeChar.getY();
 | 
			
		||||
				final int worldZ = activeChar.getZ();
 | 
			
		||||
				final int geoX = GeoEngine.getGeoX(worldX);
 | 
			
		||||
				final int geoY = GeoEngine.getGeoY(worldY);
 | 
			
		||||
				final int geoX = GeoEngine.getInstance().getGeoX(worldX);
 | 
			
		||||
				final int geoY = GeoEngine.getInstance().getGeoY(worldY);
 | 
			
		||||
				
 | 
			
		||||
				if (GeoEngine.getInstance().hasGeoPos(geoX, geoY))
 | 
			
		||||
				{
 | 
			
		||||
					BuilderUtil.sendSysMessage(activeChar, "WorldX: " + worldX + ", WorldY: " + worldY + ", WorldZ: " + worldZ + ", GeoX: " + geoX + ", GeoY: " + geoY + ", GeoZ: " + GeoEngine.getInstance().getHeight(worldX, worldY, worldZ));
 | 
			
		||||
 
 | 
			
		||||
@@ -18,18 +18,18 @@ package handlers.admincommandhandlers;
 | 
			
		||||
 | 
			
		||||
import java.util.List;
 | 
			
		||||
 | 
			
		||||
import org.l2jmobius.gameserver.geoengine.GeoEngine;
 | 
			
		||||
import org.l2jmobius.Config;
 | 
			
		||||
import org.l2jmobius.gameserver.geoengine.GeoEnginePathfinding;
 | 
			
		||||
import org.l2jmobius.gameserver.geoengine.pathfinding.AbstractNodeLoc;
 | 
			
		||||
import org.l2jmobius.gameserver.handler.IAdminCommandHandler;
 | 
			
		||||
import org.l2jmobius.gameserver.model.Location;
 | 
			
		||||
import org.l2jmobius.gameserver.model.actor.instance.PlayerInstance;
 | 
			
		||||
import org.l2jmobius.gameserver.network.SystemMessageId;
 | 
			
		||||
import org.l2jmobius.gameserver.util.BuilderUtil;
 | 
			
		||||
 | 
			
		||||
public class AdminPathNode implements IAdminCommandHandler
 | 
			
		||||
{
 | 
			
		||||
	private static final String[] ADMIN_COMMANDS =
 | 
			
		||||
	{
 | 
			
		||||
		"admin_path_find",
 | 
			
		||||
		"admin_path_find"
 | 
			
		||||
	};
 | 
			
		||||
	
 | 
			
		||||
	@Override
 | 
			
		||||
@@ -37,30 +37,29 @@ public class AdminPathNode implements IAdminCommandHandler
 | 
			
		||||
	{
 | 
			
		||||
		if (command.equals("admin_path_find"))
 | 
			
		||||
		{
 | 
			
		||||
			if (!Config.PATHFINDING)
 | 
			
		||||
			{
 | 
			
		||||
				BuilderUtil.sendSysMessage(activeChar, "PathFinding is disabled.");
 | 
			
		||||
				return true;
 | 
			
		||||
			}
 | 
			
		||||
			if (activeChar.getTarget() != null)
 | 
			
		||||
			{
 | 
			
		||||
				final List<Location> path = GeoEngine.getInstance().findPath(activeChar.getX(), activeChar.getY(), (short) activeChar.getZ(), activeChar.getTarget().getX(), activeChar.getTarget().getY(), (short) activeChar.getTarget().getZ(), activeChar.getInstanceWorld());
 | 
			
		||||
				final List<AbstractNodeLoc> path = GeoEnginePathfinding.getInstance().findPath(activeChar.getX(), activeChar.getY(), (short) activeChar.getZ(), activeChar.getTarget().getX(), activeChar.getTarget().getY(), (short) activeChar.getTarget().getZ(), activeChar.getInstanceWorld());
 | 
			
		||||
				if (path == null)
 | 
			
		||||
				{
 | 
			
		||||
					BuilderUtil.sendSysMessage(activeChar, "No route found or pathfinding disabled.");
 | 
			
		||||
					BuilderUtil.sendSysMessage(activeChar, "No Route!");
 | 
			
		||||
					return true;
 | 
			
		||||
				}
 | 
			
		||||
				else
 | 
			
		||||
				for (AbstractNodeLoc a : path)
 | 
			
		||||
				{
 | 
			
		||||
					for (Location point : path)
 | 
			
		||||
					{
 | 
			
		||||
						BuilderUtil.sendSysMessage(activeChar, "x:" + point.getX() + " y:" + point.getY() + " z:" + point.getZ());
 | 
			
		||||
					}
 | 
			
		||||
					BuilderUtil.sendSysMessage(activeChar, "x:" + a.getX() + " y:" + a.getY() + " z:" + a.getZ());
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			else
 | 
			
		||||
			{
 | 
			
		||||
				activeChar.sendPacket(SystemMessageId.INVALID_TARGET);
 | 
			
		||||
				BuilderUtil.sendSysMessage(activeChar, "No Target!");
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		else
 | 
			
		||||
		{
 | 
			
		||||
			return false;
 | 
			
		||||
		}
 | 
			
		||||
		return true;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user