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

Xipho

Администраторы
  • Постов

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

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

    42

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

  1. 1 час назад, Antonshka сказал:

    Пришлось сравнивать с нолем, вместо not. Хотя в С++ в таких ситуациях not отрабатывает нормально.

    В плюсах есть автокаст. То есть, 0 трактуется как false, а любой не ноль - как true. В луа такого, похоже, нет, потому нужны явные сравнения.

  2. 48 минут назад, angrey551 сказал:

    правильно всё сказано, если бы они хотели они могли за 1-4 часа обновить чит но им лень, им только деньги-правильно это не люди а свиньи

    Чел, тебя потроллили. Это был сарказм. Каждый труд должен быть оплачен, в этом суть. Как говорится, не хочешь - давай как хочешь. А хочешь - так давай. Поясню

    1. Хочешь плюшки - плати

    2. Не хочешь платить - будь доволен тем, что есть

    3. Хочешь плюшки и не хочешь платить - сделай сам. Потрать 1-4 часа времени, и сделай.

     

    50 минут назад, angrey551 сказал:

    значит просто трудно для людей сделать, сделал бы для людей, а они в ответ поблагодарили бы

    значит просто трудно заплатить, заплатил бы автору, а он в ответ сделал бы. 


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

  3. 7 часов назад, Antonshka сказал:

    function UDF1_CETimer1Timer(sender) if someScriptNameInTable.Active == false then someScriptNameInTable.Active = true elseif someScriptNameInTable.Active == true then someScriptNameInTable.Active = false end end

    Тогда уж вот так:

    function UDF1_CETimer1Timer(sender)
       someScriptNameInTable.Active = !someScriptNameInTable.Active
    end

    Правда не уверен, что not есть в луа. Вроде должен быть.

  4. 5 минут назад, angrey551 сказал:

    Почему пишет в чите: Версия чита устарела, а сегодня была обнова в The hunter classic обновите чит 08.12.2021

    Все просьбы об обновлении через киви-кошелек автору чита.

  5. 4 часа назад, Antonshka сказал:

    Я вчера попробовал по твоему совету WS_EX_LAYERED для дочерних элементов без записи в манифесте

    Я ж говорю, я использовал его только для главного окна, потому не знаю, как работает для дочерних.

    4 часа назад, Antonshka сказал:

    icc.dwICC = ICC_WIN95_CLASSES;

    Ну и тут классы версии винды 95 всё же несколько устарели, как мне кажется. Да и слои они явно не поддерживают. Может, тут надо было константу с более свежей версией поставить, не?

    А, нет, это просто константы для набора классов. Да, значит, для дочерних обязательно нужен манифест, если нет другого способа нужную версию общих контролов затащить.

  6. 13 часов назад, Antonshka сказал:

    контролы со стилем WS_EX_LAYERED не будут отображаться совсем. Только лишь главное родительское окно, для которого по видимо эта возможность установлена по умолчанию.

    Да, вполне возможно, я этот стиль использовал только для главного окна.

     

    13 часов назад, Antonshka сказал:

    InitCommonControlsEx как я понял нужно вызывать для загрузки Comctl32.dll. Чтобы была возможность использовать Tooltip, Toolbar, и им подобные.

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

  7. 3 часа назад, Antonshka сказал:

    Всё же есть решение - Layered Windows

    А, точно, я про это забыл

     

    3 часа назад, Antonshka сказал:

    Чтобы проект Visual Studio поддерживал Layered Windows, необходимо в файле манифеста указать следующее

    Необязательно, можно в мейне на старте приложения вызывать InitCommonControls или InitCommonControlsEx. Будет тот же эффект.

     

    3 часа назад, Antonshka сказал:

    Далее для всех них нужно вызвать API функцию SetLayeredWindowAttributes.

    С помощью этой функции, примененной к главному окну, можно установить его прозрачность. Возможно, исчезновение мерцания - это побочный эффект.

  8. 26 минут назад, Antonshka сказал:

    то BitBlt в WM_PAINT  отработает корректно. Но перед этим будет стерт весь фон

    Нет, при блиттинге фон не стирается, поскольку блиттинг может быть разного типа. С помощью блиттинга, например, можно накладывать картинки по маске

    28 минут назад, Antonshka сказал:

    Просто я подумал, как в твоем примере будет вести себя отображение, если начать изменять размер главного окна, потянув его за уголок. Ведь будет послано сообщение WM_ERASE и WM_PAINT для всех элементов окна, включая его самого. И по идее вначале  будет стерт весь фон, а потом выполнен case WM_PAINT.

    Возьми исходник из урока, да протестируй, проблемы-то нет ) 

    28 минут назад, Antonshka сказал:

    Только вот этот, текстовый.

    Возможно, как раз потому, что для него срабатывает WM_ERASEBKGND

  9. 11 часов назад, Antonshka сказал:

    Попробовал убрать RDW_INVALIDATE. RDW_ERASE, - все равно мерцает.

    RDW_INVALIDATE убирать не надо. Ну и самый лучший вариант избавиться от мерцания - двойная буферизация. Суть - форму ты отрисовываешь на фоновый контекст, а по событию WM_PAINT фоновый контекст копируешь блиттингом на основной. Правда, с виндовыми контролами я так не делал, там я слегка по-другому делал. Поищу у себя в закромах, может, найду исходник одного из древних трейнеров, на котором я делал замену фона при нажатии на кнопку, но не факт, что оно у меня сохранилось. А по двойной буферизации можно посмотреть у меня на канале уроки по графике для винды.

  10. BS_OWNERDRAW для кнопки и обработка отрисовки в оконной процедуре (сообщение WM_PAINT) родительского окна. И для RedrawWindow достаточно RDW_INVALIDATE. RDW_ERASE делает стирание перед перерисовкой, как и RDW_ERASENOW. Возможно, они являются причиной мерцания.

  11. 15 часов назад, Gauuss сказал:

    krocki, SNES игры взламываешь? Нужна игра Teenage Mutant Ninja Turtles: Turtles In Time.

    Совсем ребята обленились. Снесовские игры ломаются так же легко, как и дендевские. Самостоятельно пробуй.

  12. 3 часа назад, hizosit сказал:

    вы непрофессионально просите финансовую помощь..

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

  13. 3 часа назад, hizosit сказал:

    намерение помогать людям - это все что имеет значение, деньги - нет

    Очень круто сказал! Что ж, раз для тебя имеет значение намерение помогать людям, а деньги не имеют значение, тогда помоги LIRW'у деньгами, чтобы у него появилось намерение потратить время и силы на изготовление трейнера для тебя ))

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

  14. 1 час назад, hizosit сказал:

    Пожалуйста сохраните те же функции и для версии Steam

    заранее спасибо

    Как он тебе будет делать, если у него нет этой игры в стиме? Ты ему ее купишь?

  15. 8 часов назад, nJammi сказал:

    постоянное слежение за значением в игре делается через циклы или как нибудь еще можно реализовать в C#

    Через циклы, ага. А можно и каким-нибудь фоновым воркером асинхронно это делать. Но это пока не твой уровень, раз у тебя возникают такие вопросы. В будущем обязательно разберешься ) 

     

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

    если его задействовать в цикле то он постоянно будет отрывать и закрывать процесс. Это так и делается или открывать в начале цикла и закрывать уже перед закрытием проги

    Ты можешь открыть процесс перед стартом цикла и закрыть его по завершении цикла. А можешь открыть процесс при старте твоего трейнера, а закрыть перед выходом из трейнера - на твое усмотрение. Думаю, второй вариант будет предпочтительнее, если ты собираешься делать больше одного цикла (то есть, мониторить/морозить больше одного значения)

  16. 1 час назад, KRYPTOPUNK сказал:

    Экранная клавиатура) 

    Хороший вариант. Но ты и не говорил, что трейнер не работает. Я хочу добиться ответа от автора претензий, а именно ответа, как он понял, что трейнер не работает, если горячие клавиши не использовал.

  17. 14 часов назад, Александр сказал:

    использовал горячие клавиши-ничего не происходило

    Как ты их мог использовать, если у тебя нет numlock'a и, соответственно, numpad'a? Это не те циферки, что над буковками, это те циферки, что на цифровом блоке справа. Раз у тебя его нет, то как ты мог их нажимать?

  18. 53 минуты назад, Александр сказал:

    Я включал трейнер и до, и после запуска игры-не работает

    А что именно не работает? Ты нажимаешь клавишу, которая написана в трейнере (на цифровой клавиатуре при включенном Numlock), и ничего не происходит? Распиши сценарий по шагам, как именно ты используешь трейнер, и в какой именно момент у тебя не срабатывают опции. Например

    1. Запустил игру. Свернул игру

    2. Запустил трейнер

    3. Нажал горячую клавишу, описанную в трейнере для определенной опции

    4. Опция не сработала, но игра выдала ошибку и завершилась

        или

    4. Опция не сработала, ничего не произошло, в игре ничего не изменилось

        или

    4. Опция сработала, но игра выдала ошибку и завершилась

       или

    4. Опция не сработала, взорвался компьютер

       или

    4. Не включайте опцию - галактеко апасносте!!!

     

    57 минут назад, Александр сказал:

    Набор цифр постоянен

    Вот эту фразу я вообще не понял. Какой набор цифр? На цифровом блоке клавиатуры? Разумеется, он там будет постоянен. Ну, если ты кнопочки местами не поменяешь.

     

    57 минут назад, Александр сказал:

    Да никак я его не включаю

    Так, падажжи-ка. Если ты его никак не включаешь, то почему утверждаешь, что он не работает? Как ты можешь знать, работает он, или нет, если ты его даже не включаешь?

  19. 11 часов назад, Antonshka сказал:

    Я это ради освоения WinAPI

    Нужно понимать, что винапи проектировался еще во времена 16-битной винды, и никак не был рассчитан на то, что его будут натягивать на ООП. Отсюда необходимость в огромном количестве всевозможных костылей вокруг этого дела. Но, если так уж хочется упарываться, почитай книгу Фень Юаня "Программирование графики для Windows". Основная тема у него там, конечно же, не оборачивание окошек в ООП, но это он делает. Возможно, там почерпнешь какие-нибудь приемы полезные.

  20. У тебя есть оконная процедура. Если для контрола ты вызовешь InvalidateRect, то в оконной процедуре ты можешь отловить WM_PAINT и перерисовать контрол. Только у контрола должен быть OWNERDRAW флаг, если мне не изменяет память. Но, имхо, заниматься этим - неблагодарное дело. Есть фреймворки, на них можно решать задачи нормально. Без кучи огородов и костылей.

  21. 43 минуты назад, Pozzaza сказал:

    Правильно я ли понимаю, что адрес я могу вытянуть из регистра ?

    Возможно. Я не знаю, какой именно адрес ты хочешь вытянуть

     

    43 минуты назад, Pozzaza сказал:

     На сколько это целесообразно ?

    Вообще не понял вопрос

     

    43 минуты назад, Pozzaza сказал:

    Dumper нужно делать Internal или External ?

    Как ты захочешь делать, так и будешь делать.

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

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

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