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

    Mafia II-DE v.1.0.1 вращение колёс

    Запланировано Прикреплена Закрыта Перенесена Общий
    15 Сообщения 4 Posters 350 Просмотры
    Загружаем больше сообщений
    • Сначала старые
    • Сначала новые
    • По количеству голосов
    Ответить
    • Ответить, создав новую тему
    Авторизуйтесь, чтобы ответить
    Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
    • G
      garik66 @Partizan1078
      отредактировано

      Пользователь @Partizan1078 написал в Mafia II-DE v.1.0.1 вращение колёс:
      Попробуй все-таки так:

      newmem:
      cmp [hot_key],01
      jne short @F
      mov [r14+000003BC],(float)1000
      // mov [hot_key],00 // без этой строки
      @@:
      mulss xmm14,[r14+000003BC]
      jmp return

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

        @garik66 Тогда как мне заставить машину больше не разгоняться. Если только в самой таблице вешать ещё одну кнопку на обнуление.

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

          Пользователь @Partizan1078 написал в Mafia II-DE v.1.0.1 вращение колёс:

          Если только в самой таблице вешать ещё одну кнопку на обнуление.

          как вариант.
          Странно что счетчик не сработал - я предполагал, что инструкция пробегает поочередно все 4 колеса.

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

            @garik66 инструкция может работать параллельно в четырех потоках, как вариант.

            @Partizan1078 тебе нужно комплексное условие. Проще всего это сделать на Lua в СЕ, но можно и на ассемблере. Суть в том, что тебе нужен не один флаг, а четыре - на каждое колесо, и хранить во флаге не только сам флаг, но и адрес колеса. По адресу сверяться, включен ли флаг, а по горячей клавише выставлять флаг для всех четырех адресов. Если непонятно, пиши, попробую подробнее объяснить

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

              Забил и сделал проще просто повесил на обнуление ещё одну кнопку. Проще говоря одна боковая кнопка мыши включает а другая боковая кнопка выключает.

                cmp [hot_key],01
                jne @F
                mov [r14+000003BC],(float)300
              @@:
                mulss xmm14,[r14+000003BC]
              

              А вот такой скрипт со счётчиком.

              [ENABLE]
              aobscanmodule(car_02,Mafia II Definitive Edition.exe,F3 45 ? ? ? ? ? ? ? F3 44 ? ? ? ? ? ? ? F3 44 ? ? ? ? ? ? ? 44 0F)
              alloc(newmem,$1000,car_02)
              label(return)
              label(check)
              label(hot_key)
              registersymbol(hot_key)
              registersymbol(car_02)
              
              newmem:
                cmp [hot_key],01
                jne @F
                mov [r14+000003BC],(float)100
                add [check],01
                cmp [check],03
                jne newmem
                mov [hot_key],00
                mov [check],00
              @@:
                mulss xmm14,[r14+000003BC]
                jmp return
              
              hot_key:
              dd 00
              check:
              dd 00
              
              car_02:
                jmp newmem
                nop 4
              return:
              
              [DISABLE]
              car_02:
              db F3 45 0F 59 B6 BC 03 00 00
              unregistersymbol(*)
              dealloc(newmem)
              

              И он не работает.

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

                Пользователь @Partizan1078 написал в Mafia II-DE v.1.0.1 вращение колёс:

                И он не работает.

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

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

                  Пользователь @Partizan1078 написал в Mafia II-DE v.1.0.1 вращение колёс:

                  И он не работает.

                  Попробуй так:

                  newmem:
                    cmp [hot_key],01
                    jne @F
                    mov [r14+000003BC],(float)100
                    add [check],01
                    cmp [check],03
                    jne @F
                    mov [hot_key],00
                    mov [check],00
                  @@:
                    mulss xmm14,[r14+000003BC]
                    jmp return
                  

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

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

                    @garik66 Большое спасибо!
                    Чтот я тупанул и не обратил внимания на свою ошибку.
                    Сделал как вы посоветовали.
                    И всё заработало как надо.

                    [ENABLE]
                    aobscanmodule(car_02,Mafia II Definitive Edition.exe,F3 45 ? ? ? ? ? ? ? F3 44 ? ? ? ? ? ? ? F3 44 ? ? ? ? ? ? ? 44 0F)
                    alloc(newmem,$1000,car_02)
                    label(return)
                    label(check)
                    label(hot_key)
                    registersymbol(hot_key)
                    registersymbol(car_02)
                    
                    newmem:
                      cmp [hot_key],01
                      jne @F
                      mov [r14+000003BC],(float)500
                      add [check],01
                      cmp [check],64
                      jne @F
                      mov [hot_key],00
                      mov [check],00
                    @@:
                      mulss xmm14,[r14+000003BC]
                      jmp return
                    
                    hot_key:
                    dd 00
                    check:
                    dd 00
                    
                    car_02:
                      jmp newmem
                      nop 4
                    return:
                    
                    [DISABLE]
                    car_02:
                    db F3 45 0F 59 B6 BC 03 00 00
                    unregistersymbol(*)
                    dealloc(newmem)
                    

                    https://youtu.be/YkAjpX1aaBI

                    Чтобы скрипт обернуть в тег есть кнопочка "код"

                    G 1 ответ Последний ответ Ответить Цитировать 2
                    • G
                      garik66 @Partizan1078
                      отредактировано

                      Пользователь @Partizan1078 написал в Mafia II-DE v.1.0.1 вращение колёс:

                      И всё заработало как надо.

                      Рад

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

                        Предполагаю что ошибка в отсутствии pushfq и popfq.
                        Инструкция cmp меняет флаги. По правильному нужно всегда сохранять/восстанавливать регистр EFLAGS.

                        newmem:
                        pushfq 
                          cmp [hot_key],01
                          jne short @F
                          mov [r14+000003BC],(float)1000
                          mov [hot_key],00
                        @@:
                        popfq
                          mulss xmm14,[r14+000003BC]
                          jmp return
                        
                        G 1 ответ Последний ответ Ответить Цитировать 0
                        • G
                          garik66 @Antonshka
                          отредактировано

                          Пользователь @Antonshka написал в Mafia II-DE v.1.0.1 вращение колёс:

                          Предполагаю что ошибка в отсутствии pushfq и popfq.

                          вопрос же решили с партизаном.
                          по твоему скрипту тоже только одно колесо сработает. один раз.

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