К содержимому
RF DataСправочник данных
EN

Персонажи и существа

Классы

Дерево классов, опыт, ранги

Всего 228 Известно 62 Производное 155 Не используется 11

Обзор

Классы, опыт и ранги персонажа. Четыре серверные таблицы и клиентский Character.edf, в котором классы, ранги и опыт лежат отдельными блоками той же строкой и тем же номером.

Class.dat  ── m_strCh_Class[8] ──> Class.dat (следующая ступень)
   │          m_strLinkClassSkill[10] ──> ClassSkill.dat
   │          m_strDefaultItem[9] ──> таблицы предметов (по коду)
   └─ клиент: Character.edf, блок 0
Exp.dat    ── номер строки = уровень ──> Character.edf, блок 5
Grade.dat  ── (уровень, место в рейтинге) → ранг 0–7 ──> Character.edf, блок 1
PlayerCharacter.dat ── раса и пол ──> PlayerCharacter.edf

Как работает

  • Класс — две записи: строка Class.dat и строка блока 0 Character.edf с тем же номером. Клиентская выводится из серверной: коды следующих классов и предметов упаковываются, количество предметов — байт, бонусы групп скиллов в клиент не идут, флаги собираются в маску.
  • Номер строки — ключ: он хранится в БД персонажей (текущий класс по коду, история — по номеру). Строки нельзя вставлять в середину и переставлять; строки 45 (BSB0) и 49 (BSS2) зашиты в код сервера.
  • Дерево классов — граф по m_strCh_Class: коды той же расы, ступень на 1 больше, не больше 8 переходов на строку, история не глубже 3 смен. Смена класса — запрос 11/6, сброс — 11/24; награда за смену выдаётся один раз за ступень.
  • Флаги и бонусы класса действуют по всей истории классов персонажа (суммой или «любой из»).
  • Exp.dat: сервер читает только столбец Беллато, остальные столбцы и три столбца клиента копируются из него; строк ≥ 50, значения растут.
  • Grade.dat: строки одного уровня подряд по возрастанию m_fRanking, последняя — 1,0; рангов 8 на расу.
  • PlayerCharacter.dat и PlayerCharacter.edf — одна сущность из 5 строк (раса и пол).

Character.edf — 7 блоков, все производные от серверных таблиц (классы, ранги, монстры, ?, потолки мастерства, опыт, анимусы); кроме блока 3 (Action), источник которого в сводах не найден. Блоки монстров и анимусов описаны в своих доменах, здесь только повторены как часть файла.

Файлы категории

6 в реестре
ФайлСторонаФорматУровеньКорпусаЗаписьСводПримечание
script\Class.datсерверdatготов к полномуAoP ✓, GU ✓, Sirin ✓AoP 2256, GU 2256, Sirin 2256classes.md, skills.mdclasses.md §2
script\Exp.datсерверdatготов к полномуAoP ✓, GU ✓, Sirin ✓AoP 260, GU 260, Sirin 260classes.mdclasses.md §6.1
script\Grade.datсерверdatготов к полномуAoP ✓, GU ✓, Sirin ✓AoP 76, GU 76, Sirin 76classes.mdclasses.md §7
script\PlayerCharacter.datсерверdatготов к полномуAoP ✓, GU ✓, Sirin ✓AoP 168, GU 168, Sirin 168classes.mdclasses.md §8
DataTable\Character.edfклиентedfпроизводныйAoP ✓, GU ✓, Sirin ✓AoP 7 секц.: 1532/112/224/48/46/24/112, GU 7…classes.md, monsters.md, skills.md, animus.mdПроизводный из: Class.dat, Grade.dat, MonsterCharacter.dat, *MasteryLimit.dat, Exp.dat, таблицы анимусов. 7 блоков: классы, ранги, монстры, действия, потолки мастерства, опыт, анимусы (classes.md §9, monsters.md §7.1)
DataTable\PlayerCharacter.edfклиентedfпроизводныйAoP ✓, GU ✓, Sirin ✓AoP 72, GU 72, Sirin 72classes.mdПроизводный из: PlayerCharacter.dat.

«готов к полному» — формат разобран и поля описаны; «производный» — файл собирается из другого; «непрозрачный» — формат известен не до конца; «отложен» и «вне рамок» — файл студией не редактируется.

Разделы категории

Файлы категории разбиты на группы; у каждой группы и подгруппы своя страница с полями только её файлов.

Классы

script\Class.dat

Всего 34 Известно 34 Производное 0 Не используется 0

Опыт и ранги

script\Exp.dat; script\Grade.dat

Всего 9 Известно 7 Производное 0 Не используется 2

Неиспользуемые параметры

Поля, которые не читает ни сервер, ни клиент. Для каждого — почему так решено и где это установлено. Редактор сохраняет их байты как есть.

DataTable\Character.edf клиентский файл

Запись: ClassLimit (Class)

Смещ.ПолеПочему не используетсяДанные
+0x002--11_u8--
выравнивание перед u32 номера
classes.md §9.5; не используется: байты выравнивания (после байтового поля до поля с кратного 4 смещения; у безымянных байтов нет чтений в коде MSVC, кроме копирования записи целиком; исходник 2004 citemdatamgr.h); в AoP везде 0
всегда 0
+0x003--12_u8--
выравнивание перед u32 номера
classes.md §9.5; не используется: байты выравнивания (после байтового поля до поля с кратного 4 смещения; у безымянных байтов нет чтений в коде MSVC, кроме копирования записи целиком; исходник 2004 citemdatamgr.h); в AoP везде 0
всегда 0
+0x1F5--5_u8--
выравнивание перед u32 флагов
classes.md §9.5; не используется: байты выравнивания (после байтового поля до поля с кратного 4 смещения; у безымянных байтов нет чтений в коде MSVC, кроме копирования записи целиком; исходник 2004 citemdatamgr.h); в AoP везде 0
всегда 0
+0x1F6--6_u8--
выравнивание перед u32 флагов
classes.md §9.5; не используется: байты выравнивания (после байтового поля до поля с кратного 4 смещения; у безымянных байтов нет чтений в коде MSVC, кроме копирования записи целиком; исходник 2004 citemdatamgr.h); в AoP везде 0
всегда 0
+0x1F7--7_u8--
выравнивание перед u32 флагов
classes.md §9.5; не используется: байты выравнивания (после байтового поля до поля с кратного 4 смещения; у безымянных байтов нет чтений в коде MSVC, кроме копирования записи целиком; исходник 2004 citemdatamgr.h); в AoP везде 0
всегда 0

Запись: Rank

Смещ.ПолеПочему не используетсяДанные
+0x061--1_u8--
выравнивание перед u32 иконок
classes.md §9.5; не используется: байты выравнивания (после байтового поля до поля с кратного 4 смещения; у безымянных байтов нет чтений в коде MSVC, кроме копирования записи целиком; исходник 2004 citemdatamgr.h); в AoP везде 0
всегда 0
+0x062--2_u8--
выравнивание перед u32 иконок
classes.md §9.5; не используется: байты выравнивания (после байтового поля до поля с кратного 4 смещения; у безымянных байтов нет чтений в коде MSVC, кроме копирования записи целиком; исходник 2004 citemdatamgr.h); в AoP везде 0
всегда 0
+0x063--3_u8--
выравнивание перед u32 иконок
classes.md §9.5; не используется: байты выравнивания (после байтового поля до поля с кратного 4 смещения; у безымянных байтов нет чтений в коде MSVC, кроме копирования записи целиком; исходник 2004 citemdatamgr.h); в AoP везде 0
всегда 0

DataTable\PlayerCharacter.edf клиентский файл

Смещ.ПолеПочему не используетсяДанные
+0x02A(2 байта) ×2
выравнивание перед float
classes.md §9.5; не используется: байты выравнивания (после байтового поля до поля с кратного 4 смещения; у безымянных байтов нет чтений в коде MSVC, кроме копирования записи целиком; исходник 2004 citemdatamgr.h); в AoP везде 0
всегда 0 / 0

script\Exp.dat серверный файл

Смещ.ПолеПочему не используетсяДанные
+0x084m_strCora
не используется
classes.md §9.5: таблицу опыта в коде упоминают только 1400C6F30 (читает +0x44), загрузчик и конструктор/деструктор g_Main (поиск всех ссылок на g_Main+0x388EB0D0/1797DE440 в dzs.txt); записи не сохраняются в объекты; клиент файл не получает
66 знач.; чаще 0 (2%)
+0x0C4m_strAccretia
не используется
classes.md §9.5: таблицу опыта в коде упоминают только 1400C6F30 (читает +0x44), загрузчик и конструктор/деструктор g_Main (поиск всех ссылок на g_Main+0x388EB0D0/1797DE440 в dzs.txt); записи не сохраняются в объекты; клиент файл не получает
66 знач.; чаще 0 (2%)
RF Online — товарный знак своих владельцев. Справочник собран из исследований для разработки контента. Собрано 01.11.2026 · каталог полей от 29.10.2026 · Adagio UI 0.5.0