Перейти к содержанию

2zolo2

Пользователи+
  • Постов

    280
  • Зарегистрирован

  • Посещение

  • Победитель дней

    9

Весь контент 2zolo2

  1. Решил проблему, выпадения лута и выполнение заданий у боссов, было просто поставит mov [esi+00000078],0E вместо mov [esi+00000078],18, но с простыми нпс это не сработало(((
  2. samolet99 подробней можно, что ты хочешь сделать? вот уроки keng http://www.youtube.com/watch?v=0Bcm4IpSu6M&list=PLc_QQC_Xnp8ux5c0Fv13QvJy7BJ4qBOKX&index=1 http://www.youtube.com/watch?v=qzh6nL85SHs&list=PLc_QQC_Xnp8ux5c0Fv13QvJy7BJ4qBOKX&index=2 http://www.youtube.com/watch?v=VnXvTEH0NK0&list=PLc_QQC_Xnp8ux5c0Fv13QvJy7BJ4qBOKX&index=3 http://www.youtube.com/watch?v=BDh6nThzUNU&list=PLc_QQC_Xnp8ux5c0Fv13QvJy7BJ4qBOKX&index=4
  3. НЕ она отвечает за смерть и там при убистве показывает 0E, 18, если живой там бегают значения от 0 до 5 - 10. Смешение 3С9 отвечает за жизни, если поставить 0 то противник все равно будет живой. Надо найти проверку живой или мертвый, проверка находится по смешению 78 и если там стоит 0E, 18 то он считается мертвым, но при этом не вы падает лут, нужно найти проверку на выпадения лута и активация задания босса? Garik66, быстро проходить подземелья, и не удобно играть в окне при большом разрешений.
  4. Garik66, спасибо все работает как нужно, но мне нужно было совсем другое, я наверно не правильно вырезался. Мне нужно было, чтоб при наведение указателя мыши на противника он сразу умерал, без нажатия левой кнопкой мыши(в игре это Атака по противнику), просто навел на врага указатель и он умер, без каких нажатий мышкой. Я нашел инструкцию которая отвечает за наведение указателя мыши на противника и показ здоровья "004BB349 - fld dword ptr [esi+000003C9]" написал скрипт, но противник все равно оставаться живой. fld dword ptr [esi+000003C9]fsub dword ptr [esi+000003C9]fstp dword ptr [esi+000003C9]Не много полазив по коду, нашел инструкцию которые отвечают за смерть врага "00431C60 - mov byte ptr [esi+78],18", добавил в скрипт "mov [esi+00000078],18" враги стали умерат но не выпадал лут и не активировались задание при убистве босса.Найдя адрес смешения 78, поставил брекпойнт на запись(на доступ игра виснит), заинтересовали два последних инструкций эта "00431C60 - mov byte ptr [esi+78],18" и новая "0042E7FB - mov byte ptr [esi+78],0E". И после этого я в тупике, не как не могу найти инструкцию которая отвечает за выпад предметов и выполнение задания для боссов.
  5. keng, делал по твоему уроку http://www.youtube.com/watch?v=VnXvTEH0NK0&index=3&list=PLc_QQC_Xnp8ux5c0Fv13QvJy7BJ4qBOKX, а вкратце не можешь, раскатать как находит через DirectX-функций?
  6. Garik66, спасибо он убивает с одного. Но мне надо, при наведение мыши на противника чтоб он сразу умерал, но у меня они умерают но не выпадает лут и задания.
  7. Написал скрипт для врагов и босса, но он не работает как нужно, не вы падает лут и не активируется задание при убийстве босса. [ENABLE]//code from here to '[DISABLE]' will be used to enable the cheatalloc(newmem,2048)label(returnhere)label(originalcode)label(exit)newmem: //this is allocated memory, you have read,write,execute access//place your code hereoriginalcode:fld dword ptr [esi+000003C9] ; жизни врагаfsub dword ptr [esi+000003C9]fstp dword ptr [esi+000003C9]mov [esi+00000078],18 ; 18 чтоб умер врагexit:jmp returnhere"The Fate.exe"+BB349:jmp newmemnopreturnhere:[DISABLE]//code from here till the end of the code will be used to disable the cheatdealloc(newmem)"The Fate.exe"+BB349:fld dword ptr [esi+000003C9]//Alt: db D9 86 C9 03 00 00[ENABLE]//code from here to '[DISABLE]' will be used to enable the cheatalloc(newmem,2048)label(returnhere)label(originalcode)label(exit)newmem: //this is allocated memory, you have read,write,execute access//place your code hereoriginalcode:fld dword ptr [esi+000003C9] ; жизни врагаfsub dword ptr [esi+000003C9]fstp dword ptr [esi+000003C9]mov [esi+00000078],18 ; 18 чтоб умер врагexit:jmp returnhere"The Fate.exe"+BB2B9:jmp newmemnopreturnhere:[DISABLE]//code from here till the end of the code will be used to disable the cheatdealloc(newmem)"The Fate.exe"+BB2B9:fld dword ptr [esi+000003C9]//Alt: db D9 86 C9 03 00 00
  8. kernon, какие наработки сделал? выложи, быстрей пойдет работа.
  9. Может кто, подскажет другой способ нахождения view matrix?
  10. Не могу найти правильный view matrix, нашел два значения 00501AA8, 00501B68 но кажись они не правильные, помогите найти правильный view matrix? Structure VECTOR3 x.f y.f z.fEndStructureStructure VECTOR2 x.f y.fEndStructurePlayP.l = $024aa36c;ViewMatrix.l = $00501B68ViewMatrix.l = $00501ae8Global Dim view_matrix.f(3, 3)Global rect.RECT Global hDCProcedure world_to_screen(*Enemy.VECTOR3, *To.VECTOR2) w.f = 0.0 *To\x = view_matrix(0,0) * *Enemy\x + view_matrix(0,1) * *Enemy\y + view_matrix(0,2) * *Enemy\z + view_matrix(0,3) *To\y = view_matrix(1,0) * *Enemy\x + view_matrix(1,1) * *Enemy\y + view_matrix(1,2) * *Enemy\z + view_matrix(1,3) w = view_matrix(3,0) * *Enemy\x + view_matrix(3,1) * *Enemy\y + view_matrix(3,2) * *Enemy\z + view_matrix(3,3) If (w < 0.01) ProcedureReturn 0 EndIf invw.f = 1.0 / w *To\x = *To\x * invw *To\y = *To\y * invw width.l = (rect\right - rect\left) height.l = (rect\bottom - rect\top) x.f = width/2 y.f = height/2 x = x + 0.5 * *To\x * width + 0.5 y = y - 0.5 * *To\y * height + 0.5 *To\x = x + rect\left *To\y = y + rect\top ProcedureReturn 1EndProcedurehWind=FindWindow_(0, "AssaultCube")GetWindowRect_(hWind, @rect)hDC = GetDC_(hWind)GetWindowThreadProcessId_(hWind, @pID)hProc=OpenProcess_(#PROCESS_VM_READ, #False, pID)Repeat ;ReadProcessMemory_(hProc,PlayP, Play.VECTOR3, SizeOf(VECTOR3), 0);{ EnemyPReadProcessMemory_(hProc, $0050f4f8, @EnemyP0.l, 4, 0)ReadProcessMemory_(hProc, EnemyP0+4, @EnemyP1.l, 4, 0)ReadProcessMemory_(hProc, EnemyP1+$34, Enemy.VECTOR3, SizeOf(VECTOR3), 0)Debug Enemy\xDebug Enemy\yDebug Enemy\z;}ReadProcessMemory_(hProc,ViewMatrix, @view_matrix(), 64, 0)If world_to_screen(@Enemy, @Too.VECTOR2) = 1 Ellipse_(hDC, Too\x - rect\left, Too\y-rect\top, (Too\x- rect\left)+15, (Too\y-rect\top)+15)EndIf Until a>100
  11. MasterGH, жесткий накрылся не смогу дать((( Я с час разбираю с AssaultCube нашел координаты свой и врага и осталось найти viewmatrix и FOV, и буду пробовать сначала ESP сделать, а потом свою миникарту.
  12. keng, как я понял, мне надо найти viewmatrix персонажа и умножить на координаты врага, и сделать наподобие ESP, только Y надо заменить на Z и подогнать параметры? А если, я захочу отображать на карте себя, как мне это сделать, какую viewmatrix искать или умножать на свой координаты?
  13. Увидел видео http://www.youtube.com/watch?v=CTHB3TX-gSI и стало интересно как это реализовано и работает. У нас есть координаты свой и врагов в формате Пример "-234.45 45.56 -7.67",и есть изображение карты размером 1024 1024. И возник вопрос как перевести координаты "-234.45 45.56 -7.67" в "15 85" и правильно привязать к карте изображения. Пробовал так "(position_x / ширину миникарты) * на любое число + (ширину миникарты/2)" но точки не совпадают с картой и не удается подогнать правильно, то террористы верху то спецназ внизу. Не подскажите как правильно реализовать?
  14. RockHamer, Watch Dogs 64 bit запускаешь? если да, то не получится, ОЛИ не поддерживает 64 bit приложения. Вот похожая ошибка, там пытали с запустить 64 bit приложение http://forum.gamehacklab.ru/topic/2437-c-signature-scanner-pod-win-x64/#entry16394/
  15. В каком смысле почеркиваеть? может ошибку выдаеть? и ещё ты подключиль d3dx10.lib? Если первый раз, то не легче сначала не много набраться опыта в написаний програм на С++? Если тебе нужна DLL от кода keng, не легче было задать вопрос в теме http://forum.gamehacklab.ru/forum/38-zapros/ , чтоб помогли собрать код на С++? P.S Я пишу на PureBasic и с компиляций на С++ не помогу.
  16. Меняещь 9, на нужное число 10, 11 и еще смотри документацию для directx 10, 11 и разбирай код, чтоб потом глупых вопросов не задовать. Пример для 10, могут быть ошибки. Если первый раз, то по тренируйся сначала на directx 9, keng хорошо все описал и записал видео. #include #include #pragma comment(lib,"d3dx10.lib") typedef IDirect3D10* (__stdcall *DIRECT3DCREATE10)(unsigned int); typedef long (__stdcall *PRESENT10)(IDirect3DDevice10* self, const RECT*, const RECT*, HWND, void*); PRESENT9 g_D3D10_Present = 0; BYTE g_codeFragment_p10[5] = {0, 0, 0, 0, 0}; BYTE g_jmp_p10[5] = {0, 0, 0, 0, 0}; DWORD g_savedProtection_p10 = 0; DWORD present10 = 0; bool indicator = 0; D3DRECT rec = {10, 10, 120, 30}; ID3DXFont *m_font = 0; RECT fontRect = {10, 15, 120, 120}; D3DCOLOR bkgColor = 0; D3DCOLOR fontColor = 0; void DrawIndicator(void* self) { IDirect3DDevice10* dev = (IDirect3DDevice10*)self; dev->BeginScene(); D3DXCreateFont(dev, 12, 0, FW_BOLD, 0, 0, 1, 0, 0, 0 | FF_DONTCARE, TEXT("Arial"), &m_font); if(indicator) { bkgColor = D3DCOLOR_XRGB(0, 0, 255); fontColor = D3DCOLOR_XRGB(0, 255, 255); } else { bkgColor = D3DCOLOR_XRGB(255, 0, 0); fontColor = D3DCOLOR_XRGB(255, 0, 0); } dev->Clear(1, &rec, D3DCLEAR_TARGET, bkgColor, 1.0f, 0); m_font->DrawText(0, "keng.gamehacklab.ru", -1, &fontRect, 0, fontColor); dev->EndScene(); } void GetDevice10Methods() { HWND hWnd = CreateWindowA("STATIC","dummy", 0, 0, 0, 0, 0, 0, 0, 0, 0); HMODULE hD3D10 = LoadLibrary("d3d10"); DIRECT3DCREATE10 Direct3DCreate10 = (DIRECT3DCREATE9)GetProcAddress(hD3D10, "Direct3DCreate10"); IDirect3D10* d3d = Direct3DCreate10(D3D_SDK_VERSION); D3DDISPLAYMODE d3ddm; d3d->GetAdapterDisplayMode(0, &d3ddm); D3DPRESENT_PARAMETERS d3dpp; ZeroMemory(&d3dpp, sizeof(d3dpp)); d3dpp.Windowed = 1; d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD; d3dpp.BackBufferFormat = d3ddm.Format; IDirect3DDevice9* d3dDevice = 0; d3d->CreateDevice(0, D3DDEVTYPE_HAL, hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp, &d3dDevice); DWORD* vtablePtr = (DWORD*)(*((DWORD*)d3dDevice)); present10 = vtablePtr[17] - (DWORD)hD3D10; d3dDevice->Release(); d3d->Release(); FreeLibrary(hD3D10); CloseHandle(hWnd); } long __stdcall HookedPresent10(IDirect3DDevice10* self, const RECT* src, const RECT* dest, HWND hWnd, void* unused) { BYTE* codeDest = (BYTE*)g_D3D10_Present; codeDest[0] = g_codeFragment_p10[0]; *((DWORD*)(codeDest + 1)) = *((DWORD*)(g_codeFragment_p10 + 1)); DrawIndicator(self); DWORD res = g_D3D10_Present(self, src, dest, hWnd, unused); codeDest[0] = g_jmp_p10[0]; *((DWORD*)(codeDest + 1)) = *((DWORD*)(g_jmp_p10 + 1)); return res; } void HookDevice10Methods() { HMODULE hD3D10 = GetModuleHandle("d3d10.dll"); g_D3D10_Present = (PRESENT10)((DWORD)hD3D10 + present10); g_jmp_p10[0] = 0xE9; DWORD addr = (DWORD)HookedPresent10 - (DWORD)g_D3D10_Present - 5; memcpy(g_jmp_p10 + 1, &addr, sizeof(DWORD)); memcpy(g_codeFragment_p10, g_D3D10_Present, 5); VirtualProtect(g_D3D10_Present, 8, PAGE_EXECUTE_READWRITE, &g_savedProtection_p10); memcpy(g_D3D10_Present, g_jmp_p10, 5); } DWORD __stdcall TF(void* lpParam) { GetDevice10Methods(); HookDevice10Methods(); return 0; } DWORD __stdcall KeyboardHook(void* lpParam) { while(1) { if(GetAsyncKeyState(VK_F1)) { indicator = !indicator; Beep(500,200); } Sleep(100); } return 0; } int __stdcall DllMain(HINSTANCE hInst, DWORD ul_reason_for_call, void* lpReserved) { switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: CreateThread(0, 0, &TF, 0, 0, 0); CreateThread(0, 0, &KeyboardHook, 0, 0, 0); } return 1; }
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.