- Статус
- Оффлайн
- Регистрация
- 13 Фев 2026
- Сообщения
- 211
- Реакции
- 5
Народ, кто сейчас ковыряет классику 4Story, решил поделиться своим прогрессом по 3.3 версии. Давно хотел залезть в этот «зоопарк» с исходниками, которые по факту являются той самой 3.8. Сразу скажу — код там лютая помойка, поэтому решил перебирать всё с нуля, без цели поднимать очередной сервер, чисто ради спортивного интереса и фикса багов.
Что уже удалось провернуть по технической части:
Это только начало, дел там ещё непочатый край. В ближайшее время оформлю репозиторий и скину ссылку.
Братва, если кто-то еще плотно сидит на этом движке или сталкивался с критическими уязвимостями в логике пакетов — отпишитесь в треде. Интересно собрать базу известных косяков, чтобы не наступать на те же грабли при рефакторинге. Кто что думает по поводу такого подхода, может есть советы по оптимизации обмена данными? Делитесь опытом.
Что уже удалось провернуть по технической части:
- Оптимизация сервисов: Выпилил виндовые службы, перевел всё на консольные приложения.
- Конфигурация: Убрал мусор из реестра, теперь всё читается через .ini файлы стандартным GetPrivateProfileString.
- Среда: Весь стек (TClient, GMTool, Happy, TLoader, TLauncher) перенесен и успешно компилируется под Visual Studio 2022.
- Отладка: Накатил дебаг-инструментарий для клиента и всех сервисов, чтобы не гадать, где именно вылетает.
- Сеть и пакеты: Полностью переработал менеджер пакетов. Раньше любая кривая пачка вешала весь сервис, теперь система отрабатывает стабильнее. Также пофиксил давний баг с сетевым соединением, когда при совпадении IP клиента и сервера всё улетало в ошибку связи.
- Логирование и БД: Добавил нормальное логирование всех процессов и восстановил недостающие таблицы/поля в базе.
- Безопасность сессий: Прикрутил корректный логаут при закрытии сервиса, чтобы не оставалось «висяков» в базе.
Это только начало, дел там ещё непочатый край. В ближайшее время оформлю репозиторий и скину ссылку.
Братва, если кто-то еще плотно сидит на этом движке или сталкивался с критическими уязвимостями в логике пакетов — отпишитесь в треде. Интересно собрать базу известных косяков, чтобы не наступать на те же грабли при рефакторинге. Кто что думает по поводу такого подхода, может есть советы по оптимизации обмена данными? Делитесь опытом.