Всё готово! При нажатии в игре на кнопку NUMPAD2, опция будет включатся и выключатся.
credits: _www.aden-territory.com and qwe
Теперь собственно то, что нужно сделать, что бы Wallhack работал желаемым образом: В самом начале кода d3d9dev.cpp вставляем: Код:
Код: выделить все 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))
Вот и всё! Вы будете видеть других игроков сквозь стены! Теперь о том, как сделать из Wallhack’a Chams: В начале d3d9dev.cpp прописываем: Код:
__________________________________________________ __________________________________________________ __ Далее после всех bool’ов вставляем этот код: Код:
Код: выделить все if (a==1) < D3DXCreateTextureFromFileInMemory(m_pD3Ddev,(LPCVO ID)&bPink,58,&Pink); D3DXCreateTextureFromFileInMemory(m_pD3Ddev,(LPCVO ID)&bBlue,60,&Blue); a=0; >
Теперь идем в DrawIndexedPrimitive, к нашему волхаку и после строчки m_pD3Ddev->SetRenderState(D3DRS_ZENABLE,D3DZB_FALSE); вставляем такую: Код:
Код: выделить все m_pD3Ddev->SetTexture(0,Pink);
А после m_pD3Ddev->SetRenderState(D3DRS_ZENABLE,dwOldZEnable2); такую: Код:
Код: выделить все m_pD3Ddev->SetTexture(0,Blue);
Вот собственно и всё! Chams готов! xrEngine.exe dll — это либа, которая компилится из D3D (TatniumD3D.vcproj) Инжектор — это прога, которая инжектит либу в игру(main.cpp/TatniumInjector.vcproj) В общем у вас должно быть откомпилино: 1 либа, которую называешь TatniumD3D.dll и 1 екзешник, который обзываешь TatniumD3D.exe, ложешь их рядом(в одну папку пофиг куда) и запускаешь TatniumD3D.exe, нажимаешь ОК, запускаешь игру, нажимаешь 1 на дополнительной(цифровой) клавиатуре, только не забудь включить NumLock. __________________________________________________ __________________________________________________ __ I I I I V 2)Запускаем только с Обходом. После создания. __________________________________________________ __________________________________________________ __ Ниже я напишу программы, которые вам понадобятся для того что бы создать свой вх для crossfire, в основном это визуальные редакторы и с вычислительными базами.
Microsoft Visual C++ 6.0, MS DirectX SDK 9.0 (Summer 2004) и D3D framework per D3D8 e D3D9 (Hans’ s base) __________________________________________________ __________________________________________________ __ Подготовка к началу создание чита для crossfire: Первым делом необходимо установить программы, такие как Microsoft Visual C++ 6.0 и MS DirectX SDK 9.0 Затем открыть Microsoft Visual C++ 6.0 Создадим новый проект для DLL, выбрав «Fle > ew > Data Projets > Win32 Dynamic-Link Librry > Ok». Потом даете название своему проекту, например , я назову его M2 D3D Hack. Отроеться новое где нужно будет выбрать «An empty DLL project» и нажать на кнопку «Finish».
И вот теперь мы будем производить импорт файлов в наш проект, сделаем это перейдя к базе: Hans’ s base «Project> Add to Project> Files» , найти папку Hans’ s base и установить следующие файлы последовательно, один за другим:
Теперь будет важная фаза создания чит для crossfire, а именно импорт MS DirectX SDK 9.0: 1)Переходим к импорту файлов и библиотек, мы должны работать в D3D. 2)Перейдите в раздел «Tools> Options> Directories tab». Ебедитесь, что установлен параметр «Show directories for» there is «Include Files» 3)Добавьте новую строчку в папке «includes», которая содержится в scrtella, как раз на котором установлено SDK 4)В моем случае, директория размещения файла будет такой : «E: \ Program Files\ Microsoft DirectX 9.0 SDK (Summer 2004) \ INCLUDE» 5)Теперь в «Show directories for» выберите «Library Files» и вместо папки «includes» Добавить папку «LIB», 6)В моем случае это будет: «E: \ Program Files \ Microsoft DirectX 9.0 SDK (Summer 2004) \ Lib» __________________________________________________ __________________________________________________ __ Настройка базы для D3D8 и D3D9, настройка баз чита для crossfire:
Теперь в зависимости от игры будем выбирать между D3D9 и D3D8 , например как в моем случае я использую D3D8 и редактирую файл d3dbase.h:
Код: выделить все C++ Code: Line Numbers: ON/OFF — Expand: ON/OFF
//#define FOR_D3D8 #define FOR_D3D9
Код: выделить все Line Numbers: ON/OFF — Expand: ON/OFF
#define FOR_D3D8 //#define FOR_D3D9
Теперь заготовка нашего чит для CrossFire готова. Вы должны проверить, сделано ли все правильно, для этого нажмите F7, если не будет ошибок — то все сделано правильно, можно продолжить создавать свой чит для crossfire дальше.
Задание функций для чита для crossfire. Создание функций для нашего hack:
Нам предстоит создать функции для каждого отдельного раздела hacks, вы же хотите сделать рабочий чит для crossfire? В качестве примера я создам функцию, которая при изменении скорости игры (speedhack для crossfire). будет указывать 0x5F29BC (old) соответственно после перехода 0x10 и 0x5B6 в шестнадцатеричный код.
Первым шагом будет являться определение различных баз Address / Offsets (do this in just under the include «hackbase.cpp»):
Код: выделить все C++ Code: Line Numbers: ON/OFF — Expand: ON/OFF
Теперь мы можем просто создать функцию что бы изменить скорость передвижения в игре, speedhack для crossfire (still in «hackbase.cpp»):
Код: выделить все C++ Code: Line Numbers: ON/OFF — Expand: ON/OFF
void MovSpeed(speedVal) < DWORD Addy1 = *(DWORD*)Base_Pointer; //I read the value of the base pointer DWORD Addy1 = *(DWORD*)(addy1+Ofs_MovSpeed_1) + Ofs_MovSpeed_2; //I read the value of the value of base pointer + the first offset addy + the second offset *(DWORD*)Addy1 = speedVal; //Change the address of the speed with the value «speedVal» which will be defined by using the function >
Нам необходимо создать несколько вариантов для выбора скоростей, например, мы делаем так, что бы была возможность выбора скорости от 1 до 4 с диапазоном «0,5». Необходимо добавить переменную, следовательно которая будет позволяет нам выбирать «Чит для crossfire должен быть включен по умолчанию или нет.»
Код: выделить все C++ Code: Line Numbers: ON/OFF — Expand: ON/OFF
В случаем который вы видите сейчас «CH_Movspeed = 0» , то есть когда вы поставите вашу скорость на это значение то сама скорость движения будет установлена в положение OFF, то есть выключенна. Если бы я хотел установить его в 2,5 я поставил : «CH_Movspeed = 5», потому что если «Off» в положение «0» из списка, 2,5 в пятое место.
Теперь будем добавлять функции для взлома crossfire, а если быть точнее делать нам чит для crossfire .
Добавим в наш hack меню, зададим новую линию с названием функции, вот так:
Код: выделить все C++ Code: Line Numbers: ON/OFF — Expand: ON/OFF
Где «Mov Speed» является текст, который появляется в меню, CH_MovSpeed это переменная, составленная ранее и в состоянии hack (enabled, disabled, etc.), opt_MovSpeed доступны 9 вариантов.
Теперь мы адаптируем функции для нашего чита crossfire выше созданного варианта:
Код: выделить все C++ Code: Line Numbers: ON/OFF — Expand: ON/OFF
Разберем все по-порядку, если мы сделали hack например, «0,0», которая является номером 1 в этом варианте мы имеем: 15 256 + (1 х 0,5 х 60) = 16 256, это будет являться по умолчанию скорость для crossfire.
Однако, если будет установлено в «2,5» это пятый вариант, то мы имеем: 15 256 + (5 х 0,5 х 60) = 16 406 и так далее .
И сейчас мы будем связывать наши функции и меню в единое целое, то есть как создать свой чит для crossfire вы уже знаете. Придадим нашей функции нужную базу, для этого мы как всегда заходим в «hackbase.cpp» и смотрим:
Код: выделить все C++ Code: Line Numbers: ON/OFF — Expand: ON/OFF
// Seperate thread for making hacks DWORD WINAPI HACKthread( LPVOID param ) < // — hack loop while (1) < // ..if (CH_stamina) . // .. Sleep(50); > return 0;
Вносим изменения в эту функцию:
Код: выделить все C++ Code: Line Numbers: ON/OFF — Expand: ON/OFF
// Seperate thread for making hacks DWORD WINAPI HACKthread( LPVOID param ) < // — hack loop while (1) < if (CH_MovSpeed != 0) < MovSpeed(CH_MovSpeed); > Sleep(50); > return 0; >
__________________________________________________ __________________________________________________ __ Мы закончили! Чтобы вытащим наш hack, переходим «Build> Сделать активным проектом Configuraton»и выберите»Win32-Release». Нажмите клавишу F7 и найдите наш DLL в папке нашего проекта.