helldrg Опубликовано 11 октября, 2016 Поделиться Опубликовано 11 октября, 2016 (изменено) Здравствуйте! Почти доделал трейнер, с более менее красивым дизайном, основанным на применении только картинок, без winapi элементов. Пару слов: Скрытый текст Сразу оговорюсь, вначале все шло хорошо, но потом одна проблема, другая и пришлось делать костыль на костыле. Есть один баг, связан с перемещением окна, после перехода по ссылке нельзя опустить курсор на уровень панели задач. Как исправить, пока что не знаю, буду думать. По дизайну, перед тем как рисовать я не составил план того что будет входить в программу поэтому под некоторые вещи места не хватило, например под качественную справку. Музыку добавлять не стал, так как у меня бы трейнер весил бы уже больше 5 мб, а здесь этого не любят, как я понял =) Мне gmz советовал перейти полностью на Unicode и использовать EnumProcessModules, но здесь я этого не сделал, так как чтобы использовать Unicode необходимо отказаться от char* переменных, я не готов на такой шаг =) А EnumProcessModules может на не много и быстрее используемой мной функции, но я думаю это не критично. Оставьте свои отзывы, пожелания, замечания, предложения - так как это для меня важно! На вас нужно равняться!!! Я понимаю, что для трейнера это программа слишком тяжелая, и на экранах с маленьким разрешением окно трейнера слишком большое, но я буду работать на этим. Если я слишком много пишу скажите, буду в следующий раз только по делу =) Скрин я уже выкладывал программы, особо там ничего не изменилось, ну и опции не добавились, так как лайки не были собраны :DDDD Эту версию я загружу на сторонний хостинг, дабы не засорять этот, через плюс минус неделю загружу в соотвествующий раздел с положенным оформлением. Вот скрин(приложение открывается одной копией): Скрытый текст Программа: Скрытый текст http://rgho.st/87Q9gtWbV Ссылка будет доступна 90 дней с даты публикации Изменено 11 октября, 2016 пользователем helldrg 2 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 11 октября, 2016 Поделиться Опубликовано 11 октября, 2016 2 минуты назад, helldrg сказал: Если я слишком много пишу скажите Не много, всё написанное по делу. Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 11 октября, 2016 Поделиться Опубликовано 11 октября, 2016 49 минуты назад, helldrg сказал: после перехода по ссылке нельзя опустить курсор на уровень панели задач Опускается, после перехода по 2-м ссылкам(вк, форум) windows 10.0.14393 x64 Ссылка на комментарий Поделиться на другие сайты Поделиться
helldrg Опубликовано 11 октября, 2016 Автор Поделиться Опубликовано 11 октября, 2016 (изменено) 21 минуты назад, partoftheworlD сказал: Опускается, после перехода по 2-м ссылкам(вк, форум) windows 10.0.14393 x64 Хммм, дело в том, что когда нажимается левая кнопка мыши по ссылке еще успевает сработать такая конструкция, которая все и багает: if (input.mouseButtons[0].endedDown) { ReleaseCapture(); SendMessage(window, WM_SYSCOMMAND, 0xF012, 0); } Я у себя пока что решил проблему так: if (input.mouseButtons[0].endedDown && flagLink1 != true && flagLink2 != true) { ReleaseCapture(); SendMessage(window, WM_SYSCOMMAND, 0xF012, 0); } Но это наглядный пример добавление еще одного костыля, так как создавать 2 флага для каких то ссылок это не есть хорошо Может на десятках не багается, а может повезло просто =) Кстати, у моего знакомого на 10 тоже работает нормально... мистика Изменено 11 октября, 2016 пользователем helldrg Ссылка на комментарий Поделиться на другие сайты Поделиться
helldrg Опубликовано 11 октября, 2016 Автор Поделиться Опубликовано 11 октября, 2016 Было бы не плохо если еще пару советов дал, замечаний и предложений, ведь я ради этого и создаю такие темки =) Все что угодно: цвет не нравится, иконки нету, для трейнера слишком сильно цп напрягает и т.д. )) Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 11 октября, 2016 Поделиться Опубликовано 11 октября, 2016 Вроде бы как не чего так на вид то, но наверное размер трейнера для 4 _ох то опций большой. А было бы опций 10 - вышли бы наверное не плохие обои на рабочий стол Может мне просто маленькие нравятся, но всё равно на 4 опции жирноватый. И картинку наверное лучше сюда бы загрузить, ну не которые посмотреть захотят и придется качать, а это тему открыл и сразу видно её ведь игра не у всех стоит и в действии больше половины не испытает всё равно. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
helldrg Опубликовано 11 октября, 2016 Автор Поделиться Опубликовано 11 октября, 2016 Цитата Вроде бы как не чего так на вид то, но наверное размер трейнера для 4 _ох то опций большой. А было бы опций 10 - вышли бы наверное не плохие обои на рабочий стол Может мне просто маленькие нравятся, но всё равно на 4 опции жирноватый. :DDDD Полностью согласен, в следующий раз так и сделаю!!! Я думаю, что буду поменьше картинок использовать, т.е. текст буду выводить не картинкой, а через библиотеку stb truetype, там и юникодом легко пользоваться, gmz будет доволен =) Ссылка на комментарий Поделиться на другие сайты Поделиться
helldrg Опубликовано 11 октября, 2016 Автор Поделиться Опубликовано 11 октября, 2016 Цитата И картинку наверное лучше сюда бы загрузить, ну не которые посмотреть захотят и придется качать, а это тему открыл и сразу видно её ведь игра не у всех стоит и в действии больше половины не испытает всё равно. Хорошо, загружу сейчас Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 11 октября, 2016 Поделиться Опубликовано 11 октября, 2016 7 минут назад, helldrg сказал: Я думаю, что буду поменьше картинок использовать Что то картинки то слишком большие вышли. Хотя я помню иконку в трейнер поставил и размер не посмотрел, а как трейнер собрал и глянул - там размер на полтора mg больше из за иконки одной стал. Ссылка на комментарий Поделиться на другие сайты Поделиться
helldrg Опубликовано 11 октября, 2016 Автор Поделиться Опубликовано 11 октября, 2016 Цитата Что то картинки то слишком большие вышли. Я использую bmp файлы, они не очень много весят, просто их здесь очень много, 26 если быть точным =) А иконку я тоже думаю добавлю, но не знаю какую, нужно какую - нибудь фирменную) Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 11 октября, 2016 Поделиться Опубликовано 11 октября, 2016 (изменено) 48 минуты назад, helldrg сказал: Было бы не плохо если еще пару советов дал, замечаний и предложений, ведь я ради этого и создаю такие темки =) Все что угодно: цвет не нравится, иконки нету, для трейнера слишком сильно цп напрягает и т.д. )) Ну дизайн игр 99-года под opengl для C&C Generals в тему, проц не жрет если не трогать, а если двигать, видимо слишком часто перерисовывает картинку до 25% надергал, возможно без нее все нормально с процессором. // А нет, видимо не из-за картинки т.к. проц загружает рандомно, даже если не двигать, но сделать активным трейнер. Изменено 11 октября, 2016 пользователем partoftheworlD 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 11 октября, 2016 Поделиться Опубликовано 11 октября, 2016 Тестовый вариант до сих пор не доделанный до 8% проц загружает из-за GDI с двойной буферизацией как мне кажется, хотя может просто руки корявые и код не оптимизирован. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
helldrg Опубликовано 11 октября, 2016 Автор Поделиться Опубликовано 11 октября, 2016 Цитата до 25% надергал, Я когда дергаю у меня с 8% до 2% падает. А вот сейчас у друга смотрел на 10, у него 20%, а когда дергает до 16 падает. Я думаю это из-за того что в цикле у меня стоит проверка на наличие процесса игры, а проверка устроена таким образом, что она постоянно перебирает все процессы. Я вот сегодня или завтра сделаю, что бы раз в 5 секунд это делалось, и попробую как gmz советовал EnumProcessModules воспользоваться Ссылка на комментарий Поделиться на другие сайты Поделиться
helldrg Опубликовано 11 октября, 2016 Автор Поделиться Опубликовано 11 октября, 2016 LIRW А вы текст функциями winapi выводите? Или библиотеку используете? Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 11 октября, 2016 Поделиться Опубликовано 11 октября, 2016 Только что, helldrg сказал: в цикле у меня стоит проверка на наличие процесса игры В читы для кс добавлял в цикл Sleep(1); при использовании перебора игроков. После добавление проц с 25% использования упал до 0.7% стабильно не больше ни меньше. Ссылка на комментарий Поделиться на другие сайты Поделиться
helldrg Опубликовано 11 октября, 2016 Автор Поделиться Опубликовано 11 октября, 2016 (изменено) Цитата В читы для кс добавлял в цикл Sleep(1); при использовании перебора игроков. После добавление проц с 25% использования упал до 0.7% стабильно не больше ни меньше. Даже Sleep(100) не помогает, но я понял примерно что делать. Я использую вертикальную синхронизацию, следовательно цикл в секунду проходит 30 раз, создам переменную которая при значении 30 * 5 будет выполнять проверку процесса и обнулять эту переменную. Думаю хороший результат будет =) Изменено 12 октября, 2016 пользователем helldrg Ссылка на комментарий Поделиться на другие сайты Поделиться
keng Опубликовано 12 октября, 2016 Поделиться Опубликовано 12 октября, 2016 У меня пара замечаний по оформлению (не графическому). С трейнером должна поставляться описания-инструкция. Обычно, это просто txt-файл, в котором указано, что это такое, кто сделал и когда, для какой версии игры и описание опций, кнопок. Плюс, имя бинарника (или хотя бы архива с ним) должно быть информативным. [Вот] пример от меня, пусть не идеальный и довольно старый уже. Да, не надо в разработке своих трейнеров слепо полагаться на чужие мнения. То, что мне не нравится большой размер бинарника - моя проблемка. Можно иметь это ввиду, а можно забить, если не умеешь, и не мучаться. Делай так, как считаешь нужным, наше дело - помочь или посоветовать. PS: Файловое хранилище сайта от 5мб не умрет в любом случае, а на ргхосте твое творение потеряется. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
gmz Опубликовано 12 октября, 2016 Поделиться Опубликовано 12 октября, 2016 9 часов назад, helldrg сказал: так как чтобы использовать Unicode необходимо отказаться от char* переменных, я не готов на такой шаг =) дк оно только для строк (всех), в других случаях char ОК 8 часов назад, helldrg сказал: Я использую bmp файлы, они не очень много весят, png заюзай хмм ну он и жрет цп когда курсор в окне, исправь там код который над ReleaseMutex 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 12 октября, 2016 Поделиться Опубликовано 12 октября, 2016 8 часов назад, helldrg сказал: А вы текст функциями winapi выводите? Я для трейнеров СЕ использую. Хотя ты не первый, кто подумал иначе кто то мне в личку писал и думал, что на Шарпе. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
keng Опубликовано 12 октября, 2016 Поделиться Опубликовано 12 октября, 2016 1 hour ago, LIRW said: Я для трейнеров СЕ использую. Хотя ты не первый, кто подумал иначе кто то мне в личку писал и думал, что на Шарпе. Я частенько ржу с того, что ты берешь минимальное приложение на шарпе, втыкаешь в него WinAPI для работы с памятью, а потом приходится за собой таскать весь .NET, чтобы окошко с картинками показывать. Кошмар! Ссылка на комментарий Поделиться на другие сайты Поделиться
helldrg Опубликовано 12 октября, 2016 Автор Поделиться Опубликовано 12 октября, 2016 Цитата дк оно только для строк (всех), в других случаях char ОК Я буду работать над этим, обещаю) Цитата png заюзай Можно попробовать, надо только в структуре файла разобраться, что бы вывести картинку в буфер правильно 11 час назад, keng сказал: PS: Файловое хранилище сайта от 5мб не умрет в любом случае, а на ргхосте твое творение потеряется. Просто может так получиться, что я 10 бета версий выложу и по сути кому они нужны будут, когда выйдет завершенная версия, сорить тоже не хочется, а txt файлик я обязательно теперь буду добавлять! Спасибо за ссылку! Ссылка на комментарий Поделиться на другие сайты Поделиться
ШАРИК Опубликовано 12 октября, 2016 Поделиться Опубликовано 12 октября, 2016 8 часов назад, keng сказал: Я частенько ржу с того, что ты берешь минимальное приложение на шарпе, втыкаешь в него WinAPI для работы с памятью, а потом приходится за собой таскать весь .NET, чтобы окошко с картинками показывать. Кошмар! ахах Ссылка на комментарий Поделиться на другие сайты Поделиться
helldrg Опубликовано 12 октября, 2016 Автор Поделиться Опубликовано 12 октября, 2016 Цитата Я частенько ржу с того, что ты берешь минимальное приложение на шарпе, втыкаешь в него WinAPI для работы с памятью, а потом приходится за собой таскать весь .NET, чтобы окошко с картинками показывать. Кошмар! Зато время на программирование не теряет, только написал скрипт и сразу в программу. Вот пока тут смеёмся LIRW уже очередной трейнер возможно доделывает, и думает вот: "вот балаболы, лучше бы делом занялись" :DDD 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 12 октября, 2016 Поделиться Опубликовано 12 октября, 2016 (изменено) 14 минуты назад, helldrg сказал: уже очередной трейнер возможно доделывает Мне иногда кажется по количеству сделанных трейнеров, что у @LIRW'a конвеер с китайцами, которые упаковывают скрипты в трейнер. Либо он умеет растягивать пространство и время. Для меня лично это невероятное количество трейнеров, я даже бы за год столько не слепил в том же CE, сколько LIRW делает за месяц. Изменено 12 октября, 2016 пользователем partoftheworlD 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
helldrg Опубликовано 12 октября, 2016 Автор Поделиться Опубликовано 12 октября, 2016 @partoftheworlD Полностью с тобой согласен!!! А теперь вопрос по трейнеру. Я думал как снизить нагрузку на цп и пришел к выводу, убрать постоянную перерисовку. Поставить перерисовку при наведении, и при, даже не знаю как это называется, когда мышка наведена на элемент ты сдвигаешь мышку с элемента и элемент возвращает свой обычный вид. Тоесть по идее нагрузка останется если быстро водить с элемента на элемент. Есть вариант еще такой, у меня картинка находится в переменной, при открытии приложения я начинаю ссылаться на нее и при каждой отрисовке собираю картинку и вывожу её. Можно попробовать не собирать постоянно, а создать переменную, где она будет храниться. Процессор будет, я думаю меньше напрягаться, но оперативная память не много пострадает. Вот как строится изображение, что бы не быть голословным(png я займусь потихоньку параллельно, потому что оно не много труднее строится): Скрытый текст uint32 *sourceRow = Bitmap.Pixels + Bitmap.Width*(Bitmap.Height - 1); sourceRow += -sourceOffsetY * Bitmap.Width + sourceOffsetX; uint8 *destRow = ((uint8 *)Buffer->Memory + MinX*Buffer->BytesPerPixel +MinY*Buffer->Pitch); for (int Y = MinY; Y < MaxY;++Y) { uint32 *dest = (uint32 *)destRow; uint32 *source = sourceRow; for (int X = MinX; X < MaxX; ++X) { real32 A = (real32)((*source >> 24) & 0xFF) / 255.0f; real32 SR = (real32)((*source >> 16) & 0xFF); real32 SG = (real32)((*source >> 8) & 0xFF); real32 SB = (real32)((*source >> 0) & 0xFF); real32 DR = (real32)((*dest >> 16) & 0xFF); real32 DG = (real32)((*dest >> 8) & 0xFF); real32 DB = (real32)((*dest >> 0) & 0xFF); real32 R = (1.0f - A)*DR + A*SR; real32 G = (1.0f - A)*DG + A*SG; real32 B = (1.0f - A)*DB + A*SB; *dest = (((uint32)(R + 0.5f) << 16) | ((uint32)(G + 0.5f) << 8) | ((uint32)(B + 0.5f) << 0)); ++dest; ++source; } destRow += Buffer->Pitch; sourceRow -= Bitmap.Width; } Buffer->Memory это буфер, который непосредственно выводит все на экран функцией: StretchDIBits(deviceContext, 0, 0, buffer->Width, buffer->Height, 0, 0, buffer->Width, buffer->Height, buffer->Memory, &buffer->Info, DIB_RGB_COLORS, SRCCOPY); Посоветуйте, надо мне 2 вышеперечисленных пункта выполнять? Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения