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

Lineage II
Дискуссии на тему создания, настройки и обслуживания серверов Lineage 2. При поддержке: Премиум услуги по рекламе

Описание темы:недавно все работало

Ответ
Опции темы
Непрочитано 15.05.2017, 12:24   #1
Аватар для ntking
Пользователь

Автор темы (Топик Стартер) Перестал работать скилл "Печать правителя"

Сборка Phenix/Open, с полгода назад все работало, а вчера на сервере владельцы замков решили поменяться замками и выяснилось, что при выделении артефакта и попытке использовать скилл "печать правителя" ничего не происходит. Совершенно ничего. Сервер ничего не пишет.
Сбой скорее всего закрался в БД, т.к. доступа к ядру у меня нет.
Предпринял: Сделал частичный вайп ивента 7 печатий (сегодня в 18-00 закончится первый период после вайпа), Обнулил результаты тв (вернул флаги в замки), снизил уровни кланов с 11-го до 10-го (повышал я, через админку).
Какая еще может быть причина того, что КЛ не может использовать скилл "Печать правителя" при осаде замка?
Заранее благодарен за помощь!

P.S. В data/ нет текстового файла world_regions.txt для удаления.
ntking вне форума Отправить сообщение для ntking с помощью ICQ Ответить с цитированием
Непрочитано 20.05.2017, 21:49   #2
Аватар для ntking
Пользователь

Автор темы (Топик Стартер) Re: Перестал работать скилл "Печать правителя"

Появились подробности: Выключил геодату, персонаж куда-то ломится, потом начинает кастовать, замок переходит к его клану. Но ведь раньше работало и с включенной геодатой. Что удалось найти в шаре, содержимое TakeCastle:
Код:
public class TakeCastle extends L2Skill
{
	@Override
	public boolean checkCondition(L2Character activeChar, L2Character target, boolean forceUse, boolean dontMove, boolean first)
	{
		if(!super.checkCondition(activeChar, target, forceUse, dontMove, first))
			return false;

		if(activeChar == null || !activeChar.isPlayer())
			return false;

		L2Player player = (L2Player) activeChar;
		if(player.getClan() == null || !player.isClanLeader())
			return false;

		Siege siege = SiegeManager.getSiege(activeChar, true);
		if(siege == null || siege.getSiegeUnit().getType() != ResidenceType.Castle)
			return false;
		if(siege.getAttackerClan(player.getClan()) == null)
			return false;
		if(player.isMounted())
			return false;

		if(!player.isInRangeZ(target, 120))
		{
			player.sendPacket(Msg.YOUR_TARGET_IS_OUT_OF_RANGE);
			return false;
		}

		if(first)
			for(SiegeClan sc : siege.getDefenderClans().values())
			{
				L2Clan clan = sc.getClan();
				if(clan != null)
					clan.broadcastToOnlineMembers(Msg.THE_OPPONENT_CLAN_HAS_BEGUN_TO_ENGRAVE_THE_RULER);
			}

		return true;
	}

	public TakeCastle(StatsSet set)
	{
		super(set);
	}

	@Override
	public void useSkill(L2Character activeChar, GArray<L2Character> targets)
	{
		for(L2Character target : targets)
			if(target != null)
			{
				if(!target.isArtefact())
					continue;
				L2Player player = (L2Player) activeChar;
				Siege siege = SiegeManager.getSiege(activeChar, true);
				if(siege != null)
				{
					siege.announceToPlayer(new SystemMessage(SystemMessage.CLAN_S1_HAS_SUCCEEDED_IN_ENGRAVING_THE_RULER).addString(player.getClan().getName()), false, true);
					siege.Engrave(player.getClan(), target.getObjectId());
				}
			}
	}
}
cast_range у скилла 246 "Печать правителя" - 150, с запасом.
На скрине видно, что артефакт и персонаж очень близко:

Содержимое конфига геодаты не менялось:
Код:
#===================================================#
# Даный файл является конфигуратором геодаты.       #
#===================================================#
GeodataEnabled = True
GeodataDebug = false
PathfindDebug = false
MultiThreadedLoad = false

GeoFirstX = 11
GeoFirstY = 10
GeoLastX = 26
GeoLastY = 26

