Огнестрел: таблица стволов с вики и границы реверса
- weapons.csv: 23 ствола с уроном, множителем в голову, темпом, магазином, перезарядкой, разбросом (конус прицела), отдачей, типом патрона, верстаком и ценами исследования. Источники - официальная вики и community-вики, расхождения помечены в колонке source. Не хватает цены (2 из 23) и дальности (18 из 23). Границы реверса ремейка, чтобы не тратить на них время снова: - классы в game.jar помечены DE AD C0 DE и зашифрованы своим форматом, не однобайтовым XOR как ассеты; единственный незашифрованный класс - точка входа net/minecraft/client/main/RustexMain, в ней видны два статических дешифратора строк (qnbt.super и vyuhke.super), а сами классы зашифрованы; - REA не берет .class как цель (только архивы), Ghidra 12.1.4 стоит в D:\ghidra-tools и через analyzeHeadless импортирует распакованные классы; - главное: урона, отдачи и спрея огнестрела в клиенте нет вообще, это серверные данные. Клиент знает только магазин, тип патрона, зум ADS, прочность и reach. REA даст формулы, а не числа, поэтому числа берём с вики. Инструменты в tools/: inspect-constants.py (разбор constant pool класса) и find-decryptor.py (поиск маркера и слов дешифратора). План дополнен этими находками.
This commit is contained in:
@@ -548,7 +548,9 @@ heavy plate helmet 90 % пули, hazmat 30/30; по футболке источ
|
||||
|
||||
**Полный список предметов с характеристиками** — в
|
||||
`rsx-protocol/src/main/resources/items/items.csv` (218 шт, выгружено из ремейка,
|
||||
п. 1.6). Названия и описания — в `assets/rustex/data/item-texts.json` (543 шт).
|
||||
п. 1.6). Названия и описания — в `rsx-protocol/src/main/resources/items/item-texts.json`
|
||||
(543 шт). Огнестрел — в `weapons.csv` (23 ствола: урон, темп, магазин, разброс,
|
||||
отдача, патрон, верстак, цены исследования).
|
||||
|
||||
### 1.8 Строительные объекты и сокеты
|
||||
|
||||
@@ -984,8 +986,10 @@ rsx-client\scripts\run-game.ps1 # клиент
|
||||
4. **Шаг D** — конфиг, мир 4000×4000 один раз, барьер.
|
||||
5. **Шаг E** — транспорт на NIO.
|
||||
6. **Шаг F** — DistantView.
|
||||
7. **REA** — найти в коде ремейка таблицу оружия по `rweaponid` (урон, отдача, спрей,
|
||||
темп) и шифр конфигов `.obj/.rrs/.nbt`; до этого — цифры с официальной вики.
|
||||
7. **REA** — код ремейка прочитать нельзя без взлома загрузчика (классы помечены
|
||||
`DEADC0DE`), и урон/отдача/спрей огнестрела в клиенте всё равно серверные.
|
||||
Числа взяты с вики (`weapons.csv`). Если формулы понадобятся — импортировать
|
||||
распакованные классы в Ghidra headless и искать дешифратор.
|
||||
|
||||
### 6.4 Мелочи, которые легко упустить
|
||||
|
||||
@@ -1000,6 +1004,20 @@ rsx-client\scripts\run-game.ps1 # клиент
|
||||
- **База предметов** — `rsx-protocol/src/main/resources/items/items.csv` (218 шт,
|
||||
из `models/stacks.json`), описания — `assets/rustex/data/item-texts.json` (543 шт),
|
||||
звуки — `rsx-protocol/src/main/resources/items/sounds.csv` (505 событий).
|
||||
- **Огнестрел** — `rsx-protocol/src/main/resources/items/weapons.csv` (23 ствола):
|
||||
урон, множитель в голову, темп, магазин, перезарядка, разброс (конус прицела),
|
||||
отдача, тип патрона, верстак, цены исследования. Собрано с официальной вики и
|
||||
community-вики; расхождения помечены в колонке `source`.
|
||||
- ⚠️ **Код ремейка прочитать нельзя без взлома.** Классы в `game.jar` помечены
|
||||
`DE AD C0 DE` и зашифрованы своим форматом (не однобайтовым XOR, как ассеты).
|
||||
Единственный незашифрованный класс — точка входа
|
||||
`net/minecraft/client/main/RustexMain`; в ней видны два статических дешифратора
|
||||
строк (`qnbt.super`, `vyuhke.super`), а сами классы зашифрованы. REA берёт
|
||||
архивы, но не `.class`; Ghidra 12.1.4 стоит (`D:\ghidra-tools`), и через
|
||||
`analyzeHeadless` можно импортировать распакованные классы.
|
||||
**И важнее:** урон, отдача и спрей огнестрела в клиенте **отсутствуют** — это
|
||||
серверные данные, в клиенте есть только магазин, тип патрона, зум ADS,
|
||||
прочность и reach. То есть REA даст формулы, а не числа. Числа — из вики.
|
||||
- Пути: `G:\RustNotMC` (репозиторий), `G:\decompiled-rustex` (референс, только читать),
|
||||
`G:\rustexremake` (ремейк: `gamefiles\res`, `gamefiles\game.jar`, `working_dir`).
|
||||
- ⚠️ **`G:\decompiled-rustex` — НЕ источник фактов.** Он копиял community-вику 2017–2020
|
||||
|
||||
Reference in New Issue
Block a user