I haven't tested this on the new update yet but here is the code for the shop filler. It's pretty basic in function. Enable code, enter shop, browse wares, if item isn't in one of the 23 pages the increase the chunk index by 1, re enter shop. It was done this way due to an entry limit in the area of code im fiddling with and it would be a pain to increase it so the chunk system works a lot easier.
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>19053</ID>
<Description>"Fill Shop With Many Items"</Description>
<Options moHideChildren="1"/>
<LastState/>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
aobscanmodule(ShopOverrideAOB,MonsterHunterWorld.exe,41 8B 96 48 31 00 00) // should be unique
alloc(newmem,$1000,"MonsterHunterWorld.exe"+1F8A9674)
label(code)
label(return)
label(ShopData)
registersymbol(ShopData)
newmem:
push rax
push rbx
push rcx
mov edx,[ShopData]
imul edx,FD
xor rax,rax
mov rcx,fD
lea rbx,[r14+2948]
_Loop:
mov [rbx+rax*8],edx
mov [rbx+rax*8+4],edx
inc [rbx+rax*8]
inc rax
inc edx
cmp rax,rcx
jl _Loop
code:
mov edx,rcx
pop rcx
pop rbx
pop rax
jmp return
ShopData:
ShopOverrideAOB:
jmp newmem
nop
nop
return:
registersymbol(ShopOverrideAOB)
[DISABLE]
ShopOverrideAOB:
db 41 8B 96 48 31 00 00
unregistersymbol(ShopOverrideAOB)
unregistersymbol(ShopData)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "MonsterHunterWorld.exe"+1F8A9674
"MonsterHunterWorld.exe"+1F8A9652: 48 8D 14 C1 - lea rdx,[rcx+rax*8]
"MonsterHunterWorld.exe"+1F8A9656: 48 85 C0 - test rax,rax
"MonsterHunterWorld.exe"+1F8A9659: 75 03 - jne MonsterHunterWorld.exe+1F8A965E
"MonsterHunterWorld.exe"+1F8A965B: 4C 89 EA - mov rdx,r13
"MonsterHunterWorld.exe"+1F8A965E: 49 0F 44 CD - cmove rcx,r13
"MonsterHunterWorld.exe"+1F8A9662: 49 89 D0 - mov r8,rdx
"MonsterHunterWorld.exe"+1F8A9665: 49 29 C8 - sub r8,rcx
"MonsterHunterWorld.exe"+1F8A9668: 4D 89 F1 - mov r9,r14
"MonsterHunterWorld.exe"+1F8A966B: 49 C1 F8 03 - sar r8,03
"MonsterHunterWorld.exe"+1F8A966F: E8 CC 17 3E E2 - call MonsterHunterWorld.exe+1C8AE40
// ---------- INJECTING HERE ----------
"MonsterHunterWorld.exe"+1F8A9674: 41 8B 96 48 31 00 00 - mov edx,[r14+00003148]
// ---------- DONE INJECTING ----------
"MonsterHunterWorld.exe"+1F8A967B: 41 89 96 1C 29 00 00 - mov [r14+0000291C],edx
"MonsterHunterWorld.exe"+1F8A9682: EB 06 - jmp MonsterHunterWorld.exe+1F8A968A
"MonsterHunterWorld.exe"+1F8A9684: 8B 91 1C 29 00 00 - mov edx,[rcx+0000291C]
"MonsterHunterWorld.exe"+1F8A968A: 49 8B 8E F8 28 00 00 - mov rcx,[r14+000028F8]
"MonsterHunterWorld.exe"+1F8A9691: E8 7A 07 11 E1 - call MonsterHunterWorld.exe+9B9E10
"MonsterHunterWorld.exe"+1F8A9696: 41 8B 86 48 29 00 00 - mov eax,[r14+00002948]
"MonsterHunterWorld.exe"+1F8A969D: 4C 8D 44 24 60 - lea r8,[rsp+60]
"MonsterHunterWorld.exe"+1F8A96A2: 48 8B 0D 97 AE 63 E5 - mov rcx,[MonsterHunterWorld.exe+4EE4540]
"MonsterHunterWorld.exe"+1F8A96A9: 48 8D 54 24 20 - lea rdx,[rsp+20]
"MonsterHunterWorld.exe"+1F8A96AE: 45 31 C9 - xor r9d,r9d
}
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>19055</ID>
<Description>"Chunk Index"</Description>
<VariableType>4 Bytes</VariableType>
<Address>ShopData</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatTable>