Перейти к содержимому
Zone of Games Forum

dirt999

Новички
  • Публикации

    1
  • Зарегистрирован

  • Посещение

Репутация

0 Нейтральная

О dirt999

  • Звание
    Новичок

Интересности

  • Конфигурация компьютера
    core2duo 6400 2+1024 radeon x1800xt
  1. Star Traders: Frontiers

    В общем намучился тоже с этим багом с постоянно выскакивающим пустым диалоговым окном и натравил DeepSeek на папку с игрой, описав ему проблему и вот что он выдал — Причина найдена — и она именно системная Это не перевод строки и не порча базы, а ключ, который мод перевёл вместе с подписью. Как устроено в игре: В exe лежит таблица имён типов событий (Block2.eventType): 0xABB590 CrewCombatEvent 0xABB5A0 WalkiEvent 0xABB5AC ShipCombatEvent 0xABB5BC Event ← мод заменил на «Событие» 0xABB5C4 CinemaEvent 0xABB5D0 EraEvent 0xABB5DC StartingEvent ... И единственный в игре SQL со строковым ключом — вот он: SELECT * FROM Block2 where EventType = "%s"; Цепочка, подтверждённая дизассемблером (адрес 0x41F7D8): mov ecx, 0ABB5BCh ; указатель на строку "Event" ... ; встроенный strcmp побайтово test eax, eax je 41F9A2h ; ветка «это обычное событие» То есть игра сравнивает строку с литералом Event и подставляет её же в SQL. Мод подменил этот литерал на Событие — и: strcmp(..., "Event") больше никогда не совпадает; SELECT * FROM Block2 WHERE EventType = "Событие" возвращает 0 строк (в базе значения остались английскими); игра получает событие без блоков и без диалога, но продолжает его проигрывать → пустое диалоговое окно, обновляемое по кругу, которое прерывает любые действия. Почему это бьёт именно по «обычным» событиям, а не по всем: у соседних имён (DialogEvent, MissionEvent, CinemaEvent, BlockGroupEvent…) переводчик их не тронул — они остались рабочими. Пострадал ровно один элемент таблицы — голое слово Event, потому что оно выглядело как обычная подпись. Что сделано В Star Traders\ru\strings.tsv удалена одна строка: S 00ABB5BC 41F7D9,45B701,63E35A,654061,7261FD,895889 D0EA7366EBC403FF Событие Это было исправлено на уже сломанном багом сейве, после запуска игры и загрузки этого сломаного сейва — баг пропал, наиграл уже больше 10 часов баг больше не вылезал. Пока автор не поправил русик можете самостоятельно удалить эту строчку из файла strings.tsv и играть. Удачи 0/

×