- 3
- 0
Объясните пожалуйста, как правильно хукать Present (D3D9 Methods Table: [17] Present) под internal cheat.
чтобы рисовать к примеру ImGui, в пресенте, но при это чтобы obs, bandicam и другие подобные приложения с записью экрана который используют d3d9(capture) рисовали чистый кадр на записе
upd.
решил проблему помог @Receiver, отдельная благодарность ему за это
вот сама логика -
SAMP vTable[17]: 0x651261E8 (это SAMP'овский враппер)
реальный Present в d3d9.dll: 0x71046130
логика
1. Игра вызывает vTable[17] → hkPresentSAMP (наш хук, ничего не рендерим)
2. OBS хук (если есть) захватывает чистый кадр
3. SAMP wrapper → вызывает реальный Present в d3d9.dll
4. hkPresentReal (наш хук) - рендерим оверлей
5. Настоящий Present — показываем кадр с оверлеем игроку
OBS захватывает на шаге 2, чит рендерит на шаге 4 - после OBS
чтобы рисовать к примеру ImGui, в пресенте, но при это чтобы obs, bandicam и другие подобные приложения с записью экрана который используют d3d9(capture) рисовали чистый кадр на записе
upd.
решил проблему помог @Receiver, отдельная благодарность ему за это
вот сама логика -
SAMP vTable[17]: 0x651261E8 (это SAMP'овский враппер)
реальный Present в d3d9.dll: 0x71046130
логика
1. Игра вызывает vTable[17] → hkPresentSAMP (наш хук, ничего не рендерим)
2. OBS хук (если есть) захватывает чистый кадр
3. SAMP wrapper → вызывает реальный Present в d3d9.dll
4. hkPresentReal (наш хук) - рендерим оверлей
5. Настоящий Present — показываем кадр с оверлеем игроку
OBS захватывает на шаге 2, чит рендерит на шаге 4 - после OBS
Последнее редактирование: