- Статус
- Оффлайн
- Регистрация
- 13 Фев 2026
- Сообщения
- 507
- Реакции
- 13
Здарова, олды. Generals Zero Hour все еще подает признаки жизни, и после выхода патча 1.05 я решил тряхнуть стариной. Просидев в этой игре больше двадцати лет, я не мог пройти мимо свежего апдейта и не покопаться в кишках, тем более что подвезли новые сурсы.
Движок у ZH специфический. Это классический детерминированный нетворкинг: каждый чих выполняется на конкретном «исполняемом кадре» (executing frame), и состояние игры должно быть идентичным у всех участников. Даже рандом тут вычисляется синхронно, чтобы не гонять лишние данные по сети. Раз в X кадров летит проверка CRC — если хэши не сошлись, ловите мисматч.
Ниже выкатываю базу по офсетам для версии 1.05. Это патчи байтов для тех, кто хочет собрать свой трейнер или просто разобраться в логике.
MAPHACK (Shroud):
Открывает карту и убирает туман войны.
STEALTH HACK:
Позволяет видеть невидимок.
RADAR HACK:
Включает радар без построения соответствующих зданий.
INSTANT SPECIAL POWER (Single Player Only):
Мгновенные абилки. В мультиплеере 1.05 сейчас не воркает, а в сингле против ботов — лютая имба (особенно против ГЛА с их спамом пехоты), но может просаживать FPS.
Также накопал в старых архивах исходники Maptib для Tiberium Wars, если кому интересно — маякуйте. По поводу контроля в мультиплеере: старые методы прикрыли, но лазейки в движке SAGE никуда не делись, вопрос лишь в желании их ковырять.
Интересно, как теперь GenTool будет реагировать на прямые патчи памяти в 1.05, учитывая открытый доступ к структурам.
Движок у ZH специфический. Это классический детерминированный нетворкинг: каждый чих выполняется на конкретном «исполняемом кадре» (executing frame), и состояние игры должно быть идентичным у всех участников. Даже рандом тут вычисляется синхронно, чтобы не гонять лишние данные по сети. Раз в X кадров летит проверка CRC — если хэши не сошлись, ловите мисматч.
Ниже выкатываю базу по офсетам для версии 1.05. Это патчи байтов для тех, кто хочет собрать свой трейнер или просто разобраться в логике.
Пожалуйста, авторизуйтесь для просмотра ссылки.
Пожалуйста, авторизуйтесь для просмотра ссылки.
MAPHACK (Shroud):
Открывает карту и убирает туман войны.
Код:
game.dat+6f511 - 31 DB 90 90 (Drawable.cpp - setFullyObscuredByShroud)
game.dat+37A57E - EB 04 (W3DRadar.cpp - renderObjectList)
STEALTH HACK:
Позволяет видеть невидимок.
Код:
game.dat+72E5B - 31 FF 90 90 (Drawable.cpp - setStealthLook)
game.dat+37A52D - 90 90 90 90 90 90 (W3DRadar.cpp - isTemporarilyHidden)
RADAR HACK:
Включает радар без построения соответствующих зданий.
Код:
game.dat+56C00 - 31 C0 40 C3 90 (Player.cpp - hasRadar)
INSTANT SPECIAL POWER (Single Player Only):
Мгновенные абилки. В мультиплеере 1.05 сейчас не воркает, а в сингле против ботов — лютая имба (особенно против ГЛА с их спамом пехоты), но может просаживать FPS.
Код:
game.dat+282EC0 - B8 01 00 00 00 C3 (SpecialPowerModule.cpp - isReady)
1. Офсеты актуальны строго для 1.05. Если сообщество пересоберет игру под кастомные сервера (вместо GameSpy/GenTool), адреса улетят.
2. Сурс-код самого мапхака базируется на логике 1.04, но адаптирован под новые реалии.
3. По поводу детектов: Windows Defender может ругаться на скомпиленные CE-трейнеры. Это норма, лучше собирайте сами из скриптов.
2. Сурс-код самого мапхака базируется на логике 1.04, но адаптирован под новые реалии.
3. По поводу детектов: Windows Defender может ругаться на скомпиленные CE-трейнеры. Это норма, лучше собирайте сами из скриптов.
Также накопал в старых архивах исходники Maptib для Tiberium Wars, если кому интересно — маякуйте. По поводу контроля в мультиплеере: старые методы прикрыли, но лазейки в движке SAGE никуда не делись, вопрос лишь в желании их ковырять.
Интересно, как теперь GenTool будет реагировать на прямые патчи памяти в 1.05, учитывая открытый доступ к структурам.