Данная статья для тех кому надоело искать рабочий читы для warface. В данной статьи речь пойдёт от том как создать свойwallhack для игры warface без знаний программирования.
Для начала нам понадобится:
DirectX SDK ( ищем сами или скачайте на сайте microsoft )
Логгер текстур: СКАЧАТЬ
Direct3D StarterKit v3.0b (by Azorbix): СКАЧАТЬMicrosoft Visual Studio 2010 ( ищем сами или скачайте на сайте microsoft )
Немного знаний 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 и видим результат.
================================================== ===========================================Как убрать туман в игре:
Тут всё ещё проще.
С верху файла добавляем:
Код:Код:bool bFog = false; Код: Идём в DrawIndexedPrimitive и добавляем такую строчку: if(bFog) { m_pD3Ddev->SetRenderState( D3DRS_FOGENABLE , false ); }Теперь в EndScene
Код:Код:if(GetAsyncKeyState( VK_NUMPAD2 ) &1 ) bFog = !bFog;unsigned int m_Stride;Код:unsigned int m_Stride;Далее, идем в SetStreamSource и прописываем там перед return m_pD3Ddev->SetStreamSource:
Код:Код:if(StreamNumber==0) m_Stride=Stride; Теперь вместо строчки вначале кода #define MyWallhack ((NumVertices == xx && primCount == xx) || (NumVertices == xx && primCount == xx))вставляем строчку:
Код:Код:#define MyWallhack ((m_Stride == 28))вставляем строчку:
Код:Код:#define MyWallhack ((m_Stride == 28))от и всё! Вы будете видеть других игроков сквозь стены!
Теперь о том, как сделать из Wallhack'a Chams:
В начале d3d9dev.cpp прописываем:Код:int a=1;Далее после всех 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Код:if (a==1) { D3DXCreateTextureFromFileInMemory(m_pD3Ddev,(LPCVOID)&bPink,58,&Pink); D3DXCreateTextureFromFileInMemory(m_pD3Ddev,(LPCVOID)&bBlue,60,&Blue); a=0; }Теперь идем в DrawIndexedPrimitive, к нашему волхаку и после строчкиКод:m_pD3Ddev->SetRenderState(D3DRS_ZENABLE,D3DZB_FALSE);вставляем такую:
Код:m_pD3Ddev->SetTexture(0,Blue);Вот собственно и всё! Chams готов! xrEngine.exe dll - это либа, которая компилится из D3D Starterkit'a(TatniumD3D.vcproj) Инжектор - это прога, которая инжектит либу в игру(main.cpp/TatniumInjector.vcproj) В общем у тебя должно быть откомпилино: 1 либа, которую называешь TatniumD3D.dll и 1 екзешник, который обзываешь TatniumD3D.exe, ложешь их рядом(в одну папку пох куда) и запускаешь TatniumD3D.exe, нажимаешь ОК, запускаешь игру, нажимаешь 1 на дополнительной(цифровой) клавиатуре, только не забудь включить NumLock.