Проблема с отображением времени действия баффов и дублированием иконок в Mobius 520 ( Classic Mode) (0 секунд + 1 иконка вместо нескольких)

  • Автор темы Автор темы Micky
  • Дата начала Дата начала

Micky

Путник
Участник
Сообщения
39
Розыгрыши
0
Решения
1
Репутация
0
Реакции
5
Баллы
95
1765629883298.webp 1765629826278.webp
Пытаюсь решить две связанные проблемы на сервере основанном на L2J Mobius 520( Classic Mode) но все попытки неудачны.
## Описание проблем
### 1. Отображение времени баффов как 0 секунд
На сервере активируются баффы (например, Acumen ID:1085, Wind Walk ID:1204), но в клиенте вместо реального времени действия они всегда показывают **0 секунд**. При этом баффы работают корректно (действуют нужное количество времени и снимаются автоматически) — только визуальное отображение времени сломано.
### 2. Только одна иконка баффа вместо нескольких
Когда активируется несколько разных баффов (например, Acumen + Wind Walk, или два баффа Acumen с разной длительностью), в клиенте отображается **только одна иконка** (чаще всего последнего активированного баффа). Остальные баффы работают на сервере (логи подтверждают), но не отображаются в интерфейсе.
## Технические детали сервера и клиента
- **Сервер**: L2J Mobius (Classic Mode), ServerConfig.SERVER_LIST_TYPE = 0x400 (классический режим включён)
- **Клиент**: Lineage 2 Classic (Тайваньская версия), конфиг L2.INI настроен на отображение времени
- **Проверенные баффы**: Acumen (1085), Wind Walk (1204), а также комбинации разных баффов и дублированные баффы с разной длительностью

## Что уже сделано для решения
### 1. Адаптация серверных пакетов (все ключевые файлы исправлены)
- **AbnormalStatusUpdate.java**:
- Включено преобразование времени в секунды (без перевода в миллисекунды)
- Убраны флаги маркера времени (직접 writeInt, без дополнительных байтов)
- Фильтрация баффов исправлена для классического режима (все активные баффы добавляются в список)
- **PartySpelled.java**:
- Синхронизировано время с AbnormalStatusUpdate (секунды, writeInt)
- Исправлена коллекция баффов для групповых игроков
- **ExAbnormalStatusUpdateFromTarget.java**:
- Адаптировано время для пакета наблюдателя (цель игрока)
- Фиксирована отправка пакета самому игроку (при таргете на себя)

### 2. Настройка клиента
- В L2.INI добавлены все необходимые ключи:
```ini
[BuffTimeConfig]
ShowBuffTime=1
ShowDebuffTime=1
ShowClassicBuffTime=1
UseClassicBuffTimeFormat=1
BuffTimeDisplay=1

### 3. Логи сервера (подтверждают корректную отправку данных)
Все логи показывают, что сервер отправляет **все активные баффы** с правильным временем в секундах:
[Classic Mode Status Debug] Classic Mode: true, Total Active Statuses: 4
[Classic Mode Status Debug] Status ID: 1085, Skill Name: Acumen, In Use: true, Visible: true, Remaining Time: 799 seconds
[Classic Mode Status Debug] Status ID: 1204, Skill Name: Wind Walk, In Use: true, Visible: true, Remaining Time: 804 seconds
[Classic Mode Status Debug] Status ID: 1085, Skill Name: Acumen, In Use: true, Visible: true, Remaining Time: 1199 seconds
[Classic Mode Status Debug] Status ID: 1204, Skill Name: Wind Walk, In Use: true, Visible: true, Remaining Time: 1200 seconds
[Classic Mode Time Debug] Final Sent Statuses: 4
[Classic Mode Time Debug] Status ID: 1085, Sent Time: 799 (Unit: seconds, integer value)
[Classic Mode Time Debug] Status ID: 1204, Sent Time: 804 (Unit: seconds, integer value)
[Classic Mode Time Debug] Status ID: 1085, Sent Time: 1199 (Unit: seconds, integer value)
[Classic Mode Time Debug] Status ID: 1204, Sent Time: 1200 (Unit: seconds, integer value)
```
- Количество отправленных баффов совпадает с активными (4 в примере выше)
- Время передаётся без маркеров (соответствует протоколу Classic)
- Пакеты отправляются игроку, его призыву и группе

## Что ещё проверял
- Замена异常类型ID на универсальное значение 1 (чтобы клиент точно распознал баффы)
- Тестирование баффов разной длительности (30 секунд, 5 минут, 20 минут)
- Смена протокола классического режима (0x200, 0x400, 0x800)
- Проверка на дублирование ID баффов (все баффы имеют уникальные ID)
- Отключение фильтрации иконок в клиенте (если такие настройки есть)