# Паттерн для файлов геодаты.
# Файлы что подойдут под паттерн будут считатся файлами геодаты
GeoFilesPattern = (\\d{2}_\\d{2})\\.l2j

# Обрабатывать ли двери в геодате
# Настройка влияет на ГеймСервер
AllowDoors = True

# Разрешать игроку падать с горизонтальной стены если он кликает по самой стене
AllowFallFromWalls = False

# Движение клавиатурой (стрелочками)
AllowMoveWithKeyboard = True

# оптимизация размещение гео в памяти, экономит около 150Мб памяти
# для оптимизации нужно сначала нужно сгенерировать карты совпадений
# java -Xms1g -Xmx1400m -Xmn192m -XX:PermSize=16m -cp l2openserver.jar l2open.debug.benchmark.GeoMatchesGenerator
CompactGeoData = False

# Мобы срезают углы, за счет чего нагрузка падает в несколько раз
# Могут застревать на поворотах и некрасиво обходить деревья
SimplePathFindForMobs = True

# Диагональный поиск. Возможно тратит больше ресурсов.
PathFindDiagonal = True

# Сглаживает путь.
# Стоит отключать только для дебага.
PathClean = True

# Сильно ускоряет поиск, как влияет на качество неизвестно
# 0 - отключить, 1 - только начало пути, 2 - начало и конец пути
PathFindBoost = 2

# Максимальная высота ступеньки для поиска пути
PathFindMaxZDiff = 32

# Максимальная высота ступеньки для геодаты
MaxZDiff = 64

# Минимальная разница между слоями
MinLayerHeight = 64

# Базовый вес ячейки
Weight0 = 0.5

# Вес "плохих" клеток первого плана
Weight1 = 2

# Вес "плохих" клеток второго плана
Weight2 = 1

# Настройка буфферов для поиска пути
PathFindBuffers = 8x100;8x128;8x192;4x256;2x320;2x384;1x500

# Прибавка к Z для пакетов
ClientZShift = 16

# Глубина видимости (количество видимых регионов). От 1 и более.
ViewOffset = 1

# Размер региона. Менять с учетом ViewOffset.
DivBy = 2048
DivByForZ = 1024

# Номера квадратов геодаты с вертикальным разделением регионов (густонаселенные многоэтажные локации)
# Cruma Tower, Swamp of Screams, Garden of Eva, Tower of Insolence, Forge of the Gods, Imperial Tomb, Giant's Cave
VerticalSplitRegions = 20_21;22_16;22_25;23_18;25_14;25_15;25_19;24_23

# Отложенный спавн
DelayedSpawn = False
Попробовал выстрелить по артефакту из лука или нанести магический урон через CTRL - не получается. Возможно именно в этом причина сбоя в работе скилла. Ваши советы:

Последний раз редактировалось ntking; 21.05.2017 в 10:31.
ntking вне форума Отправить сообщение для ntking с помощью ICQ Ответить с цитированием
Непрочитано 22.05.2017, 00:07   #3
Аватар для GGteam
Пользователь

По умолчанию Re: Перестал работать скилл "Печать правителя"

Цитата:
Сообщение от ntking Посмотреть сообщение
Появились подробности: Выключил геодату, персонаж куда-то ломится, потом начинает кастовать, замок переходит к его клану. Но ведь раньше работало и с включенной геодатой. Что удалось найти в шаре, содержимое TakeCastle:
Код:
public class TakeCastle extends L2Skill
{
	@Override
	public boolean checkCondition(L2Character activeChar, L2Character target, boolean forceUse, boolean dontMove, boolean first)
	{
		if(!super.checkCondition(activeChar, target, forceUse, dontMove, first))
			return false;

		if(activeChar == null || !activeChar.isPlayer())
			return false;

		L2Player player = (L2Player) activeChar;
		if(player.getClan() == null || !player.isClanLeader())
			return false;

		Siege siege = SiegeManager.getSiege(activeChar, true);
		if(siege == null || siege.getSiegeUnit().getType() != ResidenceType.Castle)
			return false;
		if(siege.getAttackerClan(player.getClan()) == null)
			return false;
		if(player.isMounted())
			return false;

		if(!player.isInRangeZ(target, 120))
		{
			player.sendPacket(Msg.YOUR_TARGET_IS_OUT_OF_RANGE);
			return false;
		}

		if(first)
			for(SiegeClan sc : siege.getDefenderClans().values())
			{
				L2Clan clan = sc.getClan();
				if(clan != null)
					clan.broadcastToOnlineMembers(Msg.THE_OPPONENT_CLAN_HAS_BEGUN_TO_ENGRAVE_THE_RULER);
			}

		return true;
	}

	public TakeCastle(StatsSet set)
	{
		super(set);
	}

	@Override
	public void useSkill(L2Character activeChar, GArray<L2Character> targets)
	{
		for(L2Character target : targets)
			if(target != null)
			{
				if(!target.isArtefact())
					continue;
				L2Player player = (L2Player) activeChar;
				Siege siege = SiegeManager.getSiege(activeChar, true);
				if(siege != null)
				{
					siege.announceToPlayer(new SystemMessage(SystemMessage.CLAN_S1_HAS_SUCCEEDED_IN_ENGRAVING_THE_RULER).addString(player.getClan().getName()), false, true);
					siege.Engrave(player.getClan(), target.getObjectId());
				}
			}
	}
}
cast_range у скилла 246 "Печать правителя" - 150, с запасом.
На скрине видно, что артефакт и персонаж очень близко:

Содержимое конфига геодаты не менялось:
Код:
#===================================================#
# Даный файл является конфигуратором геодаты.       #
#===================================================#
GeodataEnabled = True
GeodataDebug = false
PathfindDebug = false
MultiThreadedLoad = false

GeoFirstX = 11
GeoFirstY = 10
GeoLastX = 26
GeoLastY = 26

# Паттерн для файлов геодаты.
# Файлы что подойдут под паттерн будут считатся файлами геодаты
GeoFilesPattern = (\\d{2}_\\d{2})\\.l2j

# Обрабатывать ли двери в геодате
# Настройка влияет на ГеймСервер
AllowDoors = True

# Разрешать игроку падать с горизонтальной стены если он кликает по самой стене
AllowFallFromWalls = False

# Движение клавиатурой (стрелочками)
AllowMoveWithKeyboard = True

# оптимизация размещение гео в памяти, экономит около 150Мб памяти
# для оптимизации нужно сначала нужно сгенерировать карты совпадений
# java -Xms1g -Xmx1400m -Xmn192m -XX:PermSize=16m -cp l2openserver.jar l2open.debug.benchmark.GeoMatchesGenerator
CompactGeoData = False

# Мобы срезают углы, за счет чего нагрузка падает в несколько раз
# Могут застревать на поворотах и некрасиво обходить деревья
SimplePathFindForMobs = True

# Диагональный поиск. Возможно тратит больше ресурсов.
PathFindDiagonal = True

# Сглаживает путь.
# Стоит отключать только для дебага.
PathClean = True

# Сильно ускоряет поиск, как влияет на качество неизвестно
# 0 - отключить, 1 - только начало пути, 2 - начало и конец пути
PathFindBoost = 2

# Максимальная высота ступеньки для поиска пути
PathFindMaxZDiff = 32

# Максимальная высота ступеньки для геодаты
MaxZDiff = 64

# Минимальная разница между слоями
MinLayerHeight = 64

# Базовый вес ячейки
Weight0 = 0.5

# Вес "плохих" клеток первого плана
Weight1 = 2

# Вес "плохих" клеток второго плана
Weight2 = 1

# Настройка буфферов для поиска пути
PathFindBuffers = 8x100;8x128;8x192;4x256;2x320;2x384;1x500

# Прибавка к Z для пакетов
ClientZShift = 16

# Глубина видимости (количество видимых регионов). От 1 и более.
ViewOffset = 1

# Размер региона. Менять с учетом ViewOffset.
DivBy = 2048
DivByForZ = 1024

# Номера квадратов геодаты с вертикальным разделением регионов (густонаселенные многоэтажные локации)
# Cruma Tower, Swamp of Screams, Garden of Eva, Tower of Insolence, Forge of the Gods, Imperial Tomb, Giant's Cave
VerticalSplitRegions = 20_21;22_16;22_25;23_18;25_14;25_15;25_19;24_23

# Отложенный спавн
DelayedSpawn = False
Попробовал выстрелить по артефакту из лука или нанести магический урон через CTRL - не получается. Возможно именно в этом причина сбоя в работе скилла. Ваши советы:
Но в таргет возможно взять артефакт?
GGteam вне форума Ответить с цитированием
Непрочитано 22.05.2017, 00:15   #4
Пользователь

