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

Работа со скриптами Помощь в редактировании и написании квестов к Java серверам, а так же эвентов.
Описание темы:сервер - клиент

Ответ
Опции темы
Непрочитано 22.10.2012, 22:57   #1
Аватар для Archiel
Пользователь

Автор темы (Топик Стартер) Augmentation

Исходники:
L2j based.

Что сделано:
Изменён алгоритм аугментации, бонусы, камни.

Что не получается:
Не отображается результат аугментации на шмотках. Только на оружии.

Примечание:
В логах всё ок, процесс аугментации работает отлично, статы присваиваются.
log:
Свернуть ↑Развернуть ↓

Так же об успешной работе алгоритма свидетельствует заполняемая таблица item_attributes.sql
Archiel вне форума Отправить сообщение для Archiel с помощью ICQ Ответить с цитированием
Непрочитано 23.10.2012, 08:19   #2
Изгнанные

По умолчанию Re: Augmentation

Не совсем ясна суть проблемы - вы сделали аугментацию БРОНИ? Если так, то что у вас не работает? Броня не светится (как пушка)? Такого не будет. Или у вас при выборе шмотки не пишет какие статы добавило от аугмента? Подробнее, если можно.
FullMetal вне форума Ответить с цитированием
Непрочитано 23.10.2012, 12:38   #3
Аватар для Archiel
Пользователь

Автор темы (Топик Стартер) Re: Augmentation

Да, я сделал аугментацию брони. При этом на ней в игре не отображаются добавленные статы.
Archiel вне форума Отправить сообщение для Archiel с помощью ICQ Ответить с цитированием
Непрочитано 23.10.2012, 12:42   #4
Аватар для Ashe
Олдфаг

По умолчанию Re: Augmentation

Цитата:
Сообщение от Archiel Посмотреть сообщение
Да, я сделал аугментацию брони. При этом на ней в игре не отображаются добавленные статы.
А должны?! Ведь у оружия они отображаются потому что так реализовано в клиенте. Вы клиент правили?
__________________
Fortuna - non penis, in manus non recipe.
Ashe вне форума Ответить с цитированием
Непрочитано 23.10.2012, 12:57   #5
Аватар для Archiel
Пользователь

Автор темы (Топик Стартер) Re: Augmentation

Цитата:
Сообщение от Ashe Посмотреть сообщение
А должны?! Ведь у оружия они отображаются потому что так реализовано в клиенте. Вы клиент правили?
Ну есть же аугментация бижутерии, которая фактически является такой же составляющей брони, только в другом слоте.

Добавлено через 1 минуту
А в клиенте, по крайней мере в *.dat файлах, указываются только комбинации эффектов, файл optiondata_client-e.dat.

Последний раз редактировалось Archiel; 23.10.2012 в 12:58. Причина: Добавлено сообщение
Archiel вне форума Отправить сообщение для Archiel с помощью ICQ Ответить с цитированием
Непрочитано 24.10.2012, 07:34   #6
Изгнанные

По умолчанию Re: Augmentation

Цитата:
Сообщение от Ashe Посмотреть сообщение
А должны?! Ведь у оружия они отображаются потому что так реализовано в клиенте. Вы клиент правили?
На овероподобных отображается аугмент брони без редактрирования клиента.
FullMetal вне форума Ответить с цитированием
Непрочитано 24.10.2012, 09:13   #7
Аватар для Archiel
Пользователь

Автор темы (Топик Стартер) Re: Augmentation

Цитата:
Сообщение от FullMetal Посмотреть сообщение
На овероподобных отображается аугмент брони без редактрирования клиента.
А можно линк на любые шаровые исходники, где это реализовано?
Archiel вне форума Отправить сообщение для Archiel с помощью ICQ Ответить с цитированием
Непрочитано 24.10.2012, 13:22   #8
Аватар для Gaikotsu
Герой

По умолчанию Re: Augmentation

возможно стоит покопать в серверных пакетах, отсылающих информацию о предметах клиенту - там для той же брони к примеру может значение ауги не слаться, ну точнее будет слаться ее отсутствие.
Gaikotsu вне форума Ответить с цитированием
Непрочитано 24.10.2012, 13:24   #9
Аватар для Archiel
Пользователь

Автор темы (Топик Стартер) Re: Augmentation

Цитата:
Сообщение от Gaikotsu Посмотреть сообщение
возможно стоит покопать в серверных пакетах, отсылающих информацию о предметах клиенту - там для той же брони к примеру может значение ауги не слаться, ну точнее будет слаться ее отсутствие.
Да механику я понимаю, но я там уже всё перерыл, сейчас скину куски кода, которые вообще связаны с аугментацией.

Добавлено через 15 минут
В общем сам процесс вот каков:

1) AugmentationData.java
Тут всё просто, алгоритм рассчёта аугментации, начисление бонусов и т.п.
В конце концов рассчитывается просто
Код:
generateRandomAugmentation
там никаких условий связанных со шмотом нет, кроме:
1:
Свернуть ↑Развернуть ↓

Что само по себе просто меняет алгоритмы вычисления и возможные бонусы.


2) AbstractRefinePacket.java

Тут хранятся как раз условия при которых вообще можно запустить аугмент, хранятся камни, их ИД, уровни, гемы, которые используются при аугментации и т.п. Опять же, настройки влияют только на сам процесс аугментации.

3) Ну и, наконец, когда мы всё рассчитали, у нас идёт RequestRefine.java

1:
Свернуть ↑Развернуть ↓



Что я нашёл ещё, в сервер пакетах есть вот это:
CharSelectionInfo.java
Код:
writeD(charInfoPackage.getAugmentationId());
А ниже:
1:
Свернуть ↑Развернуть ↓


Добавлено через 22 минуты
Исходники:
Свернуть ↑Развернуть ↓


Добавлено через 1 час 51 минуту
Продебажил весь процесс аугментации, разницы между аугментом армора и оружия не увидел. В обоих случаях в итоге шлётся:
Код:
final int stat12 = 0x0000FFFF & aug.getAugmentationId();
		final int stat34 = aug.getAugmentationId() >> 16;
		activeChar.sendPacket(new ExVariationResult(stat12,stat34,1));

		InventoryUpdate iu = new InventoryUpdate();
		iu.addModifiedItem(targetItem);
		activeChar.sendPacket(iu);
И всё.

Добавлено через 1 час 53 минуты
Весь класс вот:
Код:
public class ExVariationResult extends L2GameServerPacket
{
	private static final String _S__FE_55_EXVARIATIONRESULT = "[S] FE:56 ExVariationResult";

	private int _stat12;
	private int _stat34;
	private int _unk3;

	public ExVariationResult(int unk1, int unk2, int unk3)
	{
		_stat12 = unk1;
		_stat34 = unk2;
		_unk3 = unk3;
	}

	/**
	 * @see ru.l2open.util.network.BaseSendablePacket.ServerBasePacket#writeImpl()
	 */
	@Override
	protected void writeImpl()
	{
		writeC(0xfe);
		writeH(0x56);
		writeD(_stat12);
		writeD(_stat34);
		writeD(_unk3);
	}

	/**
	 * @see ru.l2open.gameserver.BasePacket#getType()
	 */
	@Override
	public String getType()
	{
		return _S__FE_55_EXVARIATIONRESULT;
	}

}
Добавлено через 1 час 55 минут
А вот вторая часть, InventoryUpdate.java

1:
Свернуть ↑Развернуть ↓

Последний раз редактировалось Archiel; 24.10.2012 в 15:19. Причина: Добавлено сообщение
Archiel вне форума Отправить сообщение для Archiel с помощью ICQ Ответить с цитированием
Ответ


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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
L2open, augmentation, Last Hero. FaintSmile Работа со скриптами 13 14.11.2010 22:29
L2Emu-RT rev.508 Правка исходников. Изменение стоимости отмены Augmentation. Aristocrat Lineage II 1 23.10.2009 18:06
Адаптируем SQL BimBom Работа со скриптами 9 14.10.2009 15:14


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

Вверх