Re: No Mans Sky (Steam)
Posted: Sun Apr 17, 2022 8:03 pm
I use YoucefHam's Table as a starter. Some inventory items functions still work but not ones I like to use. I was able to put together enough of something for "Last Moved Inventory Item" though doesn't quite work the way I want but well enough that I can live with it. Select Item in inventory and then return to same location and it will update correctly. This will allow editing the count of items for that cell. Note that the other functions in the table to just set all values to max is available but I'd rather have selective edit.
Last Moved Inventory Item Count
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>42355</ID>
<Description>"Last Moved Inventory Item"</Description>
<Options moHideChildren="1"/>
<LastState/>
<Color>8000FF</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>
[ENABLE]
aobscanmodule(LastMovedInventoryItem,NMS.exe,48 8B D0 48 8B CF E8 ?? ?? ?? ?? 83 FD 01) // should be unique
alloc(newmem,$1000,LastMovedInventoryItem)
label(code)
label(return)
label(lastmoveditem)
newmem:
lastmoveditem:
dq 0
code:
mov [lastmoveditem], rax
mov rdx,rax
mov rcx,rdi
jmp return
LastMovedInventoryItem:
jmp code
nop
return:
registersymbol(LastMovedInventoryItem)
registersymbol(lastmoveditem)
[DISABLE]
LastMovedInventoryItem:
db 48 8B D0 48 8B CF
unregistersymbol(LastMovedInventoryItem)
unregistersymbol(lastmoveditem)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: NMS.exe+AF30D2
NMS.exe+AF30B3: 74 28 - je NMS.exe+AF30DD
NMS.exe+AF30B5: 83 7F 34 FF - cmp dword ptr [rdi+34],-01
NMS.exe+AF30B9: 74 22 - je NMS.exe+AF30DD
NMS.exe+AF30BB: 48 8D 57 30 - lea rdx,[rdi+30]
NMS.exe+AF30BF: E8 6C 38 BA FF - call NMS.exe+696930
NMS.exe+AF30C4: 48 85 C0 - test rax,rax
NMS.exe+AF30C7: 74 14 - je NMS.exe+AF30DD
NMS.exe+AF30C9: 83 38 01 - cmp dword ptr [rax],01
NMS.exe+AF30CC: 75 04 - jne NMS.exe+AF30D2
NMS.exe+AF30CE: C6 47 49 01 - mov byte ptr [rdi+49],01
// ---------- INJECTING HERE ----------
NMS.exe+AF30D2: 48 8B D0 - mov rdx,rax
// ---------- DONE INJECTING ----------
NMS.exe+AF30D5: 48 8B CF - mov rcx,rdi
NMS.exe+AF30D8: E8 93 51 D1 FF - call NMS.exe+808270
NMS.exe+AF30DD: 83 FD 01 - cmp ebp,01
NMS.exe+AF30E0: 75 45 - jne NMS.exe+AF3127
NMS.exe+AF30E2: 48 8B 4F 40 - mov rcx,[rdi+40]
NMS.exe+AF30E6: 48 85 C9 - test rcx,rcx
NMS.exe+AF30E9: 74 2C - je NMS.exe+AF3117
NMS.exe+AF30EB: 83 7F 30 FF - cmp dword ptr [rdi+30],-01
NMS.exe+AF30EF: 74 26 - je NMS.exe+AF3117
NMS.exe+AF30F1: 83 7F 34 FF - cmp dword ptr [rdi+34],-01
}
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>42356</ID>
<Description>"Inventory Item"</Description>
<LastState Value="" RealAddress="00000000"/>
<ShowAsSigned>0</ShowAsSigned>
<GroupHeader>1</GroupHeader>
<Address>lastmoveditem</Address>
<Offsets>
<Offset>0</Offset>
</Offsets>
<CheatEntries>
<CheatEntry>
<ID>42360</ID>
<Description>"Name"</Description>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>String</VariableType>
<Length>16</Length>
<Unicode>0</Unicode>
<CodePage>0</CodePage>
<ZeroTerminate>1</ZeroTerminate>
<Address>+8</Address>
</CheatEntry>
<CheatEntry>
<ID>42357</ID>
<Description>"Count"</Description>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>4 Bytes</VariableType>
<Address>+18</Address>
</CheatEntry>
<CheatEntry>
<ID>42358</ID>
<Description>"Max Count"</Description>
<ShowAsSigned>0</ShowAsSigned>
<VariableType>4 Bytes</VariableType>
<Address>+1C</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatTable>