| Меню сайта |
|
 |
| Категории раздела |
|
 |
| Наш опрос |
|
 |
| GSC НОВОСТИ |
|
 |
| Статистика |
|
 |
|
Как сделать Wallhack для S.T.A.L.K.E.R. | | ================================================== =========================================== Для начала нам понадобится: DirectX SDK: _http://microsoft.ru/ Логгер текстур: _http://depositfiles.com/files/w726s1one Direct3D StarterKit v3.0b (by Azorbix): _http://depositfiles.com/files/sq8divdwg Microsoft Visual Studio: _http://microsoft.ru/ Немного знаний C++, D3D - _Google_ ================================================== =========================================== Настройка D3D StarterKit: Первым делом устанавливаем Microsoft Visual Studio и DirectX SDK Запускаем программу и идём в Tools->Options->Projects and Solutions>VC++ Directories Во вкладке Show directories for: Выбираем Include files и добавляем путь к нашему DirectX SD K к папке \Include Делаем тоже самое для Library Files (..\Lib\x86), Executable files(..\) Всё, теперь мы сможем откомпилить наш Direct3D StarterKit v3.0b ================================================== =========================================== Настройка Injector'а: В main.cpp нужно изменить только 1 строчку: Код: #define APP_EXE "target_application.exe" Где target_application.exe прописываем название вашей игры Например: xrEngine.exe, FarCry2.exe, iw3mp.exe. Важно! Название .dll файла и инжектора должны быть одинаковыми. ================================================== =========================================== Как сделать обычный валлхак 1. Ищем текстуры которые нам нужны используя логгер текстур. 2. Прописываем их в нашем Direct3D StarterKit v3.0b в d3d9dev.cpp в начале файла Пример: Код: #define MyWallhack ((NumVertices == xx && primCount == xx) || (NumVertices == xx && primCount == xx)) bool bWallHack = false; 3. Теперь идём в DrawIndexedPrimitive и добавляем: Код: if (bWallHack) { if (MyWallhack) { DWORD dwOldZEnable; m_pD3Ddev->GetRenderState(D3DRS_ZENABLE,&dwOldZEnable); m_pD3Ddev->SetRenderState(D3DRS_ZENABLE,D3DZB_FALSE); m_pD3Ddev->DrawIndexedPrimitive(Type,BaseVertexIndex,MinVertexIndex,NumVertices,startIndex,primCount); m_pD3Ddev->SetRenderState(D3DRS_ZENABLE,dwOldZEnable); } } 4. Идём в EndScene и ставим валлхак на кнопку включить\выключить: Код: if(GetAsyncKeyState( VK_NUMPAD1 ) &1 ) bWallHack = !bWallHack; 5. Компилим, инжектим, заходим в игру жмём NUMPAD 1 и видим результат. ================================================== =========================================== Как убрать туман в игре: Тут всё ещё проще. С верху файла добавляем: Код: Идём в DrawIndexedPrimitive и добавляем такую строчку: if(bFog) { m_pD3Ddev->SetRenderState( D3DRS_FOGENABLE , false ); } Теперь в EndScene Код: if(GetAsyncKeyState( VK_NUMPAD2 ) &1 ) bFog = !bFog; Всё готово! При нажатии в игре на кнопку NUMPAD2, опция будет включатся и выключатся. credits: _www.aden-territory.com and qwe Теперь собственно то, что нужно сделать, что бы Wallhack работал желаемым образом: В самом начале кода d3d9dev.cpp вставляем:
Далее, идем в SetStreamSource и прописываем там перед return m_pD3Ddev->SetStreamSource:
Теперь вместо строчки вначале кода #define MyWallhack ((NumVertices == xx && primCount == xx) || (NumVertices == xx && primCount == xx)) вставляем строчку:
Вот и всё! Вы будете видеть других игроков сквозь стены! Теперь о том, как сделать из Wallhack'a Chams: В начале d3d9dev.cpp прописываем:
Далее после всех bool'ов вставляем этот код:
Код:LPDIRECT3DTEXTURE9 Pink; const BYTE bPink[58] = { 0x42, 0x4D, 0x3A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x00, 0xFF, 0x00 }; LPDIRECT3DTEXTURE9 Blue; const BYTE bBlue[60] = { 0x42, 0x4D, 0x3C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x0B, 0x00, 0x00, 0x12, 0x0B, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00 }; Можно использовать и другие цвета, на ваш вкус, байты которых можно найти в гугле, в частности, они есть здесь: http://ghbsys.net/ghb/index.php?showtop … e=threaded Идём в BeginScene() и вставляем такие строки перед return m_pD3Ddev->BeginScene(); :
Теперь идем в DrawIndexedPrimitive, к нашему волхаку и после строчки m_pD3Ddev->SetRenderState(D3DRS_ZENABLE,D3DZB_FALSE); вставляем такую:
А после m_pD3Ddev->SetRenderState(D3DRS_ZENABLE,dwOldZEnable2); такую:
Вот собственно и всё! Chams готов!
xrEngine.exe
dll - это либа, которая компилится из D3D Starterkit'a(TatniumD3D.vcproj)
Инжектор - это прога, которая инжектит либу в игру(main.cpp/TatniumInjector.vcproj)
В общем у тебя должно быть откомпилино: 1 либа, которую называешь TatniumD3D.dll и 1 екзешник, который обзываешь TatniumD3D.exe, ложешь их рядом(в одну папку пох куда) и запускаешь TatniumD3D.exe, нажимаешь ОК, запускаешь игру, нажимаешь 1 на дополнительной(цифровой) клавиатуре, только не забудь включить NumLock. |