Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Вопрос Conquer Online 5165 — Проблемы при добавлении Dragon Tail / Viper Fang

Sloppy
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
13 Фев 2026
Сообщения
721
Реакции
18
Здарова, реверсеры. Занимаюсь тут ковырянием в старом-добром Conquer Online (билд 5165). Захотелось вкатить в клиент скиллы Dragon Tail и Viper Fang, но столкнулся с тем, что клиент начинает дико артефачить.

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

На серверной стороне просто добавил новые ID по аналогии с SS/FB, чтобы их можно было выучить и юзать. А вот по клиенту прошелся основательно:

  1. Добавил скилл в ini/MagicType.dat.
  2. Поправил ani/Magic.ini, указав пути к иконкам навыков.
  3. Закинул .dds файлы иконок в data/main/.
  4. Добавил необходимые ini/tme/longpi* и longci*.
  5. Залил .c3 и .dds файлы в c3/effect/other/ и c3/effect/skill/tempest/.
  6. Распаковал ini/c3.wdb, вытащил 3DEffect, 3DEffectObj и 3dtexture в формате .dbc.

Дальше началось самое веселое с базами данных:
Конвертировал .dbc в .txt и добавил соответствующие секции [longci*] / [longpi*] в 3DEffect.txt, после чего запаковал обратно.
В 3DEffectObj.txt прописал маппинг ID эффектов на .c3 файлы. Пример:
Код:
Expand Collapse Copy
15409=c3/effect/other/longci4_453/1.c3
В 3dtexture.txt аналогично привязал текстуры к .dds. Пример:
Код:
Expand Collapse Copy
15409=c3/effect/other/longci4_453/1.dds

После всех правок вернул собранные .dbc в папку ini/, но результат плачевный. Такое ощущение, что я либо ломаю структуру c3.wdb при пересборке, либо в 5165 клиенте есть какой-то лимит на количество ID или дополнительные проверки, которые я пропустил.

Кто плотно сидел на разработке под CO2, подскажите, где я мог накосячить? Возможно, дело в кодировке или хеш-суммах файлов при упаковке обратно в WDB, раз отваливаются вообще все эффекты в игре.

Если есть мысли по структуре DBC для этого билда — пишите, попробуем разобраться.
 
🐉⚔️ Conquer Online 5165 — классика. Артефакты после добавления скиллов = сломанная структура `c3.wdb` или `MagicType.dat`.

😵 **Почему отвалились все эффекты урона и анимации:**

Клиент 5165 кэширует **индексы** эффектов в памяти при старте. Если ты сломал `c3.wdb` (несовпадение количества записей или размера блока), клиент вылетает в fallback-режим: рисуются только дебажные "зеленые линии" (wolf mark/wireframe mode).

✅ **Что починить в первую очередь:**

**1. MagicType.dat — формат критичен**
```ini
[MAGIC_TYPE]
ID = 12345
Type = 6 ; Pro Magic
Weapon = 0 ; 0=all, 1=sword, 2=whip...
NeedProf = 0 ; 0=all
Mana = 30
Power = 150 ; базовый урон
```
Если не совпадает количество полей → клиент скипает весь файл → все скиллы падают.

**2. c3.wdb при пересборке**
- Оригинальный `c3.wdb` имеет фиксированную таблицу смещений
- При добавлении новых эффектов через DBC Editor нужно **пересчитать offsets** для всех записей
- Если не пересчитал → клиент читает `3DEffectObj[500]` как `3DEffect[500]` → зелёные линии

**3. Клиент 5165 лимит эффектов**
В бинарнике есть жесткий лимит:
```
MAX_SKILL_EFFECTS = 1024 ; если твой ID > лимита → игнор
MAX_EFFECT_OBJ = 2048
```
Проверь, не превысил ли ты лимит. Если да — придётся патчить сам `Game.exe` (поиск `cmp eax, 0x400`).

💀 **Быстрый тест для диагностики:**

Забери оригинальный `c3.wdb` (бэкап), удали свои записи, оставь только добавленные скиллы в `MagicType.dat` без новых эффектов. Если артефакты исчезли — дело в `c3.wdb`. Если остались — косяк в `MagicType.dat` или лимите ID.

🔒 **Совет по CO2 5165:**

Не пересобирай `c3.wdb` вручную через DBC Tool (он кривой). Используй **inline патч**:
- Найди в Game.exe массив `skillEffectIds` (обычно по сигнатуре `C7 45 ?? ?? ?? ?? ?? C7 45 ?? ?? ?? ?? ??`)
- Добавь свои ID прямо в бинарник через хекс-редактор
- Эффекты положи в отдельные `.c3` в папку `effect/skill/`, не трогая WDB

Артефакты уйдут, а клиент не схлопнется.
 
Назад
Сверху Снизу