-
Постов
1 635 -
Зарегистрирован
-
Посещение
-
Победитель дней
55
Тип контента
Профили
Форумы
Загрузки
Блоги
Весь контент keng
-
Просто найди значение BPM в цифрах - отрубаешь инструкцию на нём - получаешь бесконечный фокус-тайм, полоска тут - просто для красоты.
-
Значение "колбы" = значение BPM = float.
-
Тьфу, да, как-то я по-диагонали читал. Вот твой же код: .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 ...Работает.
-
№17, ну, откровенно говоря, в Си тоже операторов штук 50-70, которые достаточно легко запомнить. Видимо, он к тому написал, что раз уже начал учить Си\Асм, то small basic ему ну никак не пригодится - как минимум, в геймхакинге (в нём банально нет поддержки WinAPI). Скорость разработки - не всегда ведь решающий фактор.
-
Кстати говоря, у меня эта версия тоже периодически подтупливает - то отладчик не желает работать, то просто поиск. В 6.1 - всё ок. Проверял и на x32 и на x64, само собой.
-
Так если у тебя фокус на окне игры - как же он на кнопке в другом окне окажется в это же время? Не проще ли горячими клавишами пользоваться?
-
Например, [так]. Эта статья - шестая по счёту ссылка из выборки вот по [такому] запросу. Не совсем понимаю, почему ты её не нашёл.
-
Привет! В том видео я перешёл на инструкцию выше, т.к. там был вот такой код (сейчас пишу псевдокод): fsubr blabla,10 fstp blabla Первой строчкой мы отнимаем из blabla десяточку, второй - сохраняем новое значение blabla. Нужно это затем, что для работы с типом float (грубо говоря) нужно слегка другое, нежели для работы с обычными типами, например, целое 4 байта. В этом случае было бы: sub blabla,10 И всё. Суть в том, что не надо делать "так, как кенг в уроке", а надо понимать, что происходит в отладчике, а только потом делать что-то. Попробую скачать игру и выяснить, что у тебя не так. Тэкс. Для начала, решительно не понимаю, откуда вы в своих скриптах взяли float, когда патроны хранятся в виде 4 байта целого. В общем, ищем точное значение, отсеиваем, получаем в конце два адреса, заморозкой выясняем, какой верный, ставим брейкпоинт на запись, получаем такую инструкцию: Не вдаваясь в подробности, edx - новое значение патронов (уже после выстрела), [eax+14] - указатель на эти самые патроны. Эта инструкция работает со всем оружием, так что элементарнейший скрипт:
-
А, BackColor можно задать и в свойствах кнопки - ставишь там Blue, тогда из конструктора формы строчку про цвет можно убрать. И "работал как flat" - это фигня какая-то, т.к. в обоих случаях это кнопка, а flat - это просто стиль, которым его винда рисует. Ну как, получилось?
-
http://www.youtube.com/watch?v=gKmUrSsPTBw
-
Так блин, на второй картинке и есть flat-стиль. Ща ещё поразбираюсь. UPD: В свойствах кнопки делаешь вот так: В коде делаешь вот так:
-
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() прицепиться ни к чему было нельзя. Мораль - больше пользоваться отладчиком.
-
Халтурный способ: 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; } } } Работает? Или что-то ещё требовалось?
-
В каком смысле - "залипает"? Попробуй с разными стилями и бордерами в свойствах кнопки в дизайнере поиграться.
-
№17, версия руководства на двух языках - это прекрасно, включая комментарии к коду. Просто штука тут в том, что в асме и С работа с WinAPI максимально упрощена, а в случае с C# потребует дополнительных объяснений. Задача руководства - не показать нужный код, а объяснить использование необходимых WinAPI-функций, лучше - максимально лаконично, не вдаваясь в дебри конкретики того или иного языка, чтобы потом уже читатель мог применить то же самое на своём любимом языке.
-
Я предлагаю исходники трейнеров выкладывать или на чистом асме, или на чистом С, т.к. в C# достаточно непонятная для неподготовленного читателя работа с WinAPI, а в асме и С поддержка предоставлена изначально.
-
Работает отлично, но советую при выходе из трейнера возвращать игру в норму (отключать все опции трейнера, что были включены во время его работы).