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

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

    Запланировано Прикреплена Закрыта Перенесена Общий
    15 Сообщения 4 Posters 350 Просмотры
    Загружаем больше сообщений
    • Сначала старые
    • Сначала новые
    • По количеству голосов
    Ответить
    • Ответить, создав новую тему
    Авторизуйтесь, чтобы ответить
    Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
    • 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
                        • Первое сообщение
                          Последнее сообщение