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

Japonamat

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

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

  • Посещение

Весь контент Japonamat

  1. Если вдруг понадобится, вот ссылка на Game Trainer Studio.
  2. Да, выпадающий список. Но Elsif он не принимает ни в каком виде почему-то. Видимо, не туда вставляю. И еще. Когда выбираю Elsif, то окно ввода адреса остается неактивным, активно только окно вода значения, причем меняется с НЕХ на ASCII
  3. Не принимает генератор кода, собака - 'ElsIf 0EB6990C 01' - Invalid command
  4. If 0EB6990C 00 ;Если выполняется условие 1 If 02134B22 01 ;Если выполняется условие 2 Poke 02134B21 00 00 00 00 ;Делаем замену байт EndIf ;Закрываем второе условие (по вложенности)ElsIf 0EB6990C 01 ;Иначе, если выполняется условие 3 If 02134B22 00 ;Если выполняется условие 4 Poke 02134B21 00 01 00 00 ;Делаем замену байт EndIf ;Закрываем условие 4EndIf; Закрываем условие 3
  5. Даже не знаю как назвать тему. Не могу написать кусок кода для Game Trainer Studio, запутался с логикой, мать ее за ногу . Помогите, парни! В общем, суть такая. Используются If, Else, Endif, Elsif, Poke. Другого в генераторе кода в программе нет. Нужно: Если по этим адресам значения такие0EB6990C 0002134B22 01Тогда здесь выставляем так02134B21 00 00 00 00Но если0EB6990C 0102134B22 00Тогда должно быть так02134B21 00 01 00 00Мозги кипят. Вот с такой конструкцией с одним условием справился, все работает на ура If 02134B21 01Poke 02134B21 00 01 00 00ElsePoke 02134B21 01 01 01 01EndifНо вот с двумя условиями никак не дается, зараза. Помогите, парни!
  6. Всем привет. Народ, помогите с кодом выбора хоткея для трейнера. То есть, в трейнере есть конкретный хоткей (например Y), который изменяет в памяти игры какие-то данные. Хочется сделать выбор этой самой клавиши. То есть, чтобы каждый игрок выбирал этот хоткей под себя. Чтобы выглядело примерно так Использую Game Trainer Studio. Вот сохраненный им работающий пример исходника: ; #########################################################################;; This Is My Trainer Template Created For The Game Trainer Studio (Xeta);; This Is Based On A MASM Example.;; ######################################################################### .386 .model flat, stdcall ; 32 bit memory model option casemap :none ; case sensitive include trainer.inc ; local includes for this file; #########################################################################.data; ### Constants Below; ### Constants Above; ### Bytes BelowHotKey00000 db 001h db 001h db 001h; ### Bytes Above; ### Button Messages Below; ### Button Messages Above WindCap db "Skype™",0 szDisplayName db 'Trainer-1',0.codestart: invoke GetModuleHandle, NULL mov hInstance, eax invoke GetCommandLine mov CommandLine, eax invoke WinMain,hInstance,NULL,CommandLine,SW_SHOWDEFAULT invoke ExitProcess,eax; #########################################################################WinMain proc hInst :DWORD, hPrevInst :DWORD, CmdLine :DWORD, CmdShow :DWORD ;==================== ; Put LOCALs on stack ;==================== LOCAL wc :WNDCLASSEX LOCAL msg :MSG LOCAL Wwd :DWORD LOCAL Wht :DWORD LOCAL Wtx :DWORD LOCAL Wty :DWORD ;================================================== ; Fill WNDCLASSEX structure with required variables ;================================================== invoke LoadIcon,hInst,500 ; icon ID mov hIcon, eax szText szClassName,"Trainer_Class" mov wc.cbSize, sizeof WNDCLASSEX mov wc.style, CS_HREDRAW or CS_VREDRAW \ or CS_BYTEALIGNWINDOW mov wc.lpfnWndProc, offset WndProc mov wc.cbClsExtra, NULL mov wc.cbWndExtra, NULL m2m wc.hInstance, hInst mov wc.hbrBackground, COLOR_BTNFACE+1 mov wc.lpszMenuName, NULL mov wc.lpszClassName, offset szClassName m2m wc.hIcon, hIcon invoke LoadCursor,NULL,IDC_ARROW mov wc.hCursor, eax m2m wc.hIconSm, hIcon invoke RegisterClassEx, ADDR wc ;================================ ; Centre window at following size ;================================ mov Wwd, 325 ; Dialog Width mov Wht, 214 ; Dialog Height invoke GetSystemMetrics,SM_CXSCREEN invoke TopXY,Wwd,eax mov Wtx, eax invoke GetSystemMetrics,SM_CYSCREEN invoke TopXY,Wht,eax mov Wty, eax invoke CreateWindowEx,WS_EX_LEFT, ADDR szClassName, ADDR szDisplayName, WS_MINIMIZEBOX or WS_OVERLAPPED or WS_SYSMENU, Wtx,Wty,Wwd,Wht, NULL,NULL, hInst,NULL mov hWnd,eax invoke ShowWindow,hWnd,SW_SHOWNORMAL invoke UpdateWindow,hWnd ;=================================== ; Loop until PostQuitMessage is sent ;=================================== StartLoop: invoke GetMessage,ADDR msg,NULL,0,0 cmp eax, 0 je ExitLoop invoke TranslateMessage, ADDR msg invoke DispatchMessage, ADDR msg jmp StartLoop ExitLoop: return msg.wParamWinMain endp; #########################################################################WndProc proc hWin :DWORD, uMsg :DWORD, wParam :DWORD, lParam :DWORD LOCAL var :DWORD LOCAL caW :DWORD LOCAL caH :DWORD LOCAL color :DWORD LOCAL hDC :DWORD LOCAL Rct :RECT LOCAL Ps :PAINTSTRUCT LOCAL buffer1[128]:BYTE LOCAL buffer2[128]:BYTE LOCAL lfnt :LOGFONT LOCAL psd :PAGESETUPDLG LOCAL pd :PRINTDLG LOCAL RectB :RECT .if uMsg == WM_COMMAND MOV EAX, wParam .if wParam == 499 .elseif wParam == 500 ButtonJump_Jump500:Invoke ExitProcess, 0 .endif .elseif uMsg == WM_CTLCOLORSTATIC JMP @WM_CTLCOLOREDIT .elseif uMsg == WM_CTLCOLOREDIT @WM_CTLCOLOREDIT: .elseif uMsg == WM_DRAWITEM .elseif uMsg == WM_CREATE Invoke Protection MOV HotKeyMiniToggle, TRUE szText font1,'MS Sans Serif' invoke CreateFont,8,5,0,0,500,0,0,0, \ DEFAULT_CHARSET,0,0,0,\ DEFAULT_PITCH,ADDR font1 mov hFont, eax Invoke SetTimer, hWin, 1, 100, 0 ; HotKey Timer Invoke SetTimer, hWin, 2, 300, 0 ; EditBox Timer 1 Invoke SetTimer, hWin, 3, 300, 0 ; EditBox Timer 2 Invoke SetTimer, hWin, 4, 100, 0 ; EditBox Freeze Timer szText bTxt1,"Close" invoke PushButton,ADDR bTxt1,hWin,120,136,94,28,500 .elseif uMsg == WM_TIMER Invoke Protection .If wParam == 1 ; ### Timer Below ###Invoke GetKeyState, VK_Ymov HotBuffer1, eax .if HotBuffer1 > 1Invoke TrainerEngine, NULL, Offset WindCap, 000CCFF8h, Offset HotKey00000, 3.endif .Endif ; ### Timer Above ### .If wParam == 2 ; ### Timer Below ### .Endif ; ### Timer Above ### .If wParam == 3 ; ### Timer Below ### .Endif ; ### Timer Above ### .If wParam == 4 ; ### EBFreeze Timer Below ### .Endif ; ### EBFreeze Timer Above ### .elseif uMsg == WM_HOTKEY .elseif uMsg == WM_PAINT invoke BeginPaint,hWin,ADDR Ps mov hDC, eax invoke Paint_Proc,hWin,hDC invoke EndPaint,hWin,ADDR Ps return 0 .elseif uMsg == WM_DESTROY invoke PostQuitMessage,NULL return 0 .endif invoke DefWindowProc,hWin,uMsg,wParam,lParam retWndProc endp; ########################################################################TopXY proc wDim:DWORD, sDim:DWORD shr sDim, 1 ; divide screen dimension by 2 shr wDim, 1 ; divide window dimension by 2 mov eax, wDim ; copy window dimension into eax sub sDim, eax ; sub half win dimension from half screen dimension return sDimTopXY endp; #########################################################################Paint_Proc proc hWin:DWORD, hDC:DWORD LOCAL btn_hi :DWORD LOCAL btn_lo :DWORD LOCAL Rct :RECT invoke GetSysColor,COLOR_BTNHIGHLIGHT mov btn_hi, eax invoke GetSysColor,COLOR_BTNSHADOW mov btn_lo, eax return 0Paint_Proc endp; ########################################################################OnDrawItem proc uses ebx idCtl:DWORD,pdis:DWORD,pcol:DWORD,pbkcol:DWORDLOCAL tbuff[20h]:byte mov ebx,pdis assume ebx:ptr DRAWITEMSTRUCT .if [ebx].CtlType == ODT_BUTTON .if pbkcol == 0 .else invoke SetBkMode,[ebx].hdc,OPAQUE Invoke SetBkColor,[ebx].hdc,pbkcol Invoke CreateSolidBrush, pbkcol invoke FillRect,[ebx].hdc,addr [ebx].rcItem,eax .endif invoke SetTextColor,[ebx].hdc,pcol .if ([ebx].itemState & ODS_SELECTED) invoke DrawEdge,[ebx].hdc,addr [ebx].rcItem,BDR_SUNKEN,BF_RECT invoke OffsetRect,addr [ebx].rcItem,1,1 .else invoke DrawEdge,[ebx].hdc,addr [ebx].rcItem,EDGE_RAISED,BF_RECT .endif invoke GetWindowText,[ebx].hwndItem,addr tbuff,sizeof tbuff lea edx,[ebx].rcItem lea ecx,tbuff invoke DrawText,[ebx].hdc,ecx,eax,edx,DT_CENTER or DT_VCENTER or DT_SINGLELINE or DT_NOCLIP .if [ebx].itemState & ODS_FOCUS invoke InflateRect,addr [ebx].rcItem,-4,-4 invoke DrawFocusRect,[ebx].hdc,addr [ebx].rcItem .endif .endif assume ebx:nothing retOnDrawItem endp; ########################################################################end start
  7. Автор программу забросил, похоже. И справки нет... Парни, консультация нужна, может, поможет кто? Интересует возможность реализации переключения между двумя значениями в памяти игры по одному хоткею. Что-то никак не получается так сделать. Подозреваю, что такое возможно с помощью скриптов, но для меня это темный лес. Поможет кто-нибудь?
  8. Народ, такой вопрос. При назначении хоткея для трейнера имеем вот такую картину То есть, я могу назначить горячую клавишу для установки нужного значения, но чтобы вернуть старое, родное значение, нужно назначить другой хоткей, а это очень неудобно. Как забиндить на одну клавишу переключение между двумя значениями?
  9. Всем здрасти! Народ, нужна помощь в создании трейнера. Раньше Cheat Engine не пользовался, поэтому мало что понимаю, поэтому прошу какашками не кидаться. В общем, проблема такая. Решил создать трейнер для себя, чтобы не зависеть от других. Игра обновляется часто, старый трейнеры работать перестают. Собственно, пока нужна одна функция - включение/выключение растительности. С горем пополам нужные адреса с помощью проги нашел, но возникла такая проблема - назначить хоткей на выключение получается без проблем, все работает, а вот с обратное включение не получается. Вернее, я могу назначить для этого другую клавишу, но надо именно ту же самую. То есть должен быть переключатель по одной клавише. При назначении хоткея имею такую картину При переключении там должны меняться значения с 1 на 257 и обратно. Помогите с трейнером, знатоки! Хелп! //NullAlex: тему аппрувнул, и перенес в нужный раздел. Автора на будущее прошу учесть, и не создавать темы с вопросами в разделе информации.
×
×
  • Создать...

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

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