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

    [Cheat Engine] Как сделать множитель урона?

    Запланировано Прикреплена Закрыта Перенесена Взлом игр (вопросы и ответы)
    10 Сообщения 4 Posters 588 Просмотры
    Загружаем больше сообщений
    • Сначала старые
    • Сначала новые
    • По количеству голосов
    Ответить
    • Ответить, создав новую тему
    Авторизуйтесь, чтобы ответить
    Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
    • HereticH
      Heretic
      отредактировано

      Здравствуйте! Скачал готовую таблицу на игру и потихоньку добавлял в неё некоторые новые функции которые мне были нужны и вот руки дошли до урона, в таблице уже был скрипт который меня цифру урона, но я хотел сделать именно множитель, что, по итогу, у меня не вышло. Поэтому прошу помощи в этом.

      Вот скрипт на изменение урона из готовой таблицы:

      [ENABLE]
      
      aobscanmodule(GunDamage,$process,F3 0F 10 96 18 01 00 00 48)
      alloc(newmem,$100,GunDamage)
      
      label(code)
      label(return)
      
      newmem:
        mov [rsi+00000118],(float)25
      
      code:
        movss xmm2,[rsi+00000118]
        jmp return
      
      GunDamage:
        jmp newmem
        nop 3
      return:
      registersymbol(GunDamage)
      
      [DISABLE]
      
      GunDamage:
        db F3 0F 10 96 18 01 00 00
      
      unregistersymbol(GunDamage)
      dealloc(newmem)
      

      Я только начинаю осваивать CE, поэтому буду рад коду с подробным описанием.
      Заранее благодарю за любую помощь!

      На всякий случай укажу тут:
      Игра: Deep Rock Galactic
      Автор таблицы: Ray2160

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

        @Heretic привет! Ты можешь считывать цифру урона, ты можешь считать цифру урона в xmm2, как у тебя в секции оригинального кода, а потом домножить эту цифру прямо в регистре на нужный множитель. Что-то вроде того (проверь на правильность, писал "на коленке"):

        label(code)
        label(return)
        
        newmem:
          movss xmm2,[rsi+00000118]
          mulss xmm2,[multiplier]
          jmp return
        
        multiplier:
           dd (float)5.0
        
        GunDamage:
          jmp newmem
          nop 3
        return:
        registersymbol(GunDamage)
        
        [DISABLE]
        
        GunDamage:
          db F3 0F 10 96 18 01 00 00
        
        unregistersymbol(GunDamage)
        dealloc(newmem)
        
        HereticH 1 ответ Последний ответ Ответить Цитировать 1
        • HereticH
          Heretic @StoneWeaver
          отредактировано

          @StoneWeaver
          Спасибо за помощь!
          Но кажется оно немного кривовато работает, изначально сработало (правда при установке значения 2.0 он сносил гораздо больше, чем в 2 раза), но потом урон вернулся к прежнему значению и перестал меняться. Есть ли возможность как-то умножить значение [rsi+00000118], а не xmm2?

          Я просто скопировал и вставил часть вашего кода, выглядел скрипт при тесте вот так:

          [ENABLE]
          
          aobscanmodule(GunDamage,$process,F3 0F 10 96 18 01 00 00 48)
          alloc(newmem,$100,GunDamage)
          
          label(return)
          
          newmem:
            movss xmm2,[rsi+00000118]
            mulss xmm2,[multiplier]
            jmp return
          
          multiplier:
             dd (float)2.0
          
          GunDamage:
            jmp newmem
            nop 3
          return:
          registersymbol(GunDamage)
          
          [DISABLE]
          
          GunDamage:
            db F3 0F 10 96 18 01 00 00
          
          unregistersymbol(GunDamage)
          dealloc(newmem)
          
          G 2 ответов Последний ответ Ответить Цитировать 0
          • G
            garik66 @Heretic
            отредактировано

            @Heretic попробуй дописать строку в скрипт
            newmem:
            movss xmm2,[rsi+00000118]
            mulss xmm2,[multiplier]
            movss [rsi+00000118],xmm2 // вот эту
            jmp return

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

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

                При умножении урона нужна инструкция которая срабатывает 1 раз за 1 выстрел. Но т.к. игра сделана на ue4 то я предполагаю можно ручками найти множитель. Который предусмотрен самим движком. Он 100% есть.
                А вообще с утра ещё поковырялся.
                И нашёл урон разного оружия.
                cacfd8f1-8dc0-4d91-8914-21df7a49c9e3-Dmg.png
                FSD-Win64-Shipping.7z
                v.1.39.102546

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

                  @garik66
                  Здравствуйте!
                  Попробовал, не помогло и кажется, проблема, что возникла в прошлый раз (что урон вернулся в норму и скриптом не изменялся) теперь на постоянной основе, но при этом скрипт на изменение цифры урона работает

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

                    @Partizan1078
                    Здравствуйте!
                    Благодарю за подсказку, попробую поискать какой-нибудь множитель (надеюсь моих навыков хватит).
                    Не могли бы вы рассказать, если не сложно, как вы искали урон оружия?

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

                      @Heretic
                      https://fearlessrevolution.com/viewtopic.php?f=23&t=14414
                      Как я нашёл урон..... Использовал таблицу-дампер-парсер структур...
                      Плюс приблизительное понимание где что находится в структурах движка UE4 (если разраб конкретной игры ничего не поменял)

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

                        @Partizan1078
                        Понял, благодарю!
                        Постараюсь разобраться, может найду ещё что-нибудь интересное для добавления в таблицу)

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