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

RimWorld - Быстрая постройка

Запланировано Прикреплена Закрыта Перенесена Общий
5 Сообщения 2 Posters 314 Просмотры
Загружаем больше сообщений
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • D
    DieVis
    отредактировано 30 апр. 2023 г., 16:51

    Привет всем.
    Может кто подсказать или (предложить свои варианты), вот есть скрипт, комментарии....
    Суть в том чтобы строить быстро, к примеру на быстрый разбор я скрипт сделал, всё норм.
    А вот с постройкой понять не могу что делать...
    При постройке чего-либо значение увеличивается по +C0. Макс. значение я не нашёл, а если держать скрипт постоянно вкл., то через какое-то время игра начинает тупить.

    { Game   : RimWorldWin64.exe
      Version: 1.4.3 rev
      Date   : 2022-10-18
      Author : DieVision }
    usemono()
    [ENABLE]
    //F1 F3 0F 10 86 C0 00 00 00
    alloc(newmem,2048,RimWorld.Frame:get_PercentComplete+f)
    label(code)
    label(return)
    
    newmem:
    mov [rsi+000000C0],(float)999999
    
    code:
      movss xmm0,[rsi+000000C0] //workDone
      jmp return
    
    RimWorld.Frame:get_PercentComplete+f:
      jmp newmem
      nop 3
    
    return:
    [DISABLE]
    dealloc(newmem)
    
    RimWorld.Frame:get_PercentComplete+f:
    movss xmm0,[rsi+000000C0]
    //  db F3 0F 10 86 C0 00 00 00
    
    { // ORIGINAL CODE - INJECTION POINT: RimWorld.Frame:get_PercentComplete+f
    1A9A6A54723: 05 04 03 01 50                 - add eax,50010304
    1A9A6A54728: 00 00                          - add [rax],al
    1A9A6A5472A: 00 00                          - add [rax],al
    1A9A6A5472C: 00 00                          - add [rax],al
    1A9A6A5472E: 00 00                          - add [rax],al
    RimWorld.Frame:get_PercentComplete: 55                             - push rbp
    RimWorld.Frame:get_PercentComplete+1: 48 8B EC                       - mov rbp,rsp
    RimWorld.Frame:get_PercentComplete+4: 48 83 EC 30                    - sub rsp,30
    RimWorld.Frame:get_PercentComplete+8: 48 89 75 F8                    - mov [rbp-08],rsi
    RimWorld.Frame:get_PercentComplete+c: 48 8B F1                       - mov rsi,rcx
    // ---------- INJECTING HERE ----------
    RimWorld.Frame:get_PercentComplete+f: F3 0F 10 86 C0 00 00 00        - movss xmm0,[rsi+000000C0]
    // ---------- DONE INJECTING  ----------
    RimWorld.Frame:get_PercentComplete+17: F3 0F 5A C0                    - cvtss2sd xmm0,xmm0
    RimWorld.Frame:get_PercentComplete+1b: F2 0F 11 45 F0                 - movsd [rbp-10],xmm0
    RimWorld.Frame:get_PercentComplete+20: 48 8B CE                       - mov rcx,rsi
    RimWorld.Frame:get_PercentComplete+23: 66 66 90                       - nop 3
    RimWorld.Frame:get_PercentComplete+26: 49 BB 80 C9 8D 7A A9 01 00 00  - mov r11,RimWorld.Frame:get_WorkToBuild
    RimWorld.Frame:get_PercentComplete+30: 41 FF D3                       - call r11
    RimWorld.Frame:get_PercentComplete+33: F3 0F 5A C8                    - cvtss2sd xmm1,xmm0
    RimWorld.Frame:get_PercentComplete+37: F2 0F 10 45 F0                 - movsd xmm0,[rbp-10]
    RimWorld.Frame:get_PercentComplete+3c: F2 0F 5E C1                    - divsd xmm0,xmm1
    RimWorld.Frame:get_PercentComplete+40: F2 0F 5A C0                    - cvtsd2ss xmm0,xmm0 }
    

    P.S. Кстати куда "Спойлеры делись? Что-то я их не вижу.
    Простите если вдруг кто-то ничего не понял, я сам уже мало чего понимаю =[

    L 1 ответ Последний ответ 1 мая 2023 г., 15:27 Ответить Цитировать 0
    • L
      LIRW @DieVis
      отредактировано 1 мая 2023 г., 15:27

      Пользователь @DieVis написал в RimWorld - Быстрая постройка:

      Макс. значение я не нашёл

      Оно тут...в rbp-54 не регион не чего не указывал. Полный скан.
      А на твоей функции, не один адрес... Хотя я построил, только одну постройку.

      [ENABLE]
        aobscan(_building_,F3 41 0F 11 AF C0 00 00 00)
        alloc(_building_mem,$1000,_building_)
        label(_building_back_)
       _building_mem:
        movss xmm5,[rbp-54]
        movss [r15+000000C0],xmm5
        jmp _building_back_
       _building_:
        jmp _building_mem
        db 90 90 90 90
       _building_back_:
      registersymbol(_building_)
      [DISABLE]
       _building_:
        db F3 41 0F 11 AF C0 00 00 00
      unregistersymbol(_building_)
        dealloc(_building_mem)
      
      D 2 ответов Последний ответ 2 мая 2023 г., 13:33 Ответить Цитировать 2
      • D
        DieVis @LIRW
        отредактировано 2 мая 2023 г., 13:33

        @LIRW Не представляю как вы это нашли, в голове не укладывается.
        Наверное это не моё, пора менять образ жизни.
        Благодарю за код! Когда-нибудь отплачу.

        L 1 ответ Последний ответ 4 мая 2023 г., 08:38 Ответить Цитировать 0
        • L
          LIRW @DieVis
          отредактировано 4 мая 2023 г., 08:38

          Пользователь @DieVis написал в RimWorld - Быстрая постройка:

          Не представляю как вы это нашли, в голове не укладывается.

          Вот кусок кода... Там всё показано - более точно!
          005.jpg

          1 ответ Последний ответ Ответить Цитировать 1
          • D
            DieVis @LIRW
            отредактировано 5 мая 2023 г., 15:26

            Пользователь @LIRW написал в RimWorld - Быстрая постройка:

            aobscan(building,F3 41 0F 11 AF C0 00 00 00 F3)
            Иначе активируется не по нужному адресу.

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