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

Oxygen Not Included v526233.S


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

Game Version: v526233.S

(не нашёл где более точно версию посмотреть, смотрел в экзешнике)
Версия файла: 2020.3.30.45503

Версия продукта: 2020.3.30.2077119

Repack: by Торрент-Игруха (размер установщика 867мб)

CE version: 7.4

 

Не смог норм скрипты оформить, т.к. по "иному" у меня не робит...
1. Блоки кислорода (выделяющие его) - Действует на все действующие блоки.

Спойлер

{ Game   : OxygenNotIncluded.exe
  Version:  v526233.S
  Date     : 2023-02-20
  Author : DieVis }
[ENABLE]
aobscanmodule(OxygenBlock,SimDLL.dll,EF 00 00 00 F3 0F 10 04 99)
alloc(newmem,$1000,OxygenBlock)
label(code)
label(return)
registersymbol(OxygenBlock)


newmem: //Oxygen Block
  mov [rcx+rbx*4],(float)5000

 

code:
  movss xmm0,[rcx+rbx*4]
  jmp return

 

OxygenBlock+04:
  jmp newmem

 

return:
[DISABLE]
OxygenBlock+04:
  db F3 0F 10 04 99
unregistersymbol(OxygenBlock)
dealloc(newmem)
{ // ORIGINAL CODE - INJECTION POINT: SimDLL.dll+447B5
SimDLL.dll+4478F: 49 8B CA              - mov rcx,r10
SimDLL.dll+44792: 49 8B D7              - mov rdx,r15
SimDLL.dll+44795: E8 B6 AD FE FF        - call SimDLL.dll+2F550
SimDLL.dll+4479A: 41 B5 01              - mov r13l,01
SimDLL.dll+4479D: 48 8B 4E 48           - mov rcx,[rsi+48]
SimDLL.dll+447A1: 48 8B 46 50           - mov rax,[rsi+50]
SimDLL.dll+447A5: 48 2B C1              - sub rax,rcx
SimDLL.dll+447A8: 48 C1 F8 02           - sar rax,02
SimDLL.dll+447AC: 48 3B D8              - cmp rbx,rax
SimDLL.dll+447AF: 0F 83 EF 00 00 00     - jae SimDLL.dll+448A4
// ---------- INJECTING HERE ----------
SimDLL.dll+447B5: F3 0F 10 04 99        - movss xmm0,[rcx+rbx*4]
// ---------- DONE INJECTING  ----------
SimDLL.dll+447BA: F3 0F 5C C6           - subss xmm0,xmm6
SimDLL.dll+447BE: F3 0F 11 04 99        - movss [rcx+rbx*4],xmm0
SimDLL.dll+447C3: 48 8B 8E E8 00 00 00  - mov rcx,[rsi+000000E8]
SimDLL.dll+447CA: 48 8B 86 F0 00 00 00  - mov rax,[rsi+000000F0]
SimDLL.dll+447D1: 48 2B C1              - sub rax,rcx
SimDLL.dll+447D4: 48 C1 F8 02           - sar rax,02
SimDLL.dll+447D8: 48 3B D8              - cmp rbx,rax
SimDLL.dll+447DB: 0F 83 C3 00 00 00     - jae SimDLL.dll+448A4
SimDLL.dll+447E1: 44 29 24 99           - sub [rcx+rbx*4],r12d
SimDLL.dll+447E5: 48 8B 8E E8 00 00 00  - mov rcx,[rsi+000000E8] }

2. Стресс и еже с ним статы в 1 флаконе - действуют почему-то не на всех (найдётся 1 репликант который обоссыца). К слову, по отдельности не робит, CE зависает намертво при активации. Комменты к ним будут на дне темы.

Спойлер

{ Game   : OxygenNotIncluded.exe
  Version: v526233.S
  Date     : 2023-02-24
  Author : DieVis }
usemono()
[ENABLE]
//aobscan(Stress,C9 F3 0F 10 47 48)
alloc(newmem,$1000,GameUtil:GetMaxStressInActiveWorld+148)
label(code)
label(return)