По умолчанию Re: Перестал работать скилл "Печать правителя"

//Понял что слишком костыльно.
//Deleted.
Emperor вне форума Ответить с цитированием
Непрочитано 22.05.2017, 11:16   #5
Аватар для ntking
Пользователь

Автор темы (Топик Стартер) Re: Перестал работать скилл "Печать правителя"

Цитата:
Но в таргет возможно взять артефакт?
GGteam, да, конечно.
Добавлю еще: Я ТП-шнулся за артефакт (возьмем примером Дион), и находясь сзади него, при включенной геодате - кастует. Но только я перехожу в левый бок или на перед артефакта не кастует, даже находясь на площадке в непосредственной близости, где стоит артефакт.
Я пробовал чистить геодату спереди атрефакта, убирал полностью условия, не помогает.
Единственное, что мне пришло в голову, что артефакты тупо застряли в текстурах и их "не видно" спереди. Это бы можно было принять как решение, если бы не артефакты Руны или того же Годдарда, где к ним можно подойти со всех сторон. Пробовал спавнить артефакты выше на сотку, по логике вещей должно было помочь, но нет, проблему не решило.

Еще раз повторюсь: не так давно такой проблемы не было. Ума не приложу, что могло произойти с геодатой или геодвижком (к коду которого у меня нет доступа). Максимум, что могу вспомнить - это я добавлял в геодату пару квадратов Грации, которые начали использовать ну и мелкие фиксы провалов по всей карте.

Персонаж по какой-то причине не видит артефакт, даже не бежит к нему. Если сесть на выверну - на выверне пытается подлететь к нему, но не кастует. Т.е. фактически логика сервера: артефакт находится в закрытой с 4-х сторон "комнате", в которую нет прямой видимости, а через "стены" соответственно скилл не активируется. Как такое произошло - понять и решить проблему не моих силах((( Возможно, если переставить артефакты на пол - все заработает. Но это очень не эстетично.

Последний раз редактировалось ntking; 22.05.2017 в 13:05.
ntking вне форума Отправить сообщение для ntking с помощью ICQ Ответить с цитированием
Непрочитано 23.05.2017, 22:41   #6
Аватар для ntking
Пользователь

Автор темы (Топик Стартер) Re: Перестал работать скилл "Печать правителя"

Решение найдено. Причиной возникновения данного сбоя был я и моя правка скиллов (как раз с полгода назад я занимался парсингом с pts). На сервере маги довольно дальнобойными были и я резанул всем дальность магии на 100. Вот и получилось, что попросту не хватало того самого cast_range=150 с запасом, т.к. фактически он был 50 и этого оказалось мало, чтобы кастовать с балконов. Непонятно только одно, почему сервер не предупреждал о том, что расстояние до артефакта слишком большое, ведь этот код это предусматривает:
Код:
		if(!player.isInRangeZ(target, 120))
		{
			player.sendPacket(Msg.YOUR_TARGET_IS_OUT_OF_RANGE);
			return false;
		}
Теперь это неважно. Проблема решена, извините за беспокойство.
ntking вне форума Отправить сообщение для ntking с помощью ICQ Ответить с цитированием
Непрочитано 23.05.2017, 22:51   #7
Аватар для Zubastic
ZG troll squad

По умолчанию Re: Перестал работать скилл "Печать правителя"

Цитата:
Сообщение от ntking Посмотреть сообщение
Решение найдено. Причиной возникновения данного сбоя был я и моя правка скиллов (как раз с полгода назад я занимался парсингом с pts). На сервере маги довольно дальнобойными были и я резанул всем дальность магии на 100.
Нормально так
__________________
Zubastic вне форума Ответить с цитированием
Ответ


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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
"Freeman`s days. Day One" - проект фан-фильма по игре "Half-life 2" Ashe Курилка / Yak floor 2 04.04.2013 15:34
"Драйвер перестал отвечать и был восстановлен" Ashe Курилка / Yak floor 29 14.02.2013 12:15
Есть "Железо" или "Сделаем дома пассаны!" Shem Курилка / Yak floor 13 17.11.2012 01:49


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

Вверх