## Проблемы остаются
1. Время всех баффов отображается как 0 секунд (независимо от длительности)
2. При активации нескольких баффов — в клиенте показывается только одна иконка (остальные работают, но не отображаются)
Возможно, я вообще выбрал неверное направление решения!!!

Спасибо
 
Последнее редактирование:
Когда вижу мобиуса, вспоминаю сразу же фаната MrKirill1232
 
Мамочки, я стал чатом гпт хотя єто китаец пишет - тогда дикпиком.

Короч там по пакетке нужно смотреть.
Я попытался на 542 ессенс переключить на классик - у меня критов только на новую систему квестов было 4 штуки, а потом еще и скиллы не отображались и не использовались. Так что - нужно пакетку пересматривать для классик версии.
 
Последнее редактирование модератором:
По п.2 я честно говоря не понял - это как вообще? Ну про то что может висеть несколько баффов, как я понял с одинаковым абнормал тайпом?
Не, есть конечно такая вещь как subordination_abnormal, но к баффам она все же не относится и вобще это другое.
 
По п.2 я честно говоря не понял - это как вообще? Ну про то что может висеть несколько баффов, как я понял с одинаковым абнормал тайпом?
Не, есть конечно такая вещь как subordination_abnormal, но к баффам она все же не относится и вобще это другое.
subordination_abnormal - У мобиуса, про такое не знаю (я про то что у него на репо, а в целом у него есть нормальные реализации, где в закрамах).

В целом пакетка Классика - имеет "большое" отличие от Ессенс/ГОД, все дело именно в ней.
Классик остался на уровне обновы 7 печатей, и его попросту продолжают апать без измнений в UI и многих систем (бабло приносит, вот и ладно, продают же итемы +15 - и ладно, так сойдет).
 
subordination_abnormal - У мобиуса, про такое не знаю (я про то что у него на репо, а в целом у него есть нормальные реализации, где в закрамах).
ну это очень старая вещь - еще со времен первых ГоДов, если не ошибаюсь.
юзается в основном во всяких дотах (яды, кровотечения и т.д.) и позволяет вешать на цель к примеру несколько ядов одновременно из разных источников, несмотря на то что эти яды имеют один и тот же абнормал тайп и по логике должны заменять друг друга.
 
ну это очень старая вещь - еще со времен первых ГоДов, если не ошибаюсь.
юзается в основном во всяких дотах (яды, кровотечения и т.д.) и позволяет вешать на цель к примеру несколько ядов одновременно из разных источников, несмотря на то что эти яды имеют один и тот же абнормал тайп и по логике должны заменять друг друга.
Ок, я ошибся:
<subordinationAbnormalType>POISON</subordinationAbnormalType> - есть.
Условно его не используют, банально в скилах которых когда то кто то напарсил, только там и осталось у Мобиуса.
 
По п.2 я честно говоря не понял - это как вообще? Ну про то что может висеть несколько баффов, как я понял с одинаковым абнормал тайпом?
Не, есть конечно такая вещь как subordination_abnormal, но к баффам она все же не относится и вобще это другое.
В классическом режиме при применении нескольких баффов отображается только одна иконка баффа. Даже если вы примените 3 или больше баффов, будет видна только одна иконка. При снятии текущей иконки баффа появится следующая.
 
В essence посылается 4 байта для уровня скилла (уровень и саб-лвл), а в классике 2 байта - только уровень (writeH). Исправьте это во всех пакетах абнормалов:
AbnormalStatusUpdate,
ExAbnormalStatusUpdateFromTarget,
PartySpelled,
ExOlympiadSpelledInfo
 
В essence посылается 4 байта для уровня скилла (уровень и саб-лвл), а в классике 2 байта - только уровень (writeH). Исправьте это во всех пакетах абнормалов:
AbnormalStatusUpdate,
ExAbnormalStatusUpdateFromTarget,
PartySpelled,
ExOlympiadSpelledInfo
Хорошо, спасибо за совет. Я попробую.
 
Хорошо, спасибо за совет. Я попробую.
Regarding this question, were you able to resolve it? If so, what did you do to fix it? Did you follow the advice of the partner above?

I'm having a similar, if not the same, problem. Some buffers are triggered, others aren't, and most of them in Essence have become passive in protocol 520 (Rose).

Many of them have common names in their source, but when buffed, they invoke another buffer with different statuses.

On the other hand, some only appear, as the comrade mentioned, only informing in the chat, logs, and status that they were buffed, but they don't appear anywhere. For example, even nobles 1324 shows "you are buffed" in the chat. The quotation marks would be the name of the buffer, which isn't shown anywhere.
 
Назад
Сверху Снизу