L2OFF Decompiled Sources (Salvation: The Gathering / Orfen - 152/162)

еще такой вопрос: sql файлы нашел в папках AuthD (3) и Cached (203). это полный комплект проекта, или остальное нужно через ии генерировать? также возможно если запустишь тестовый, люди помогут с репортами.
Поднял линукс билд на 169.58.177.240
Сегодня/завтра я выдам некоторые гм команды всем новым/существующим персонажам чтобы упростить тестирование.

Этот билд немного отличается от того, что я расшарил. Я починил парочку багов (скрипты которые выставляют нпс хп теперь работают, исправлена скорость для фоллоу нпс и расчет шага движения у воды приведен к оригиналу). Позже я расшарю патч.
 
Несколько лет назад были выложены бинарники разных версий Л2. Часть содержала pdb и другими файлы, которые позволяют "относительно легко" реконструировать код. Некоторые из них были нарочно испорчены, но при этом все же были секции (процентов 20%) с полезными данными. На удивление (для меня) totalchecker2015.pdb оказался очень полезным для реконструкции L2Server.
В архиве нет бинарников и pdb ?
 
Несколько лет назад были выложены бинарники разных версий Л2. Часть содержала pdb и другими файлы, которые позволяют "относительно легко" реконструировать код. Некоторые из них были нарочно испорчены, но при этом все же были секции (процентов 20%) с полезными данными. На удивление (для меня) totalchecker2015.pdb оказался очень полезным для реконструкции L2Server. В начале лета я решил проверить справятся ли "frontier" АИ модели с декомпиляцией если им скормить все это. Спустя 32 дня работы 24/7 и 75 млдр токенов, была получена первая рабочая версия. Последующие месяцы ушли на тестирование, фиксы, очистку кода, дополнительные аудиты для сверки с машинным кодом и т.д. Большая часть тестирования была выполнена на MacOS. Но гарантировать стабильность при длительном рантайме и при большом онлайне не могу ни на какой платформе. Это все нужно проверять, у меня ни возможности ни времени не было.

Изменения по сравнению с оригиналом
- Консольные приложения вместо Win GUI. На виндовс можно для cached и authd в настройках указать режим gui, если это кому-то нужно.
- Кросс-платформенность. Все приложения билдятся и запускаются на Win, MacOS, Linux. Большая часть тестирования была проведена на MacOS, поэтому на других платформах могут быть ошибки о которых я не знаю.
- MSSQL заменена на PostgreSQL.
- При условии что PostgreSQL запущен и указаны правильные логин и пароль, схемы создадутся автоматически.
- В authd и cached есть папки sql с миграциями которые применяются автоматически. Если нужно внести изменение в схему или просто выполнить единоразово какой-то апдейт, то просто создайте новую миграцию.
- Регистрировать сервер в БД не обязательно, но для этого есть sql скрипт в AuthD\sql\tools. AuthD поддерживает текстовый файл в папке с конфигом AuthD\etc\serverlist. По-умолчанию он настроен на localhost, сервер Bartz.
- При логине аккаунт создается автоматически, если он не существует (как в джава эмуляторах). Это отключается в настройках.
- Создать аккаунт и изменить ГМ права можно с помощью консольных команд в authd и cached. help выведет в консоль все доступные команды, их там не много.
- Все приложения поддерживают флаг --сonfig-dir для указания папки с конфигом, иначе ищет в текущей/etc.
- Некоторые приложения поддерживают флаги --scripts-dir (CacheD, L2Server, L2NPC) , --html-dir (L2Server), --geo-dir (L2Server, L2NPC).
- По-умолчанию включена поддержка нескольких языков (из-за этого в архиве HTML_Korea и HTML_USA). Второй был переведен нейронками с учетом игровых данных корейского и английского клиентов чтобы сохранить корректные английские названия локаций, НПС, айтемов и т.д.
- По-умолчанию для выделения памяти используется стандартный аллокатор. В настройках можно установить legacy memory manager. Какое-то время назад делал бенчмарки на маке с учетом того на что память выделяют сервера и в большинстве случаев обычный аллокатор был эффективнее кастомного. Но в некоторых ситуациях кастомный был лучше (точно не помню, по-моему что-то связано с аллокацией маленьких обьектов и фрагментацией памяти). В общем, нужно тестировать.
- Переделаны все логи. Старые сохранены в комментариях. Видимо некоторые (неинформативные) логи разработчики добавляли для быстрого дебага и не удаляли их.
- Пофикшены несколько багов в ai.obj, html. Также исправлены и задокумментированы некоторые баги оригинала (docs/SHIPPING_BUG_FIXES.md).
- Поддержка 152 EN клиента . От 162 KOREA он отличается пакетами связанными со скиллами, сharinfo/userinfo и кажется еще парочкой других. Некоторые хай лвл скиллы могут не отображаться. Это из-за того, что 152 клиент про них не знает.

Протестировано
Прокачка персонажей (квесты и т.д.), различные механики (репутация, monster book, инстансы, кланы, различные операции с предметами, алхимия, игра в группе и т.д.). Не протестированы осады, олимпиада. Там по-моему нужно основной сервер настроить как сервер обрабатывающий эти механики. Некоторые файлы в scripts содержат адреса peer серверов и по идее если указать локальный адрес, то должно сработать. Еще были написаны e2e тесты для всех ГМ комманд, поскольку они затрагивают множество механик.

Кстати, docs\builder\index.html содержит таблицу с описание всех поддерживаемых гм комманд. Поиск тоже работает.

Баги
Очевидно, что они есть. Были исправлены сотни ошибок реконструкции. Практически все связаны с обращением не к тому полю (например в машинном коде идет обращение к полю с оффсетом Х, а здесь к полю с оффсетом X+1). Но это легко правится.

Заключение
Я никогда не играл в ГОД+ и слышал много хейта в адрес мейна. Пока тестировал механики убедился насколько же все халтурно и убого сделано. Для меня самая большая ценность этого наверное в возможности использовать как основу для даунгреда до C4-HF, может быть для классики. Поддерживать репозиторий с этим кодом у меня сейчас нет времени, поэтому скорее всего и апдейтов никаких я постить не буду. Если кто-то захочет, то может быть создаст репозиторий в который все могли бы контрибьютить. Надеюсь, что это окажется полезным для Л2 коммьюнити, где к сожалению много закрытых/платных сборок.

Смотрите README.md и REQUIREMENTS.md где указано, что необходимо для компиляции.

Ссылка:
Пароль: default_npc
фул реверс рекомпил серьезно????
 
В архиве нет бинарников и pdb ?
Я не стал их засовывать в архив, их можно найти здесь
Сообщение объединено:
еще такой вопрос: sql файлы нашел в папках AuthD (3) и Cached (203). это полный комплект проекта, или остальное нужно через ии генерировать? также возможно если запустишь тестовый, люди помогут с репортами.
Нет, не нужно ничего генерировать. Сервер поднял, смотри выше.
 
Последнее редактирование:
Я сейчас раню аудит используя пдб которые ChaosPaladin выложил (спасибо ему) для 285. Все расхождения сверяются с машинным кодом 162. Уже нашлось с десяток расхождений. Я потом выложу патч.
Сообщение объединено:
расскажешь как зарегистрировать аккаунт
Аккаунт должен создаться автоматически при первом входе.
 
Благодарность
 
Назад
Сверху Снизу