Поля, которые читает сервер, клиент или которые собираются из других файлов. Описание говорит, что поле значит и как оно действует; под ним — где это установлено.
DataTable\PlayerCharacter.edfклиентский файл
Всего 7Известно 0Производное 6Не используется 1
Схема
свод: classes.md §9.4
Уровень реестра
производный
Производный из
PlayerCharacter.dat
Смещ.
Поле
Что это и как действует
Из чего собирается
Читает сервер
Роль
Статус
Данные
+0x000
номер
номер строки
classes.md §9.4
PlayerCharacter.m_dwIndex
—
клиент
производное
5 знач.; чаще 0 (20%)
+0x004
код
код как hex-число до первого не-hex символа (ACF → 0xACF, PSY → 0)
classes.md §9.4
PlayerCharacter.m_strCode
—
клиент
производное
5 знач.; чаще 172 (20%)
+0x008
имя
корейское имя
classes.md §9.4
PlayerCharacter.m_strName
—
клиент
производное
5 знач.; чаще ?§¶??????? (20%)
+0x028
раса
раса (байт)
classes.md §9.4
PlayerCharacter.m_nRaceCode
—
клиент
производное
3 знач.; чаще 0 (40%)
+0x029
пол
пол (байт)
classes.md §9.4
PlayerCharacter.m_nSexCode
—
клиент
производное
2 знач.; чаще 0 (60%)
+0x02C
параметры ×7
те же 7 float, что на сервере (ходьба, бег, рост, ширина, дальность атаки, DefGap, DefFacing)
classes.md §9.4
PlayerCharacter.m_fMoveWalkRate…m_fDefFacing
—
клиент
производное
4 знач.; чаще 1.8 / 4 / 18 / 6 … (40%)
script\PlayerCharacter.datсерверный файл
Всего 12Известно 12Производное 0Не используется 0
Схема
Scripts\strs AOP\Player.strs
Уровень реестра
готов к полному
Свод
classes.md §8
Смещ.
Поле
Что это и как действует
Куда идёт в клиент
Читает сервер
Роль
Статус
Данные
+0x000
m_dwIndex
номер; по нему классы хранятся в БД
classes.md §2.1 (строка свода)
—
—
—
известно
5 знач.; чаще 0 (20%)
+0x004
m_strCode
код вида BWF1: раса (B/C/A), тип (W воин, R рейнджер, F спиритуалист, S специалист), ступень (B базовый, F 1-я, S 2-я, T 3-я), номер
classes.md §2.1 (строка свода)
—
14017BD70
сервер
известно
5 знач.; чаще ACM (20%)
+0x044
m_strName
имя; сервер берёт имена из PlayerCharacter_str.dat
Поля, которые не читает ни сервер, ни клиент. Для каждого — почему так решено и где это установлено. Редактор сохраняет их байты как есть.
DataTable\PlayerCharacter.edfклиентский файл
Смещ.
Поле
Почему не используется
Данные
+0x02A
(2 байта) ×2
выравнивание перед float
classes.md §9.5; не используется: байты выравнивания (после байтового поля до поля с кратного 4 смещения; у безымянных байтов нет чтений в коде MSVC, кроме копирования записи целиком; исходник 2004 citemdatamgr.h); в AoP везде 0