GameHackLab[RU]
    • Категории
    • Последние
    • Метки
    • Популярные
    • Пользователи
    • Группы
    • Зарегистрироваться
    • Войти

    Вопрос по теме написание макросов языке на lua

    Запланировано Прикреплена Закрыта Перенесена Взлом игр (начинающим)
    39 Сообщения 4 Posters 1.1k Просмотры
    Загружаем больше сообщений
    • Сначала старые
    • Сначала новые
    • По количеству голосов
    Ответить
    • Ответить, создав новую тему
    Авторизуйтесь, чтобы ответить
    Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
    • P
      Pitronic @StoneWeaver
      отредактировано Pitronic

      Пользователь @StoneWeaver написал в Вопрос по теме написание макросов языке на lua:

      справь ошибку синтаксиса.

      в строке 2 на которую ругается се {$lua} я везде использую когда луа в таблицу пишу с этим скриптом такая ошибка, я тоже думал что в ней дело но когда стираю код оставив только {$asm} скрипт добавляется без проблем значит не в этой строке а в самом коде ошибка потому что се думает что это не lua код и говорить что синтаксис {$lua} ошибка.

      StoneWeaverS 1 ответ Последний ответ Ответить Цитировать 0
      • StoneWeaverS
        StoneWeaver administrators @Pitronic
        отредактировано

        @Pitronic А я разве сказал "внимательно посмотри на вторую строку"? Я сказал "внимательно посмотри свой скрипт", что подразумевает весь скрипт целиком.

        c99ecda8-e036-4a56-89dd-6503ca05298a-image.png

        1 ответ Последний ответ Ответить Цитировать 0
        • Partizan1078P
          Partizan1078
          отредактировано

          видео

          1 ответ Последний ответ Ответить Цитировать 0
          • Partizan1078P
            Partizan1078
            отредактировано

            Для блокнота

            [ENABLE]
            {$lua}
            function send_keys(key)
              for i=1,string.len(key) do
                 local char = key:upper():sub(i,i)
                 doKeyPress(string.byte(char,1))
              end
            end
            
            send_keys("gamehacklab")
            
            keyDown(VK_LCONTROL)
            keyDown(VK_A)
            keyUp(VK_LCONTROL)
            keyUp(VK_A)
            {$asm}
            [DISABLE]
            
            P 1 ответ Последний ответ Ответить Цитировать 0
            • P
              Pitronic
              отредактировано

              Спасибо Алексей.

              1 ответ Последний ответ Ответить Цитировать 0
              • P
                Pitronic @Partizan1078
                отредактировано

                Пользователь @Partizan1078 написал в Вопрос по теме написание макросов языке на lua:

                Для блокнота

                Спасибо работает.

                Partizan1078P 1 ответ Последний ответ Ответить Цитировать 0
                • Partizan1078P
                  Partizan1078 @Pitronic
                  отредактировано

                  @Pitronic Можно ещё в функцию всё это заморочить и горячую кнопку назначить.

                  [ENABLE]
                  {$lua}
                   function ctrl_i_pr()
                     keyDown(VK_LCONTROL) keyDown(VK_A)
                     keyUp(VK_LCONTROL) keyUp(VK_A)
                    end
                    createHotkey(ctrl_i_pr, VK_DOWN)
                  {$asm}
                  [DISABLE]
                  
                  P StoneWeaverS 2 ответов Последний ответ Ответить Цитировать 0
                  • P
                    Pitronic @Partizan1078
                    отредактировано

                    Пользователь @Partizan1078 написал в Вопрос по теме написание макросов языке на lua:

                    Можно ещё в функцию всё это заморочить и горячую кнопку назначить.
                    Спасибо, тоже пригодится.

                    1 ответ Последний ответ Ответить Цитировать 0
                    • StoneWeaverS
                      StoneWeaver administrators @Partizan1078
                      отредактировано

                      @Partizan1078 в очередной раз Питронику было предоставлено готовое решение, и в очередной раз этим самым была ему оказана медвежья услуга. Потому что в очередной раз он не станет думать своей головой, и ни капли не продвинется по пути становления нормальным геймхакером.

                      P 1 ответ Последний ответ Ответить Цитировать 0
                      • P
                        Pitronic @StoneWeaver
                        отредактировано

                        @StoneWeaver Не согласен. Когда я первый раз зарегистрировался на форуме прошлого движка, ещё с другим ником который забанили, я даже не знал команд mov и add сейчас я ассемблер знаю наверное весь, и даже помогал другим по этой теме на прошлом форуме. Вы наверное помните эту первую команду именно вы подсказали. Я не искал инфу в инете, не читал справочники, не изучал статьи. Всё это я получил благодаря так называемым готовым решениям. Не чего страшного если пользователь спрашивает как написать тот или другой скрипт.

                        1 ответ Последний ответ Ответить Цитировать 0
                        • Partizan1078P
                          Partizan1078
                          отредактировано Partizan1078

                          Питроник спрашивал в чате как сравнить.

                          [ENABLE]
                          {$lua}
                          
                          function cmp_value()
                          if (readInteger('[code]+7F8') == 100) then -- если не равно 100 тогда прыжок на end
                             writeInteger ('[code]+7F8', 999)
                          end
                          end
                          createHotkey(cmp_value, VK_UP)
                          
                          {$asm}
                          
                          aobscanmodule(INJECT_001,Tutorial-x86_64.exe,81 BB F8 07 00 00 E8 03 00 00) // should be unique
                          alloc(newmem,$1000,INJECT_001)
                          label(code)
                          label(return)
                          registersymbol(code)
                          registersymbol(INJECT_001)
                          
                          newmem:
                            mov [code],rbx
                            cmp [rbx+000007F8],000003E8
                            jmp return
                          
                          code:
                          dq 00
                          
                          INJECT_001:
                            jmp newmem
                            nop 5
                          return:
                          
                          [DISABLE]
                          INJECT_001:
                          db 81 BB F8 07 00 00 E8 03 00 00
                          unregistersymbol(*)
                          dealloc(newmem)
                          
                          P 1 ответ Последний ответ Ответить Цитировать 0
                          • P
                            Pitronic @Partizan1078
                            отредактировано

                            @Partizan1078 твой ример какой шаг в туторе?

                            Partizan1078P 1 ответ Последний ответ Ответить Цитировать 0
                            • Partizan1078P
                              Partizan1078 @Pitronic
                              отредактировано Partizan1078

                              @Pitronic Первый шаг. Тутор 64 бита который.
                              СЕ 7.5

                              1 ответ Последний ответ Ответить Цитировать 0
                              • Partizan1078P
                                Partizan1078
                                отредактировано Partizan1078

                                У меня нубский вопрос. Ни как не догоню.
                                Почему вот так всё работает как надо.

                                [ENABLE]
                                {$lua}
                                function send_keys(key)
                                  for i=1,string.len(key) do
                                     local char = key:upper():sub(i,i)
                                     doKeyPress(string.byte(char,1))
                                  end
                                end
                                
                                send_keys("gamehacklab")
                                
                                keyDown(VK_LCONTROL)
                                keyDown(VK_A)
                                keyUp(VK_LCONTROL)
                                keyUp(VK_A)
                                
                                {$asm}
                                [DISABLE]
                                
                                

                                А так нифига

                                [ENABLE]
                                {$lua}
                                function send_keys(key)
                                  for i=1,string.len(key) do
                                     local char = key:upper():sub(i,i)
                                     doKeyPress(string.byte(char,1))
                                  end
                                end
                                
                                send_keys("gamehacklab")
                                
                                function ctrl_i_pr()
                                   keyDown(VK_LCONTROL) keyDown(VK_A)
                                   keyUp(VK_LCONTROL) keyUp(VK_A)
                                  end
                                
                                {$asm}
                                [DISABLE]
                                
                                

                                Описание

                                P StoneWeaverS 2 ответов Последний ответ Ответить Цитировать 0
                                • P
                                  Pitronic @Partizan1078
                                  отредактировано Pitronic

                                  @Partizan1078 Я точно не скажу, сам луа пока плохо знаю (а если точнее совсем не знаю, есть готовые шаблоны которые использую) но мне кажется там конфликт двух команд. После строки function.

                                  Partizan1078P 1 ответ Последний ответ Ответить Цитировать 0
                                  • Partizan1078P
                                    Partizan1078 @Pitronic
                                    отредактировано

                                    @Pitronic При чём тут это. Вот несколько функций работает всё ок. Это ускорение в гта делал.

                                    [ENABLE]
                                    {$lua}
                                    function SpeedHack1()
                                    boost = 1.5
                                    if (readBytes('[_date_01]') ~= nil) then
                                    writeFloat ('[_date_01]', readFloat('[_date_01]')*boost)
                                    writeFloat ('[_date_01]+04', readFloat('[_date_01]+04')*boost)
                                    end
                                    end
                                    createHotkey(SpeedHack1, VK_XBUTTON1)
                                    
                                    function SpeedHack2()
                                    boost = 0.5
                                    if (readBytes('[_date_01]') ~= nil) then
                                    writeFloat ('[_date_01]', readFloat('[_date_01]')*boost)
                                    writeFloat ('[_date_01]+04', readFloat('[_date_01]+04')*boost)
                                    end
                                    end
                                    createHotkey(SpeedHack2, VK_XBUTTON2)
                                    {$asm}
                                    aobscanmodule(Boost,GTA5.exe,F3 ? ? ? F3 ? ? ? ? F3 ? ? ? F3 ? ? ? F3 ? ? ? ? ? ? ? 44 39)
                                    alloc(newmem,$1000,Boost)
                                    label(return)
                                    label(_date_01)
                                    registersymbol(_date_01)
                                    registersymbol(Boost)
                                    
                                    newmem:
                                      mov [_date_01],rax
                                      mulss xmm0,[rax]
                                      mulss xmm6,[rax+08]
                                      jmp return
                                    
                                    _date_01:
                                    dq 00
                                    
                                    Boost:
                                      jmp newmem
                                      nop 4
                                    return:
                                    
                                    [DISABLE]
                                    Boost:
                                    db F3 0F 59 00 F3 0F 59 70 08
                                    unregistersymbol(*)
                                    dealloc(newmem)
                                    
                                    1 ответ Последний ответ Ответить Цитировать 0
                                    • StoneWeaverS
                                      StoneWeaver administrators @Partizan1078
                                      отредактировано StoneWeaver

                                      Пользователь @Partizan1078 написал в Вопрос по теме написание макросов языке на lua:

                                      У меня нубский вопрос. Ни как не догоню.
                                      Почему вот так всё работает как надо.

                                      Во втором случае ты функцию ctrl_i_pr объявил, но не вызвал. Объявления мало. Объявление лишь говорит компилятору, что вот такая функция существует, и она будет делать вот это и вот это. А чтобы реально выполнить действия, функцию надо вызвать. Ну или назначить её на горячую клавишу с последующим нажатием этой клавиши, разумеется.

                                      1 ответ Последний ответ Ответить Цитировать 0
                                      • Первое сообщение
                                        Последнее сообщение