ошибка geodata - Страница 2 - Форум администраторов игровых серверов
Форум администраторов игровых серверов StormWall - Защита от DDos атак
Регистрация Мнения Справка Пользователи Календарь Все разделы прочитаны
Вернуться   Форум администраторов игровых серверов > MMO > Lineage II > Работа с геодатой

Работа с геодатой Разработка и правка Геодаты для ява серверов.

Ответ
Опции темы
Непрочитано 23.06.2012, 20:31   #11
Аватар для DiagoD

По умолчанию Re: ошибка geodata

Цитата:
Сообщение от iqman Посмотреть сообщение
Ну не надо из меня дурака делать и закрывать глаза на вторую часть кода которую я выставил, конструктор пат-фаинд инициализирует массив, так что извини доктор, не то лекарство прописал.
дооо...100%...код смотри внимательней...

когда создается new PathFind(...) на 73 строке есть вот такая шняжка...
path = findPath();, на 99 строке идет вызов метода handleNode(...), далее на 182 строке идет вызов метода getNeighbour(...) в этом методе на строке 347 идет вызов метода addDebugItem(...) собственно внутри которого и вылазит НПЕ...
Так вот, открываем свои глаза и мы видим, что весь этот процесс происходит еще до того как на 76 строке вызывается метод debugPath(...); в которм на 396 строке идет инициализация...
так, что дурака я из тебя не делаю...

Добавлено через 1 минуту
Перед тем как прописать лекарство, доктор не поленился и сделал все необходимые анализы и учел все симптомы

Добавлено через 8 минут
P.S. Предыдущий ответ я начал писать еще до того как ты дописал вторую часть кода, правда это все равно ничего не меняет)
__________________
open-team.ru - Freya, HighFive...

Последний раз редактировалось DiagoD; 23.06.2012 в 20:40. Причина: Добавлено сообщение
DiagoD вне форума Отправить сообщение для DiagoD с помощью ICQ Отправить сообщение для DiagoD с помощью Skype™ Ответить с цитированием
Непрочитано 23.06.2012, 20:48   #12
Изгнанные

По умолчанию Re: ошибка geodata

Так доктор продолжаем.

По логу я и так это вижу что куда ведет.

Цитата:
Суть проблемы такова гео грузится норм.Но когда начинаешь бегать в игре чар останавливается и приходится начинать движения на стрелочках.
Сейчас смотрим еще глубже:

Код:
public boolean moveToLocation(int x_dest, int y_dest, int z_dest, int offset, boolean pathfinding)
Код:
if(buildPathTo(x_dest, y_dest, z_dest, offset, pathfinding, false))
Код:
ArrayList<ArrayList<Location>> targets = GeoMove.findMovePath(getX(), getY(), getZ(), dest.clone(), this, true, ref);
Код:
	public static ArrayList<ArrayList<Location>> findMovePath(int x, int y, int z, Location target, L2Object obj, boolean showTrace, int refIndex)
	{
		return getNodePath(findPath(x, y, z, target, obj, showTrace, refIndex), refIndex);
	}
Код:
public static ArrayList<Location> findPath(int x, int y, int z, Location target, L2Object obj, boolean showTrace, int refIndex)
Код:
PathFind n = new PathFind(x, y, z, target.x, target.y, target.z, obj, refIndex);
Собственно и конструктор, сейчас обьясни мне это как он до движение не инициализирует конструктор ПФ?

p.s. Это путь от момента когда игрок решил двинутся до инициализации ПФ.
L2scripts-Guard вне форума Отправить сообщение для L2scripts-Guard с помощью Skype™ Ответить с цитированием
Непрочитано 23.06.2012, 20:52   #13
Аватар для DiagoD

По умолчанию Re: ошибка geodata

А теперь одень очки и посмотри:

Код:
	public PathFind(int x, int y, int z, int destX, int destY, int destZ, L2Object obj, int refIndex)
	{
		this.refIndex = refIndex;

		Location startpoint = Config.PATHFIND_BOOST == 0 ? new Location(x, y, z) : GeoEngine.moveCheckWithCollision(x, y, z, destX, destY, true, refIndex);
		Location native_endpoint = new Location(destX, destY, destZ);
		Location endpoint = Config.PATHFIND_BOOST != 2 || Math.abs(destZ - z) > 200 ? native_endpoint.clone() : GeoEngine.moveCheckBackwardWithCollision(destX, destY, destZ, startpoint.x, startpoint.y, true, refIndex);

		startpoint.world2geo();
		native_endpoint.world2geo();
		endpoint.world2geo();

		startpoint.z = GeoEngine.NgetHeight(startpoint.x, startpoint.y, startpoint.z, refIndex);
		endpoint.z = GeoEngine.NgetHeight(endpoint.x, endpoint.y, endpoint.z, refIndex);

		int xdiff = Math.abs(endpoint.x - startpoint.x);
		int ydiff = Math.abs(endpoint.y - startpoint.y);

		if(xdiff == 0 && ydiff == 0)
		{
			if(Math.abs(endpoint.z - startpoint.z) < 32)
			{
				path = new ArrayList<Location>();
				path.add(0, startpoint);
			}
			return;
		}

		if((buff = PathFindBuffers.alloc(64 + 2 * Math.max(xdiff, ydiff), obj.isPlayable(), startpoint, endpoint, native_endpoint)) != null)
		{
			if(Config.PATHFIND_DEBUG && obj.isPlayer() && ((L2Player) obj).isGM())
			{
				if(debugItems != null)
				{
					for(L2ItemInstance item : debugItems)
						item.deleteMe();
					debugItems.clear();
				}
				custom_debug = true;
			}

			path = findPath();

			if(Config.GEODATA_DEBUG && obj.isPlayer())
				debugPath((L2Player) obj, buff, path); // TODO дебаг не для лайва!

			buff.free();

			if(obj.isNpc())
			{
				L2NpcInstance npc = (L2NpcInstance) obj;
				npc.pathfindCount++;
				npc.pathfindTime += (System.nanoTime() - buff.useStartedNanos) / 1000000.0;
			}
		}
	}
path = findPath(); вызывается перед тем как debugPath((L2Player) obj, buff, path); // TODO дебаг не для лайва!

собственно весь процесс описанный мною происходит при вызове первого!!!
__________________
open-team.ru - Freya, HighFive...
DiagoD вне форума Отправить сообщение для DiagoD с помощью ICQ Отправить сообщение для DiagoD с помощью Skype™ Ответить с цитированием
Сказали спасибо:
Непрочитано 23.06.2012, 20:57   #14
Изгнанные

По умолчанию Re: ошибка geodata

Все вижу, ты абсалютно прав
L2scripts-Guard вне форума Отправить сообщение для L2scripts-Guard с помощью Skype™ Ответить с цитированием
Непрочитано 23.06.2012, 21:11   #15
Аватар для Zubastic
ZG troll squad

По умолчанию Re: ошибка geodata

Жесткая битва
Zubastic вне форума Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Продам] GEODATA HF Scoo Рынок / Marketplace 1 10.01.2012 16:13
///geodata krisadr Игровой клиент 6 07.12.2010 01:03
GeoData Ljucifer Работа с геодатой 0 21.10.2008 17:15
Geodata ilyxa Работа со скриптами 28 11.08.2008 00:29


© 2007–2024 «Форум администраторов игровых серверов»
Защита сайта от DDoS атак — StormWall
Работает на Булке неизвестной версии с переводом от zCarot
Текущее время: 09:53. Часовой пояс GMT +3.

Вверх