newmem:
  mov [rdi+48],(float)0 //Стресс
  mov [rdi+168],(float)4000000 //Калории
  mov [rdi+1C8],(float)100 //Выносливость
  mov [rdi+228],(float)100 //Здоровье
  mov [rdi-78],(float)0 //Мочевой пузырь
  mov [rdi-D8],(float)310 //Температура тела ~36.9-37
  mov [rdi-198],(float)150 //Декор
  mov [rdi-1F8],(float)0 //Полученная доза радиации

 

code:
  movss xmm0,[rdi+48]
  jmp return

 

GameUtil:GetMaxStressInActiveWorld+148:
  jmp newmem

 

return:
[DISABLE]
dealloc(newmem)
GameUtil:GetMaxStressInActiveWorld+148:
  movss xmm0,[rdi+48] //Alt: db F3 0F 10 47 48
{ // ORIGINAL CODE - INJECTION POINT: 1F9119C3938
1F9119C390E: 48 8B D6                       - mov rdx,rsi
1F9119C3911: 83 38 00                       - cmp dword ptr [rax],00
1F9119C3914: 66 90                          - nop 2
1F9119C3916: 49 BB 20 E6 62 03 F9 01 00 00  - mov r11,000001F90362E620
1F9119C3920: 41 FF D3                       - call r11
1F9119C3923: 48 8B F8                       - mov rdi,rax
1F9119C3926: 48 85 C0                       - test rax,rax
1F9119C3929: 0F 84 9D 00 00 00              - je 1F9119C39CC
1F9119C392F: F3 0F 10 4D BC                 - movss xmm1,[rbp-44]
1F9119C3934: F3 0F 5A C9                    - cvtss2sd xmm1,xmm1
// ---------- INJECTING HERE ----------
1F9119C3938: F3 0F 10 47 48                 - movss xmm0,[rdi+48]
// ---------- DONE INJECTING  ----------
1F9119C393D: F3 0F 5A C0                    - cvtss2sd xmm0,xmm0
1F9119C3941: F2 0F 5A E9                    - cvtsd2ss xmm5,xmm1
1F9119C3945: F3 0F 11 6D B8                 - movss [rbp-48],xmm5
1F9119C394A: F2 0F 5A E8                    - cvtsd2ss xmm5,xmm0
1F9119C394E: F3 0F 11 6D B4                 - movss [rbp-4C],xmm5
1F9119C3953: 66 0F 57 C0                    - xorpd xmm0,xmm0
1F9119C3957: F2 0F 5A E8                    - cvtsd2ss xmm5,xmm0
1F9119C395B: F3 0F 11 6D B0                 - movss [rbp-50],xmm5
1F9119C3960: F3 0F 10 45 B8                 - movss xmm0,[rbp-48]
1F9119C3965: F3 0F 5A C0                    - cvtss2sd xmm0,xmm0 }

3. Дыхание на 100% - Кислород уже не так важен.

Спойлер

{ Game   : OxygenNotIncluded.exe
  Version: v526233.S
  Date     : 2023-02-24
  Author : DieVis }
usemono()
[ENABLE]
//aobscan(Breath,F3 0F 10 40 48 F3 0F 5A C0 F3 0F 10 0D 24)
alloc(newmem,$1000,BreathMonitor:IsLowBreath+ab)
label(code)
label(return)


newmem:
  mov [rax+48],(float)100

 

code:
  movss xmm0,[rax+48]
  jmp return

 

BreathMonitor:IsLowBreath+ab:
  jmp newmem

 

return:
[DISABLE]
dealloc(newmem)
BreathMonitor:IsLowBreath+ab:
  movss xmm0,[rax+48] //Alt: db F3 0F 10 40 48

4. Энергия в батареях - Много энергии.

Спойлер

{ Game   : OxygenNotIncluded.exe
  Version: v526233.S
  Date   : 2023-02-20
  Author : DieVis }
