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

keng

Ветераны
  • Постов

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

  • Посещение

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

    55

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

  1. Просто найди значение BPM в цифрах - отрубаешь инструкцию на нём - получаешь бесконечный фокус-тайм, полоска тут - просто для красоты.
  2. Тьфу, да, как-то я по-диагонали читал. Вот твой же код: .timer: invoke GetAsyncKeyState,VK_ESCAPE cmp eax,0 je .condition1 jmp .func1ON .condition1: invoke GetAsyncKeyState,VK_F2 cmp eax,0 je .finish jmp .func1OFF ret .func1ON: invoke MessageBox,NULL,"ON","TEST",MB_OK jmp .finish .func1OFF: ... ... jmp .finish ...Работает.
  3. Почему ж у меня работает? Может, тебя ещё [вот это] событие заинтересует. А-ля: cmp [msg], WM_KEYDOWN *тут надо сравнить wParam с нужной VK и что-нибудь сделать*
  4. Дык он и должен вылетать, ты .wmclose замени чем-нибудь другим. Не знаю, MessageBox. Напомню, .wmclose тупо закрывает диалоговое окно: .wmclose: pop edi esi ebx invoke EndDialog,[hwnddlg],0
  5. Дык а что делать должно? У тебя - прыгает на выход. Ой не-не-не, стоп! invoke GetAsyncKeyState,VK_ESCAPE cmp eax,0 je .wmclose Типа, по таймеру проверяй и всё. Работать будет, только что проверил.
  6. №17, ну, откровенно говоря, в Си тоже операторов штук 50-70, которые достаточно легко запомнить. Видимо, он к тому написал, что раз уже начал учить Си\Асм, то small basic ему ну никак не пригодится - как минимум, в геймхакинге (в нём банально нет поддержки WinAPI). Скорость разработки - не всегда ведь решающий фактор.
  7. Особой разницы нет, учи то, что нравится - трейнеры всё равно пишутся на WinAPI, а для взлома нужны знания ассемблера, хотя бы на уровне чтения кода. Я трейнеры на асме пишу - как-то привычнее уже, но уроки на любом языке могу написать. (:
  8. Кстати говоря, у меня эта версия тоже периодически подтупливает - то отладчик не желает работать, то просто поиск. В 6.1 - всё ок. Проверял и на x32 и на x64, само собой.
  9. Так если у тебя фокус на окне игры - как же он на кнопке в другом окне окажется в это же время? Не проще ли горячими клавишами пользоваться?
  10. Например, [так]. Эта статья - шестая по счёту ссылка из выборки вот по [такому] запросу. Не совсем понимаю, почему ты её не нашёл.
  11. Привет! В том видео я перешёл на инструкцию выше, т.к. там был вот такой код (сейчас пишу псевдокод): fsubr blabla,10 fstp blabla Первой строчкой мы отнимаем из blabla десяточку, второй - сохраняем новое значение blabla. Нужно это затем, что для работы с типом float (грубо говоря) нужно слегка другое, нежели для работы с обычными типами, например, целое 4 байта. В этом случае было бы: sub blabla,10 И всё. Суть в том, что не надо делать "так, как кенг в уроке", а надо понимать, что происходит в отладчике, а только потом делать что-то. Попробую скачать игру и выяснить, что у тебя не так. Тэкс. Для начала, решительно не понимаю, откуда вы в своих скриптах взяли float, когда патроны хранятся в виде 4 байта целого. В общем, ищем точное значение, отсеиваем, получаем в конце два адреса, заморозкой выясняем, какой верный, ставим брейкпоинт на запись, получаем такую инструкцию: Не вдаваясь в подробности, edx - новое значение патронов (уже после выстрела), [eax+14] - указатель на эти самые патроны. Эта инструкция работает со всем оружием, так что элементарнейший скрипт:
  12. Пустяки, что ты.
  13. А, BackColor можно задать и в свойствах кнопки - ставишь там Blue, тогда из конструктора формы строчку про цвет можно убрать. И "работал как flat" - это фигня какая-то, т.к. в обоих случаях это кнопка, а flat - это просто стиль, которым его винда рисует. Ну как, получилось?
  14. http://www.youtube.com/watch?v=gKmUrSsPTBw
  15. Так блин, на второй картинке и есть flat-стиль. Ща ещё поразбираюсь. UPD: В свойствах кнопки делаешь вот так: В коде делаешь вот так:
  16. using System.Drawing; using System.Windows.Forms; namespace BtnTest { public partial class Form1 : Form { public Color BtnClr; public bool IsGameAvailable; public bool AddAmmo; public Form1() { InitializeComponent(); } /// <summary> /// Вызывается тогда, когда на кнопке _нажата_ кнопка мыши /// </summary> /// <param name="sender">Объект, который послал событие (кнопка)</param> /// <param name="e">Аргументы, содержащие координаты курсора мыши и состояние кнопок</param> private void Button1MouseDown(object sender, MouseEventArgs e) { BtnClr = ((Button)sender).BackColor; //Сохраняем текущий цвет фона кнопки ((Button)sender).BackColor = Color.Red; //Красим кнопку в красный цвет } /// <summary> /// Вызывается тогда, когда на кнопке _отпущена_ кнопка мыши /// </summary> /// <param name="sender">Объект, который послал событие (кнопка)</param> /// <param name="e">Аргументы, содержащие координаты курсора мыши и состояние кнопок</param> private void Button1MouseUp(object sender, MouseEventArgs e) { ((Button)sender).BackColor = BtnClr; //Восстанавливаем изначальный цвет фона кнопки //if (IsGameAvailable) //Если игра найдена (код закомментирован) //{ if (AddAmmo) //Если опция активна { AddAmmo = false; //Деактивируем её MessageBox.Show("Add ammo = false!"); //Сообщаем об этом пользователю } else //Иначе, если опция не активна { AddAmmo = true; //Активируем её MessageBox.Show("Add ammo = true!"); //Сообщаем об этом пользователю } //} } } } Ты ловишь у кнопки событие [Click()], которое происходит так - сначала кнопка мыши нажимается (событие [MouseDown()]), а затем отжимается - [MouseUp()]. Между этими двумя событиями и происходит выполнение какого-то кода. В моём примере ловится сначала MouseDown - кнопка красится в красный, затем ловится MouseUp (когда кнопку отпускают) - кнопка красится в родной цвет и выполняется какой-то дополнительный код. Надеюсь, теперь вопросов нет. Задача состояла в том, чтобы проверять состояние левой кнопки мыши - если нажата, то красить кнопку в другой цвет, если не нажата - красить в родной обратно. На отладке же прекрасно видно, что при выполнении обработчика события Click() прицепиться ни к чему было нельзя. Мораль - больше пользоваться отладчиком.
  17. Халтурный способ: using System.Drawing; using System.Windows.Forms; namespace BtnTest { public partial class Form1 : Form { public Color BtnClr; public Form1() { InitializeComponent(); } private void Button1MouseDown(object sender, MouseEventArgs e) { BtnClr = ((Button)sender).BackColor; ((Button)sender).BackColor = Color.Red; } private void Button1MouseUp(object sender, MouseEventArgs e) { ((Button)sender).BackColor = BtnClr; } } } Работает? Или что-то ещё требовалось?
  18. В каком смысле - "залипает"? Попробуй с разными стилями и бордерами в свойствах кнопки в дизайнере поиграться.
  19. №17, версия руководства на двух языках - это прекрасно, включая комментарии к коду. Просто штука тут в том, что в асме и С работа с WinAPI максимально упрощена, а в случае с C# потребует дополнительных объяснений. Задача руководства - не показать нужный код, а объяснить использование необходимых WinAPI-функций, лучше - максимально лаконично, не вдаваясь в дебри конкретики того или иного языка, чтобы потом уже читатель мог применить то же самое на своём любимом языке.
  20. Я предлагаю исходники трейнеров выкладывать или на чистом асме, или на чистом С, т.к. в C# достаточно непонятная для неподготовленного читателя работа с WinAPI, а в асме и С поддержка предоставлена изначально.
  21. Работает отлично, но советую при выходе из трейнера возвращать игру в норму (отключать все опции трейнера, что были включены во время его работы).
  22. Судя по всему, игра что-то делает с кодом. Отладчик срабатывает, но через раз - код меняет своё положение в памяти, игра её выделяет чуть ли не каждый кадр, куда весь код и запихивает. Со здоровьем и статами проблем нет, а с деньгами я наткнулся на такую процедуру:
×
×
  • Создать...

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

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