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

Пре релиз трейнера


helldrg

Рекомендуемые сообщения

Здравствуйте! Почти доделал трейнер, с более менее красивым дизайном, основанным на применении только картинок, без winapi элементов. Пару слов:
 

Скрытый текст

Сразу оговорюсь, вначале все шло хорошо, но потом одна проблема, другая и пришлось делать костыль на костыле. Есть один баг, связан с перемещением окна, после перехода по ссылке нельзя опустить курсор на уровень панели задач. Как исправить, пока что не знаю, буду думать. По дизайну, перед тем как рисовать я не составил план того что будет входить в программу поэтому под некоторые вещи места не хватило, например под качественную справку. Музыку добавлять не стал, так как у меня бы трейнер весил бы уже больше 5 мб, а здесь этого не любят, как я понял =) Мне gmz советовал перейти полностью на Unicode и использовать EnumProcessModules, но здесь я этого не сделал, так как чтобы использовать Unicode необходимо отказаться от char* переменных, я не готов на такой шаг =)  А EnumProcessModules может на не много и быстрее используемой мной функции, но я думаю это не критично. Оставьте свои отзывы, пожелания, замечания, предложения - так как это для меня важно! На вас нужно равняться!!! Я понимаю, что для трейнера это программа слишком тяжелая, и на экранах с маленьким разрешением окно трейнера слишком большое, но я буду работать на этим. Если я слишком много пишу скажите, буду в следующий раз только по делу =) Скрин я уже выкладывал программы, особо там ничего не изменилось, ну и опции не добавились, так как лайки не были собраны :DDDD  Эту версию я загружу на сторонний хостинг, дабы не засорять этот, через плюс минус неделю загружу в соотвествующий раздел с положенным оформлением. 

 

Вот скрин(приложение открывается одной копией):
 

Скрытый текст

download?id=FQhdZJ08e8cgbD2jXiKXPCQpDd6a

 

Программа:

Скрытый текст

Ссылка будет доступна 90 дней с даты публикации

Изменено пользователем helldrg
  • Плюс 2
Ссылка на комментарий
Поделиться на другие сайты

49 минуты назад, helldrg сказал:

после перехода по ссылке нельзя опустить курсор на уровень панели задач

Опускается, после перехода по 2-м ссылкам(вк, форум) windows 10.0.14393 x64 

 

Ссылка на комментарий
Поделиться на другие сайты

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 тоже работает нормально... мистика

Изменено пользователем helldrg
Ссылка на комментарий
Поделиться на другие сайты

Было бы не плохо если еще пару советов дал, замечаний и предложений, ведь я ради этого и создаю такие темки =) Все что угодно: цвет не нравится, иконки нету, для трейнера слишком сильно цп напрягает и т.д. ))

Ссылка на комментарий
Поделиться на другие сайты

Вроде бы как не чего так на вид то, но наверное размер трейнера для 4 _ох то опций большой. А было бы опций 10 - вышли бы наверное не плохие обои на рабочий стол :)  Может мне просто маленькие нравятся, но всё равно на 4 опции жирноватый. 

И картинку наверное лучше сюда бы загрузить, ну не которые посмотреть захотят и придется качать, а это тему открыл и сразу видно её :) ведь игра не у всех стоит и в действии больше половины не испытает всё равно.

  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

 

Цитата

 

Вроде бы как не чего так на вид то, но наверное размер трейнера для 4 _ох то опций большой. А было бы опций 10 - вышли бы наверное не плохие обои на рабочий стол :)  Может мне просто маленькие нравятся, но всё равно на 4 опции жирноватый.

 

:DDDD  Полностью согласен, в следующий раз так и сделаю!!! Я думаю, что буду поменьше картинок использовать, т.е. текст буду выводить не картинкой, а через библиотеку stb truetype, там и юникодом легко пользоваться, gmz будет доволен =)

Ссылка на комментарий
Поделиться на другие сайты

Цитата

И картинку наверное лучше сюда бы загрузить, ну не которые посмотреть захотят и придется качать, а это тему открыл и сразу видно её :) ведь игра не у всех стоит и в действии больше половины не испытает всё равно.

Хорошо, загружу сейчас

Ссылка на комментарий
Поделиться на другие сайты

7 минут назад, helldrg сказал:

Я думаю, что буду поменьше картинок использовать

Что то картинки то слишком большие вышли. Хотя я помню иконку в трейнер поставил и размер не посмотрел, а как трейнер собрал и глянул - там размер на полтора mg больше из за иконки одной стал. 

Ссылка на комментарий
Поделиться на другие сайты

Цитата

Что то картинки то слишком большие вышли.

Я использую bmp файлы, они не очень много весят, просто их здесь очень много, 26 если быть точным =) А иконку я тоже думаю добавлю, но не знаю какую, нужно какую - нибудь фирменную)

Ссылка на комментарий
Поделиться на другие сайты

48 минуты назад, helldrg сказал:

Было бы не плохо если еще пару советов дал, замечаний и предложений, ведь я ради этого и создаю такие темки =) Все что угодно: цвет не нравится, иконки нету, для трейнера слишком сильно цп напрягает и т.д. ))

Ну дизайн игр 99-года под opengl для C&C Generals в тему, проц не жрет если не трогать, а если двигать, видимо слишком часто перерисовывает картинку до 25% надергал, возможно без нее все нормально с процессором.

 

// А нет, видимо не из-за картинки т.к. проц загружает рандомно, даже если не двигать, но сделать активным трейнер.

 

Изменено пользователем partoftheworlD
  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

