Перейти к содержанию

[Fallout Shelter] Как увеличить количество предметов на складе?


Рекомендуемые сообщения

Всем большой привет 👋!

 

Начинаю использовать игру [Fallout Shelter], до этого хорошо получалось справится с таким играми, как [Enter the Gungeon] и [Don't Starve Together], но вот с [Fallout Shelter] небольшое непонимание.

 

Цель: Нужно увеличить количество определённых предметов на складе.

Что уже пробовал:

  1. Я нашёл значение каждого предмета в каждом из разделов (их 4: Оружие, Костюмы, Хлам и Питомцы).
  2. Попытался заменить значение, без результата.
  3. Попытался придумать крюк с инструкциями, то же без результата.

 

Вопрос: Я не прошу дать ответ, как это сделать. Я хочу понять, что я упускаю из виду.

Буду признателен за подробное разъяснения или направления на материал 👨‍🎓.

 

Какие инструкции выводит дизассемблер (много текста).

Спойлер

spacer.png

Спойлер

21D4FD105C6 - 45 1D 02000000          - sbb eax,00000002 { 2 }
21D4FD105CC - 00 00                            - add [rax],al
21D4FD105CE - 00 00                            - add [rax],al
21D4FD105D0 - 55                                  - push rbp
21D4FD105D1 - 48 8B EC                       - mov rbp,rsp
21D4FD105D4 - 53                                  - push rbx
21D4FD105D5 - 56                                  - push rsi
21D4FD105D6 - 57                                  - push rdi
21D4FD105D7 - 41 54                             - push r12
21D4FD105D9 - 41 55                             - push r13
21D4FD105DB - 41 56                             - push r14
21D4FD105DD - 41 57                             - push r15
21D4FD105DF - 48 81 EC B8000000     - sub rsp,000000B8 { 184 }
21D4FD105E6 - 4C 8B F1                        - mov r14,rcx
21D4FD105E9 - 48 89 95 38FFFFFF      - mov [rbp-000000C8],rdx
21D4FD105F0 - 4C 89 85 30FFFFFF      - mov [rbp-000000D0],r8
21D4FD105F7 - 49 8B F1                         - mov rsi,r9
21D4FD105FA - C7 45 94 00000000     - mov [rbp-6C],00000000 { 0 }
21D4FD10601 - C7 45 90 00000000      - mov [rbp-70],00000000 { 0 }
21D4FD10608 - 41 89 B6 78010000       - mov [r14+00000178],esi
21D4FD1060F - 41 C6 86 71010000 00  - mov byte ptr [r14+00000171],00 { 0 }
21D4FD10617 - 0FB6 85 30FFFFFF         - movzx eax,byte ptr [rbp-000000D0]
21D4FD1061E - 41 88 86 70010000        - mov [r14+00000170],al
21D4FD10625 - 49 8B 86 E0000000      - mov rax,[r14+000000E0]
21D4FD1062C - 49 63 8E 78010000      - movsxd  rcx,dword ptr [r14+00000178]
21D4FD10633 - 83 F9 01                         - cmp ecx,01 { 1 }
21D4FD10636 - 40 0F94 C2                   - sete dl
21D4FD1063A - 48 0FB6 D2                   - movzx rdx,dl
21D4FD1063E - 48 8B C8                       - mov rcx,rax
21D4FD10641 - 48 83 EC 20                  - sub rsp,20 { 32 }
21D4FD10645 - 83 38 00                       - cmp dword ptr [rax],00 { 0 }
21D4FD10648 - 49 BB C08B91411D020000 - mov r11,0000021D41918BC0 { (-326416299) }
21D4FD10652 - 41 FF D3                        - call r11
21D4FD10655 - 48 83 C4 20                  - add rsp,20 { 32 }
21D4FD10659 - 0FB6 85 30FFFFFF       - movzx eax,byte ptr [rbp-000000D0]
21D4FD10660 - 85 C0                             - test eax,eax
21D4FD10662 - 74 0A                             - je 21D4FD1066E
21D4FD10664 - 4D 8B 6E 48                 - mov r13,[r14+48]
21D4FD10668 - 4D 8B 66 40                 - mov r12,[r14+40]
21D4FD1066C - EB 08                            - jmp 21D4FD10676
21D4FD1066E - 4D 8B 6E 40                 - mov r13,[r14+40]
21D4FD10672 - 4D 8B 66 48                 - mov r12,[r14+48]
21D4FD10676 - 48 8B 85 38FFFFFF     - mov rax,[rbp-000000C8]
21D4FD1067D - 48 63 48 18                  - movsxd  rcx,dword ptr [rax+18]
21D4FD10681 - FF C9                             - dec ecx
21D4FD10683 - 49 63 55 18                  - movsxd  rdx,dword ptr [r13+18]
21D4FD10687 - 48 83 EC 20                  - sub rsp,20 { 32 }
21D4FD1068B - 49 BB A05A93411D020000 - mov r11,0000021D41935AA0 { (418153288) }
21D4FD10695 - 41 FF D3                        - call r11
21D4FD10698 - 48 83 C4 20                 - add rsp,20 { 32 }
21D4FD1069C - 48 8B D8                      - mov rbx,rax
21D4FD1069F - 33 FF                             - xor edi,edi
21D4FD106A1 - E9 3E000000                - jmp 21D4FD106E4
21D4FD106A6 - 66 90                            - nop 2
21D4FD106A8 - 48 63 C7                      - movsxd  rax,edi
21D4FD106AB - 41 39 45 18                  - cmp [r13+18],eax
21D4FD106AF - 0F86 F9170000           - jbe 21D4FD11EAE
21D4FD106B5 - 49 8D 44 C5 20           - lea rax,[r13+rax*8+20]
21D4FD106BA - 48 8B 00                      - mov rax,[rax]
21D4FD106BD - 3B FB                           - cmp edi,ebx
21D4FD106BF - 40 0F9C C2                 - setl dl
21D4FD106C3 - 48 0FB6 D2                 - movzx rdx,dl
21D4FD106C7 - 48 8B C8                      - mov rcx,rax
21D4FD106CA - 48 83 EC 20                - sub rsp,20 { 32 }
21D4FD106CE - 83 38 00                      - cmp dword ptr [rax],00 { 0 }
21D4FD106D1 - 49 BB C08B91411D020000 - mov r11,0000021D41918BC0 { (-326416299) }
21D4FD106DB - 41 FF D3                       - call r11
21D4FD106DE - 48 83 C4 20                 - add rsp,20 { 32 }
21D4FD106E2 - FF C7                             - inc edi
21D4FD106E4 - 49 63 45 18                  - movsxd  rax,dword ptr [r13+18]
21D4FD106E8 - 3B F8                             - cmp edi,eax
21D4FD106EA - 7C BC                            - jl 21D4FD106A8
21D4FD106EC - 45 33 FF                       - xor r15d,r15d
21D4FD106EF - EB 3D                            - jmp 21D4FD1072E
21D4FD106F1 - 48 8D AD 00000000    - lea rbp,[rbp+00000000]
21D4FD106F8 - 49 63 C7                       - movsxd  rax,r15d
21D4FD106FB - 41 39 44 24 18             - cmp [r12+18],eax
21D4FD10700 - 0F86 9E170000            - jbe 21D4FD11EA4
21D4FD10706 - 49 8D 44 C4 20           - lea rax,[r12+rax*8+20]
21D4FD1070B - 48 8B 00                       - mov rax,[rax]
21D4FD1070E - 48 8B C8                       - mov rcx,rax
21D4FD10711 - 33 D2                             - xor edx,edx
21D4FD10713 - 48 83 EC 20                 - sub rsp,20 { 32 }
21D4FD10717 - 83 38 00                       - cmp dword ptr [rax],00 { 0 }
21D4FD1071A - 49 BB C08B91411D020000 - mov r11,0000021D41918BC0 { (-326416299) }
21D4FD10724 - 41 FF D3                       - call r11
21D4FD10727 - 48 83 C4 20                 - add rsp,20 { 32 }
21D4FD1072B - 41 FF C7                       - inc r15d
21D4FD1072E - 49 63 44 24 18            - movsxd  rax,dword ptr [r12+18]
21D4FD10733 - 44 3B F8                      - cmp r15d,eax
21D4FD10736 - 7C C0                           - jl 21D4FD106F8
21D4FD10738 - 48 8B 85 38FFFFFF    - mov rax,[rbp-000000C8]
21D4FD1073F - 48 63 40 18                 - movsxd  rax,dword ptr [rax+18]
>>   21D4FD10743 - 41 89 86 74010000     - mov [r14+00000174],eax    <<   ИНСТРУКЦИЯ
21D4FD1074A - 49 8B 46 30                - mov rax,[r14+30]
21D4FD1074E - 49 63 8E 74010000    - movsxd  rcx,dword ptr [r14+00000174]
21D4FD10755 - 83 F9 01                      - cmp ecx,01 { 1 }
21D4FD10758 - 40 0F9F C2                 - setg dl
21D4FD1075C - 48 0FB6 D2                - movzx rdx,dl
21D4FD10760 - 48 8B C8                     - mov rcx,rax
21D4FD10763 - 48 83 EC 20                - sub rsp,20 { 32 }

 

Изменено пользователем NSlava
Ссылка на комментарий
Поделиться на другие сайты

В 28.10.2022 в 15:32, Partizan сказал:

Предметы хранятся как объекты. 

Это хорошее начало объяснения.

Из этого вытекает, что нужно искать указатель на предмет.

Можешь подсказать с чего начать?

Изменено пользователем NSlava
Дополнение
Ссылка на комментарий
Поделиться на другие сайты

Если объект не создан, на него не будет указателя. Тут, скорее, надо выходить на конструктор класса, с помощью которого порождаются предметы (концепции ООП необходимы для понимания, о чем речь). А далее - дело техники - дергать конструктор с нужным набором параметров, и получать желаемое.

Ссылка на комментарий
Поделиться на другие сайты

17 часов назад, Xipho сказал:

Если объект не создан, на него не будет указателя. Тут, скорее, надо выходить на конструктор класса, с помощью которого порождаются предметы (концепции ООП необходимы для понимания, о чем речь). А далее - дело техники - дергать конструктор с нужным набором параметров, и получать желаемое.

Хорошо. Спасибо )

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.