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

helldrg

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

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

  • Посещение

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

    3

Сообщения, опубликованные helldrg

  1. 25 минуты назад, partoftheworlD сказал:

    Будет какой-то вопрос, после 3-4 ответов, уже его будет не видно и ни кто больше не ответит.

    ну это смотря какой чат, вот укозовский я помню там да 5 сообщений видно только. На том же стеке удобно сделан. Я помню состоял в группе в скайпе - эти сотни уведомлений за день - ужас какой то. 

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

  2. Минус такого подхода, в переходе общения на другие темы. В stackoverflow например есть такая возможность перевести общение в чат, которой я часто пользуюсь. Очень удобно, но такое трудно реализовать наверно поэтому можно было бы просто чат сделать. 

  3. Здравствуйте! Админы и модеры, бывает возникают вопросы не относящиеся к теме форума либо настолько тривиальные, что необходимость в создании темы минимальна. Что то вроде флудилки. Вот например кое-кто сегодня изменил аватарку не буду раскрывать кто это, хотел про неё написать что нибудь, но ради этого создавать тему не серьезно. Место для таких вещей было бы не плохо организовать. Отпишите свое мнение =)

  4. Ну тут много вариантов, у меня, к примеру, раньше такая же ошибка была, из-за того, что я указывал не правильный размер модуля, в котором искал сигнатуру(размер модуля был меньше указанного)

  5. Цитата

    Какими другими способами можно выделить и освободить память ?

    Другой способ такой:

    void *buffer;
    buffer = VirtualAlloc(0, mbi.RegionSize, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE);


    освобождение
     

    if(buffer)
    {
      VirtualFree(buffer, 0, MEM_RELEASE);
    }

     

    • Плюс 1
  6. Цитата

    Так как в случае с OpenGL обмен буферов происходит через SwapBuffers, а в случае с Direct3D9 - функция Present.

    У него 300 с чем то уроков по 1.5 - 2 часа я еще не дошел до этой темы) А на счет  BitBlt спасибо большое за объяснение. В уроках английская речь, поэтому я не все нюансы понимаю =)

     

  7. Trainer for C&C:Generals v1.8

    Просмотреть файл

    Использование: 
    Скаченный архив распаковываем в любое удобное для вас место.
    Запускаем игру, потом запускаем трейнер (последовательность не важна) и активировав его нажимаем на кнопки интересующих опций. 

     

    Функции трейнера: 
    [1]  Бесконечные деньги;
    [2]  Быстрое строительство;
    [3]  Быстрое производство юнитов;
    [4]  Изменение положения камеры по оси Z (работает в мультиплеере).

     

    Как только наберет больше 10 лайков, добавлю еще больше опций! Их количество огромно, начиная от maphacka и god moda заканчивая изменением характеристик юнитов всех типов! 

     

    PS:  Видео обязательно делать надо? :)


    • Плюс 4
  8. Цитата

    Находится у меня на компьютере, в папке "мои трейнеры"....

    @AntonVit

    ахахахахха :DDDDD, у меня тоже одна из первых программ была с выводом 3d модели, и однажды я заметил, что она где то тоже гигабайт занимает оперативной памяти и я долго не мог понять в чем дело. В то время я не знал об очистке памяти =)

     

    Цитата

    StretchDIBBits? Да ты шутишь, наверное )) Для отрисовки бэкбуфера на окно нужно максимум BitBlt (прямой блиттинг) - работать будет быстрее и нагружать куда меньше. Ну и саму отрисовку делать 60 раз в секунду (60 кадросеков).

    @Xipho 

    Да я знаю))) Просто я учусь по урокам буржуя, а он использует этот метод чтобы было понятней как данные выводятся на экран. В итоге все должно на экран выводиться через OpenGL или DirectX контекст =)

  9. Вроде как снизил до менее 2% цп на своем компе, можно было бы и до 1%, но перерисовывать кнопки надо - это уж в другом трейнере сделаю. Правда потребление оперативы возросло на 2,5 мб где то. Я думаю ничего страшного. Один вопрос только мучает меня. В цикле я копирую буфер попиксельно. Лучше наверно сделать сразу всю область копировать через memcpy например, но у меня ошибка вылазит постоянно. memcpy(buffer, (void*)dest, (MaxX-MinX) * (MaxY- MinY) * 4); где buffer типа void* , а dest типа int*, если это важно, то int* ссылает на glbuffer->memory типа void*. И этаже операция будет быстрее выполняться чем 200*200 операций присваивания и инкремента?

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

  11. Цитата

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

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

    • Плюс 1
  12. Я щас послушал музыку из ролика и мне так грустно стало((((
    Я уже не живу там, но всегда скучаю по нему. Постоянно актированные дни были, вместо школы ходили в футбол играть, здоровенные сугробы в каждом дворе, гонки упряжок с оленями. Каникулы летние всегда начинались в конце апреля, а учеба с середины сентября - школа была не против) Вот где я щас живу никто даже не знает, что такое актированный день(( Это какая то презентация, а не видео, но пойдет думаю)    На 1.38 показан парк - я жил рядом с ним, в 100 метрах оттуда, а теперь даже моего дома уже нету, снесли барак =(((

  13. Цитата

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

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

    Цитата

    png  заюзай 

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

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

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

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

  14. Цитата

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

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

  15. Цитата

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

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

  16. Цитата

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

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

  17. Цитата

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

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

  18.  

    Цитата

     

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

     

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

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

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

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