Хочу порадовать вас новой командой разработчиков эмулятора Lineage 2. За основу были взяты исходники Rigel Project и команда проделала очень даже не малую работу. Не забываем что команда работает на "шару" и больших надежд вы от неё не ждите, но все же надеется на неё еще можно, т.к список фиксов очень даже впечатляет.
Хроники: Interlude
Размер: 20 МБ
Автозагрузка скриптов ака квестов
Фикс переполнения буфера при загрузке геодаты (?)
Более информативное логгирование
Исправление оффлайн выдачи бонуса L2Top
Мелкая оптимизация, улучшение system messages (теперь понимает все кроме имен зон)
Исправление бага с высотой в катакомбах, мелкая оптимизация геодвижка
Глобальная оптимизация геодвижка, мелкая оптимизация по ядру.
Оптимизированы и исправлены эффекты.
Исправление загрузки геодвижка
Оптимизация и мелкий допил dbl
Исправление эффектов
Имплементация ConcurrentMap не может принимать null-value, из-за алгоритма хеширования
Выбор варианта загрузки геодаты: оперативная память или харддиск
Правка сети
Поправляем ошибки в квестах.
Fix HeroItems
Убита утечка
Небольшая оптимизация глобального АИ
- Оптимизация
- Убийство некоторых ворнингов
- Починка TARGET_PARTY_MEMBER & TARGET_PARTY_OTHER
- Добавлены системные сообщения (цель не найдена и цель некорректна), если цель не найдена или она некорректна
- Исправлена функция отмены первого дебаффа
- Убрана НПЕ при смене главы канала
Исправлен doAttackHitByPole, полностью исправлен баг со входом в катакомбы
Улучшен L2World:
- Мы не отдаем карты или листы, только копии данных в виде массивов (т.к. они быстрее создаются)
- Мы не ищем игроков/обьекты по итерации (поиск по OID отменяется)
- Вывод стека при нахождении дубликатов/двойного_добавления, чтобы можно было исправить
- При ненахождении игрока в карте, создается исключение
- Убрано хранение всех петов, которые были вызваны
Петы:
- Добавлено системное сообщение при смерти пета: "Your pet has been killed! Make sure you resurrect your pet within 20 minutes or your pet and all of it's items will disappear forever!"
- При смерти игрока пет ансуммонится
- Исправлено сообщение при ансуммене пета, когда он голоден
Sepulcher npc:
- исправлен BroadcastCreatureSay, отправка только для вновн листа этого НПЦ
Исправлены демоны, DecayManager стал демоном.
Поправка Spawn.
Исправление перезагрузки скриптов из админки
* Добавлена перезагрузка папки всей scripts через админку;
* Удаление недописанных/нерабочих вариантов java квестов;
Поправлена функция ALT_DEV_NO_QUEST
Добавлены админ-команды для теста L2World:
- size_allobjects (вывод количества всех обьектов и скорость поиска по ним в мс)
- size_players (размер карты всех игроков)
L2World:
- allObjects теперь имплементируется ConcurrentMap, т.к. число всех обьектов при старте не превышает 1500, так же установлен инициал размер карты в 2000 обьектов.
Готовимся к глобальной реорганизации хранения обьектов.
Выпиливаем xml-rpc, удаляем неиспользуемые библиотеки
Удаляем пустые пакеты
* Фикс слипшихся слов у NPC
* Удаление лишнего спавна ГК на площади гирана
* Удаление SQL от вырезанной rebirth-системы
Фикс HtmCache.
Фикс одновременного чтения и записи в day/night контроллере
- Убит ненужный пул потоков
- Приведены в порядок демоны
- Убито пару не нужных классов
Временный фикс r55
Полностью реорганизована система спауна:
- Переписан дей/найт спаун контроллер
- Переписан раидбосс спаун менеджер
Мелкая корректировка спауна рейдбоссов:
- При закрытии обьекта рейдбосса, мы отключем задачу спауна
- При спауне ночного босса, мы проверяем только ID
Удаляем пустые пакеты
Исправление плохой чексуммы
Удаляем бесполезную функцию отключения сохранения эффектов персонажа при анлогине.
Чистим немного L2World и его компоненты.
Доставлены интерфейсы для будущей переработки квест-движка.
Оптимизация геодвижка:
- Убрано повторение кода (коего, к слову, вообще огромное количество)
- Убраны не нужные приведения к типу
*Запрещаем делать recall самого себя
*Исправляем чёрные и расползшиеся кнопки в админке
*Исправляем некоторые HTML админке
*Восстановление ф-ции автоотклонения трейда у ГМ и добавлен конфиг на включение при старте
*Добавление кнопок в админке на отсутствующие ф-ции: контроль баффоф, массовые операции
*Правка кодировки
Исправление нерабочего масс контроля
- ItemsOnGround & ItemsAutoDestroy стали daemons.
- Увеличение временного цикла проверки предметов на удаление.
- Мелкая правда добавления эффектов (ищем проблему с аурами)
Фикс двойного вывода сообщения о загрузке конфигов в Логин Сервере
Возвращаем Dash lvl 1 для класса Rogue
Улучшенная очистка пути:
- Оптимизирован алгоритм
- Добавлен фильтр на построение точек, на одном луче (все проверяемые точки в данный момент лежат на одной прямой)
- Оптимизация алгоритма проверки точек в списке (CellNodeMap)
Исправление удаления клановых скиллов. Мелкая правка добавления эффектов.
Исправление эффектов.
Убивание утечки памяти при func template.
Оптимизация выбора целей для скилла (TARGET_AURA and etc)
Наброски WebControl (веб-интерфейс управления сервером)
Распараллеливание использования эффектов и стековых эффектов
Фикс стековых баффов
* Удаление системы получения героя или нобла за предмет
* Откручена система ограничения трейда по лвл.
* Отключен конфиг мультипрофы
* Убраны конфиги установки начального титула
* Убираем вывод версии сервера при входе
* Фикс некоторых ворнингов
* Отключаем классическую админку
* Удалена away система
* Удалены .withdraw и .deposit
Мелкий рефакторинг
Добавление синхронизированного хранилища обьектов и фильтра листов
Убраны деадлоки в !AttackStanceDaemon, !DecayDaemon
Правильно начисление !PcBang очков
Добавлена библиотека google-collections
Теперь //heal восстанавливает и CP.
Убийство некоторых ворнингов.
Убираем проверки на null перед циклами
Некая пародия на сборщик мусора. Регистрирует в памяти обьекты, которые используют определенный обьект, а при вызове удаления - оповещает все классы, которые используют этот обьект.
Помошник сборщика мусора (1.1), позволяет удалять обьекты (удаляет ссылки на обьект, чтобы сборщик мусора мог легко удалять его).
Вся работа с помошником заключается в вызове методов регистрации (например, когда мы через фактори отдаем обьект) и
вызове удаления обьекта.
При удалении обьекта происходит очистка глобальной ссылки в зарегистрированых обьектах, затем мы используем оповещение обьекта, что его поле очищено (метод "destroy"+field name), когда мы оповестили все обьекты, у удаляемого обьекта вызывается деструктор (метод "destroy"+class simple name).
Внимание: методы деструктора и оповещения ничего не должны возвращать и принимать!
Мелкая правда сети:
- При выходе из основного цикла мы закрывем все потоки и сам селектор
- Очередь пакетов теперь строится на конкурент очереди
- Кошерная обработка некоторых исключений, а не просто логгирование
Сеть:
- Полностью убита вся защита на неизвестные пакеты и высокую скорость чтения, в замен написана полностью новая
- Сеть переведена на wait/wakeup режим (не грузим ЦПУ бесполезными операциями)
Полностью отлаженная защита сети.
Добавлена информация о скорости и скорости пакетов в админку, сделан более инфромационный вывод при дисконнекте и сейв данных персонажа.
Оптимизирован пакет NpcHtmlMessage.
Увеличиваем скорость помошника сборщика мусора с помощью cglib
Крепим к google-collect & cglib явадок
Посылаем пакет обновления статуса при изменении DietMode
Мелкая чистка кода. Исправлена отправка пакетов в бандит и ферме КХ
Правка UseItem мессаг при отмене использования.
Правка diet-mode, посылаем пакеты на обновление персонажа.
Наброски сети
!RNet: делаем абстрактную прослойку воркеров и выносим туда дубль-код
!NpcHtmlMessage, исправляем выход за границы массива
Убираем посылку пакетов в diet моде.
DRAIN скилы должны сосать только хп, но не цп.
Geodata: готовый метод хранения геодаты, который был описан в комментарии, осталось только доработать методы.
Дописан геодвижек
Geodata:
- исправление бесконечной рекурсии при включенной геодате
- полностью пересмотрен вариант хранения геодаты, теперь мы при загрузке сразу конвертируем ее в нужные нам числа и из движка просто запрашиваем высоту блока/NSWE блока
Geodata: полностью готовый прототип.
Geodata:
- исправлена загрузка мульти-блоков
- исправлена загрузка комплекс-блоков
- исправлено нахождение ячейки блока
Pathfind:
- удаляем поиск пути по pn
- заменяем конкурентную карту на лист с инициалом в 2000
- удаляем абстрактные прослойки точек
- совмещаем Node & NodeLoc
- удаляем утилы поиска пути
- удаляем неиспользуемые алгоритмы поиска
Теперь нулевой сервер не принимается
Добавлена настройка по дальности поиска пути
xsd списка серверов, thx l2jserver
Удален мусор, изменены форматы некоторых файлов на более им подабающие
Корректная обработка дверей
Исправлен рассинхрон координат c водяными зонами и при полете на виверне (время прохождения пути было не верным)
Ставим ограничитель на максимальный путь (2000), больше мы не можем обработать, поэтому и не нужно искать больше.
Убита куча утекающих дескрипторов
Исправлено обновление при свипе
Подправлены осаждаемые КХ.
Исправлена проблема с мульти-блоками, когда высота некоторых слоев могла быть недоступна.
Поправлен расчет нахождения преград.
Добавление некоторым скиллам staticReuse'а (в т.ч. LS-нюки - 5 секунд одиночные, 15 - массовые, оффлайк).
Исправлен Day of Doom: EffectSignetDebuff?, был - EffectSignetMDam (need test).
Изменена система рейтинга Олимпиады. Теперь на протяжении месяца игроки отображаются в классовых рейтингах по алфавиту, и лишь только 1 числа нового месяца, когда известны имена героев, рейтинг отображается по количеству набранных очков - оффлайк (раньше - ежедневно рейтинг отображался по количеству набранных очков).
Geodata & Pathfinding: отлаживаем и пытаемся поймать баг с "нулевыми" точками
Синхронизация клиент-сервер:
- АИ больше не обрабатывает запросы на боат
- Добавлено system-message: "You should release your pet or servitor so that it does not fall off of the boat and drown!" (1523), вызываем если есть пет при запросе боата
- Подготовка пакетов MoveTo* & Validation к переработке синхронизации
Исправлена система снятия ЛС-баффов: при снятии оружия, наложенный эффект не снимается (лс-бафф), но при наложении эффекта от иного оружия (иной лс-бафф) имеющийся эффект заменяется на новый. Таким образом на персонаже не может висеть более одного эффекта (лс-баффа).
Исправлены статы многих лс-баффов.
Geodata:
- Новая проверка на движение (рисуем отрезок от начальной точки до конечной, если встречается преграда, то отдаем посл. валидную точку)
- Мелкие правки (координаты мира и другое)
Подправлена обработка исключения, если логин мертв.
Улучшена синхронизация координат (особенно синхронизация кораблей)
Убраны deprecated-методы расчета дистанции.
Добавлены статические сообщения-пакеты
Сеть:
- Добавляем многопоточное чтение и запись
Показываем год в чат-логе
Форсинг кеширования html'ок
Фикс закрывающихся коннектов
Чистка и реорганизация
Заменяем c3p0 на bonecp (БД пул)
Исправлена высота в flat-блоках.
Добавлен логер для BoneCP.
Сеть:
- Исправлена отправка закрывающего пакета
- Убраны возможные деадлоки
- Добавлено авто-восстановление потока чтения/хаписи при падении
Геодата:
- Улучшено сглаживание
- Улучшен фильтр диагонального поиска (спасибо лыже)
Обновлены библиотеки javolution & mysql-connector
corrected nLOS
Геодата:
- Исправлено чтение слоев (если всего слоев 1)
- Оптимизация нахождения соседних точек
- Оптимизация построения пути
- Добавлена обработка дверей
Queen Ant:
- Проверка на активность АК (если не атакуется некоторое время - возврат на точку спавна)
- Личинка должна быть бессмертной
Скачать с RGhost
Внимание! Авторизуйтесь, что бы увидеть ссылки или скрытый текст.