Тестовый вариант до сих пор не доделанный до 8% проц загружает из-за GDI с двойной буферизацией как мне кажется, хотя может просто руки корявые и код не оптимизирован.

 

YrhmPZh54YE.jpg

  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

Цитата

до 25% надергал, 

Я когда дергаю у меня с 8% до 2% падает. А вот сейчас у друга смотрел на 10, у него 20%, а когда дергает до 16 падает. Я думаю это из-за того что в цикле у меня стоит проверка на наличие процесса игры, а проверка устроена таким образом, что она постоянно перебирает все процессы. Я вот сегодня или завтра сделаю, что бы раз в 5 секунд это делалось, и попробую как gmz советовал EnumProcessModules воспользоваться

Ссылка на комментарий
Поделиться на другие сайты

Только что, helldrg сказал:

в цикле у меня стоит проверка на наличие процесса игры

В читы для кс добавлял в цикл Sleep(1);  при использовании перебора игроков. После добавление проц с 25% использования упал до 0.7%  стабильно не больше ни меньше.

Ссылка на комментарий
Поделиться на другие сайты

Цитата

В читы для кс добавлял в цикл Sleep(1);  при использовании перебора игроков. После добавление проц с 25% использования упал до 0.7%  стабильно не больше ни меньше.

Даже Sleep(100) не помогает, но я понял примерно что делать. Я использую вертикальную синхронизацию, следовательно цикл в секунду проходит 30 раз, создам переменную которая при значении 30 * 5 будет выполнять проверку процесса и обнулять эту переменную. Думаю хороший результат будет =)

Изменено пользователем helldrg
Ссылка на комментарий
Поделиться на другие сайты

У меня пара замечаний по оформлению (не графическому). С трейнером должна поставляться описания-инструкция. Обычно, это просто txt-файл, в котором указано, что это такое, кто сделал и когда, для какой версии игры и описание опций, кнопок. Плюс, имя бинарника (или хотя бы архива с ним) должно быть информативным. [Вот] пример от меня, пусть не идеальный и довольно старый уже. Да, не надо в разработке своих трейнеров слепо полагаться на чужие мнения. То, что мне не нравится большой размер бинарника - моя проблемка. Можно иметь это ввиду, а можно забить, если не умеешь, и не мучаться. Делай так, как считаешь нужным, наше дело - помочь или посоветовать.

 

PS: Файловое хранилище сайта от 5мб не умрет в любом случае, а на ргхосте твое творение потеряется.

  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

9 часов назад, helldrg сказал:

так как чтобы использовать Unicode необходимо отказаться от char* переменных, я не готов на такой шаг =)

дк оно только для строк (всех), в других случаях char ОК

 

8 часов назад, helldrg сказал:

Я использую bmp файлы, они не очень много весят,

png  заюзай

 

хмм ну он и жрет цп когда курсор в окне, исправь там код который над ReleaseMutex

  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

8 часов назад, helldrg сказал:

А вы текст функциями winapi выводите?

Я для трейнеров СЕ использую. Хотя ты не первый, кто подумал иначе :) кто то мне в личку писал и думал, что на Шарпе.

  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

1 hour ago, LIRW said:

Я для трейнеров СЕ использую. Хотя ты не первый, кто подумал иначе :) кто то мне в личку писал и думал, что на Шарпе.

Я частенько ржу с того, что ты берешь минимальное приложение на шарпе, втыкаешь в него WinAPI для работы с памятью, а потом приходится за собой таскать весь .NET, чтобы окошко с картинками показывать. Кошмар! :D

Ссылка на комментарий
Поделиться на другие сайты

Цитата

дк оно только для строк (всех), в других случаях char ОК

Я буду работать над этим, обещаю) 

Цитата

png  заюзай 

Можно попробовать, надо только в структуре файла разобраться, что бы вывести картинку в буфер правильно

11 час назад, keng сказал:

PS: Файловое хранилище сайта от 5мб не умрет в любом случае, а на ргхосте твое творение потеряется.

Просто может так получиться, что я 10 бета версий выложу и по сути кому они нужны будут, когда выйдет завершенная версия, сорить тоже не хочется, а txt файлик я обязательно теперь буду добавлять! Спасибо за ссылку!

Ссылка на комментарий
Поделиться на другие сайты

8 часов назад, keng сказал:

Я частенько ржу с того, что ты берешь минимальное приложение на шарпе, втыкаешь в него WinAPI для работы с памятью, а потом приходится за собой таскать весь .NET, чтобы окошко с картинками показывать. Кошмар! :D

ахах:D

Ссылка на комментарий
Поделиться на другие сайты

Цитата

Я частенько ржу с того, что ты берешь минимальное приложение на шарпе, втыкаешь в него WinAPI для работы с памятью, а потом приходится за собой таскать весь .NET, чтобы окошко с картинками показывать. Кошмар! :D

Зато время на программирование не теряет, только написал скрипт и сразу в программу. Вот пока тут смеёмся LIRW  уже очередной трейнер возможно доделывает, и думает вот: "вот балаболы, лучше бы делом занялись"  :DDD 

  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

14 минуты назад, helldrg сказал:

уже очередной трейнер возможно доделывает

Мне иногда кажется по количеству сделанных трейнеров, что у @LIRW'a конвеер с китайцами, которые упаковывают скрипты в трейнер. Либо он умеет растягивать пространство и время. Для меня лично это невероятное количество трейнеров, я даже бы за год столько не слепил в том же CE, сколько LIRW делает за месяц.

Изменено пользователем partoftheworlD
  • Плюс 1
Ссылка на комментарий
Поделиться на другие сайты

@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 вышеперечисленных пункта выполнять? 

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

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

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