Товары и цены (сервер)
script\CashShop.dat; script\CashShop_str.dat
Всего 21 Известно 18 Производное 0 Не используется 3Предметы и экономика
Товары кэш-магазина и цены по странам
Кэш-магазин — товары за внутриигровую валюту кэша. Товар — одна строка в четырёх файлах с одним номером: серверные Script\CashShop.dat (товар, витрина, скидка) и CashShop_str.dat (цены по 9 странам, в GU — 11), клиентские DataTable\ItemCash.edf (та же запись с упакованными кодами) и <язык>\NDItemCash.edf (цена для языка клиента). Арендуемые товары дополнительно описаны в TimerItem.dat.
CashShop_str.dat — страну из WorldInfo.ini (NationCode); клиент берёт цену из NDItemCash.edf своей языковой папки. Клиент присылает цену в запросе покупки, и сервер отклоняет покупку, если цены не совпали: цена страны сервера обязана равняться цене в каждой языковой папке, которую раздают игрокам.m_nCsPrice в CashShop.dat и Price в ItemCash.edf на покупку не влияют.m_bIsCash = 1 на сервере и IsCash ≠ 0 в клиентском Item.edf; без клиентского флага товар не появится в окне.m_strCode — ключ связи CashShop.dat ↔ CashShop_str.dat: при повторе цену берёт первая найденная строка. Скрытые товары (m_bView = 0) проходят те же проверки загрузки; заглушка без цены ломает загрузку всего магазина.cash_discount*.ini, condistional_event.ini) — серверные ini, в редакторе пока не участвуют; на Sirin цена должна быть ≥ 1, а сумма процентных скидок < 100.ItemCash.edf равно числу строк NDItemCash.edf в каждой языковой папке.| Файл | Сторона | Формат | Уровень | Корпуса | Запись | Свод | Примечание |
|---|---|---|---|---|---|---|---|
script\CashShop.dat | сервер | dat | готов к полному | AoP ✓, GU ✓, Sirin ✓ | AoP 240, GU 240, Sirin 240 | cashshop.md | cashshop.md §2 |
script\CashShop_str.dat | сервер | dat | готов к полному | AoP ✓, GU ✓, Sirin ✓ | AoP 104, GU 112, Sirin 104 | cashshop.md | не имена, а цены по странам; cashshop.md §3 |
DataTable\<язык>\NDItemCash.edf | клиент | edf | производный | AoP ✓ (en-ph, ru-ru), GU ✓ (en-gb, ru-ru), Sirin ✓ (en-gb, ru-ru) | AoP 4, GU 4, Sirin 4 | cashshop.md | Производный из: CashShop_str.dat (m_nrus_Price). |
DataTable\itemcash.edf | клиент | edf | производный | AoP ✓, GU ✓, Sirin ✓ | AoP 64, GU 64, Sirin 64 | cashshop.md | Производный из: CashShop.dat. cashshop.md §5.1; в GU-клиенте рядом лежит ещё ItemCash.edf |
«готов к полному» — формат разобран и поля описаны; «производный» — файл собирается из другого; «непрозрачный» — формат известен не до конца; «отложен» и «вне рамок» — файл студией не редактируется.
Файлы категории разбиты на группы; у каждой группы и подгруппы своя страница с полями только её файлов.
script\CashShop.dat; script\CashShop_str.dat
Всего 21 Известно 18 Производное 0 Не используется 3DataTable\<язык>\NDItemCash.edf; DataTable\itemcash.edf
Всего 11 Известно 9 Производное 2 Не используется 0Поля, которые не читает ни сервер, ни клиент. Для каждого — почему так решено и где это установлено. Редактор сохраняет их байты как есть.
script\CashShop.dat серверный файл| Смещ. | Поле | Почему не используется | Данные |
|---|---|---|---|
+0x08C | m_strItemPart | в загрузке и покупке не читается cashshop.md §2: свод — «+0x8C | m_strItemPart (cstr64) | метки витрины ne/be/hi/gm/li | в загрузке и покупке не читается»; в клиентский файл не идёт (itemcash.edf сопоставлен, cashshop.md §5) | 10 знач.; чаще ne/0/0/0/0 (52%) |
script\CashShop_str.dat серверный файл| Смещ. | Поле | Почему не используется | Данные |
|---|---|---|---|
+0x068 | m_nspa_Price | цена страны (столбец GU); в AoP поля нет; студия пишет 0 cashshop.md §4: сервер берёт один столбец по NationCode, сервер проекта запускается только с RU → m_nrus_Price; лишние столбцы GU не используются [решение пользователя, 29.10.2026] | 97 знач.; чаще 0 (16%) |
+0x06C | m_ntha_Price | цена страны (столбец GU); в AoP поля нет; студия пишет 0 cashshop.md §4: сервер берёт один столбец по NationCode, сервер проекта запускается только с RU → m_nrus_Price; лишние столбцы GU не используются [решение пользователя, 29.10.2026] | 97 знач.; чаще 0 (16%) |