usemono()
[ENABLE]
//aobscan(EnergyAkkum,C9 F3 0F 10 47 58)
alloc(newmem,$1000,Battery:ConsumeEnergy+182)
label(code)
label(return)


newmem:
  mov [rdi+58],(float)10000

 

code:
  movss xmm0,[rdi+58]
  jmp return

 

Battery:ConsumeEnergy+182:
  jmp newmem

 

return:
[DISABLE]
dealloc(newmem)
Battery:ConsumeEnergy+182:
  movss xmm0,[rdi+58] //Alt: db F3 0F 10 47 58


5. Опыт миньонов - В скрипте можно выставить своё значение

Спойлер

{ Game   : OxygenNotIncluded.exe
  Version: v526233.S
  Date   : 2023-02-20
  Author : DieVis }
usemono()
[ENABLE]
//aobscan(XPReplica,C1 F3 0F 10 80 98 00 00 00)
alloc(newmem,$1000,MinionResume:get_TotalSkillPointsGained+f)
label(code)
label(return)


newmem://MinionResume
  mov [rax+00000098],(float)500000 //totalExperienceGained
  //rax+9C  DEBUG_PassiveExperienceGained
  //rax+A0  DEBUG_ActiveExperienceGained
  //rax+A4  DEBUG_SecondsAlive

 

code:
  movss xmm0,[rax+00000098]
  jmp return

 

MinionResume:get_TotalSkillPointsGained+f:
  jmp newmem
  nop 3

 

return:
[DISABLE]
dealloc(newmem)
MinionResume:get_TotalSkillPointsGained+f:
  movss xmm0,[rax+00000098] //Alt: db F3 0F 10 80 98 00 00 00

 

Лучше на долго не оставлять включённым, иначе игру засосёт в чёрную дыру

6. Ресы в хранилищах - В скрипте можно выставить своё значение, я его делал для террариума, поэтому стоит сравнение с загрязнённой водой.

(какое-нибудь устройство использующее ресы для создания кислорода допустим, тоже является неким хранилищем)

Спойлер

{ Game   : OxygenNotIncluded.exe
  Version: v526233.S
  Date   : 2023-02-21
  Author : DieVis }
usemono()
[ENABLE]
//aobscan(TerrariumStorag,00 41 83 3E 00 F3 41 0F 10 46 58)
alloc(newmem,$1000,SimpleInfoScreen:RefreshStorage+5b7)
label(code)
label(return)


newmem:
  cmp [r14+54],6D3B60E5 //ElementID Загрязнённая вода
  je code
  mov [r14+58],(Float)20000 //=20т Водоросли

 

code:
  movss xmm0,[r14+58]
  jmp return

 

SimpleInfoScreen:RefreshStorage+5b7:
  jmp newmem
  nop

 

return:
[DISABLE]
dealloc(newmem)
SimpleInfoScreen:RefreshStorage+5b7:
  movss xmm0,[r14+58] //Alt: db F3 41 0F 10 46 58

 

Те что не вошли в таблицу, т.к. почему-то у меня они не активировались ни в каком виде.

Спойлер

Выносливость

StaminaMonitor+Instance:NeedsToSleep+12
1928E0BA71B: 48 8B 80 D8 00 00 00  - mov rax,[rax+000000D8]

 

Калории

Klei.AI.AmountInstance:Publish+86
1924EC2DDD6: F3 0F 10 46 48                 - movss xmm0,[rsi+48]

 

Декор

DecorMonitor+Instance:Update+14b
19253A3BFEB: F3 0F 10 48 48           - movss xmm1,[rax+48]

 

Температура тела

ExternalTemperatureMonitor+Instance:IsTooHot+23
1F9036626C3: F3 0F 10 40 48           - movss xmm0,[rax+48]

Мочевой пузырь найти не смог, он находится от температуры на rax+A8

 

Полученная радиация

Klei.AI.AmountInstance:ApplyDelta+93
19253B5EEC3: F3 0F 10 46 48                 - movss xmm0,[rsi+48]

Делал для себя, на других версиях не проверял.

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

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
×
×
  • Создать...

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

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