I'm trying to activate the JP and EXP modifier's but I keep getting this error: Error:[string "local syntaxcheck,memrec=...
..."]:42: attempt to perform arithmetic on a nil value (local 'JPMult')
Any idea on how to fix it?
How to use this cheat table?
Install Cheat Engine
Double-click the .CT file in order to open it.
Click the PC icon in Cheat Engine in order to select the game process.
Keep the list.
Activate the trainer options by checking boxes or setting values from 0 to 1
Hello all! After a little bit of messing around I think I've figured out the new base addresses. The base offsets seem to have shifted backwards by 7680 (0x1e00).
This seems to fix the pointers (in-battle and out) and no encounter scripts, so as long as the other scripts are implemented in terms of these addresses I think it fixes the table!
Last edited by penguinicus on Mon Jul 27, 2020 2:40 pm, edited 1 time in total.
Hello all! After a little bit of messing around I think I've figured out the new base addresses. The base offsets seem to have shifted backwards by 7680.
This seems to fix the pointers (in-battle and out) and no encounter scripts, so as long as the other scripts are implemented in terms of these addresses I think it fixes the table!
You legend!! I'm not a code writer but been mucking around with one of the scripts and found that some addresses have moved up by 16F0. For the 100% steal/scrutinize/etc... script I'm confident i've managed to find the addresses. However, they're not working and the game crashes when I disable the script. Can someone check it over for me and clean it up? the addresses should be fine now but maybe i've messed one up.
Spoiler
[ENABLE]
aobscanmodule(8PathSteal,Octopath_Traveler-Win64-Shipping.exe,E8 60EA6401) // should be unique
alloc(newmem,$1000,8PathSteal)
label(scrutinize)
label(allure)
label(thieving)
label(inquiry)
label(lvl99)
label(newvalue)
label(code)
label(return)
newmem:
call Octopath_Traveler-Win64-Shipping.exe+19B7340
push rbx
mov rbx,Octopath_Traveler-Win64-Shipping.exe+0289CC48
mov rbx,[rbx]
cmp r14d,#1
jne code
cmp r8d,#4
jne code
mov rbx,[rbx+370]
mov rbx,[rbx+1C8]
cmp [rdx-4],#3
je scrutinize
cmp [rdx-4],#4
je allure
cmp [rdx-4],#6
je thieving
cmp [rdx-4],#8
je inquiry
jmp code
scrutinize:
lea rbx,[rbx+194]
cmp rdx,rbx
jne code
cmp r15,8BF9A8 //8C7028
je lvl99
cmp r15,8C6E08 //8CE488
je lvl99
jmp code
allure:
lea rbx,[rbx+25C]
cmp rdx,rbx
jne code
cmp r15,8C6798 //8CDE18 //subnemu
je lvl99
cmp r15,8BEF78 //8C65F8 //action
je lvl99
jmp code
thieving:
lea rbx,[rbx+3EC]
cmp rdx,rbx
jne code
cmp r15,8C67C8 //8CDE48
je newvalue
jmp code
inquiry:
lea rbx,[rbx+57C]
cmp rdx,rbx
jne code
cmp r15,8C4D68 //8CC3E8 //field commands preview
je newvalue
cmp r15,8C6968 //8CDFE8 //submenu
je newvalue
cmp r15,8BEA88 //8C6108 //inquiry
je newvalue
jmp code
lvl99:
cmp [rdx],#0
jl code
cmp [rdx],#99
jg code
mov ecx,#99
mov [rax],#99
jmp code
newvalue:
cmp [rdx],#0
jl code
cmp [rdx],#99
jg code
mov ecx,#200
mov [rax],#200
code:
pop rbx
jmp return
8PathSteal:
jmp newmem
return:
registersymbol(8PathSteal)
[DISABLE]
8PathSteal:
db E8 60EA6401
unregistersymbol(8PathSteal)
dealloc(newmem)
{
// ORIGINAL CODE - INJECTION POINT: "Octopath_Traveler-Win64-Shipping.exe"+3671EB
"Octopath_Traveler-Win64-Shipping.exe"+3671CB: 4E 8D 14 39 - lea r10,[rcx+r15]
"Octopath_Traveler-Win64-Shipping.exe"+3671CF: 4C 3B D2 - cmp r10,rdx
"Octopath_Traveler-Win64-Shipping.exe"+3671D2: 74 34 - je Octopath_Traveler-Win64-Shipping.exe+367208 > 3688F8
"Octopath_Traveler-Win64-Shipping.exe"+3671D4: 8B 46 38 - mov eax,[rsi+38]
"Octopath_Traveler-Win64-Shipping.exe"+3671D7: 48 0F BA E0 1E - bt rax,1E
"Octopath_Traveler-Win64-Shipping.exe"+3671DC: 73 14 - jae Octopath_Traveler-Win64-Shipping.exe+3671F2 > 3688E2
"Octopath_Traveler-Win64-Shipping.exe"+3671DE: 8B 46 34 - mov eax,[rsi+34]
"Octopath_Traveler-Win64-Shipping.exe"+3671E1: 49 8B CA - mov rcx,r10
"Octopath_Traveler-Win64-Shipping.exe"+3671E4: 0F AF 46 30 - imul eax,[rsi+30]
"Octopath_Traveler-Win64-Shipping.exe"+3671E8: 4C 63 C0 - movsxd r8,eax
// ---------- INJECTING HERE ----------
"Octopath_Traveler-Win64-Shipping.exe"+3671EB: E8 90 F9 64 01 - call Octopath_Traveler-Win64-Shipping.exe+19B6B80 > 19B7340
// ---------- DONE INJECTING ----------
"Octopath_Traveler-Win64-Shipping.exe"+3671F0: EB 16 - jmp Octopath_Traveler-Win64-Shipping.exe+367208 > 3688F8
"Octopath_Traveler-Win64-Shipping.exe"+3671F2: 48 8B 06 - mov rax,[rsi]
"Octopath_Traveler-Win64-Shipping.exe"+3671F5: 4C 8B C2 - mov r8,rdx
"Octopath_Traveler-Win64-Shipping.exe"+3671F8: 44 8B 4E 30 - mov r9d,[rsi+30]
"Octopath_Traveler-Win64-Shipping.exe"+3671FC: 49 8B D2 - mov rdx,r10
"Octopath_Traveler-Win64-Shipping.exe"+3671FF: 48 8B CE - mov rcx,rsi
"Octopath_Traveler-Win64-Shipping.exe"+367202: FF 90 98 02 00 00 - call qword ptr [rax+00000298]
"Octopath_Traveler-Win64-Shipping.exe"+367208: 49 03 DC - add rbx,r12
"Octopath_Traveler-Win64-Shipping.exe"+36720B: 49 83 EE 01 - sub r14,01
"Octopath_Traveler-Win64-Shipping.exe"+36720F: 75 AF - jne Octopath_Traveler-Win64-Shipping.exe+3671C0 > 3688BO
"NEW ARRAY = E8 60EA6401"
}
____
The new array for the actions should be: E8 60EA6401 which will also help you find where the code gets injected.
___
Okay. guessing I shouldn't have just winged it for some of the codes in the middle. doesn't actually go anywhere it's supposed to by looks of it. Anywhere where you see an address followed by // ********* another address in that style is likely very wrong. the address after // are the originals.
eg: cmp r15,8C6968 //8CDFE8 //submenu :: 8CDFE8 is the original.
okays. no idea what I'm doing :3 at the least I found the array for aob. I also did manage to (i'm hoping) correctly map out some of the call addresses. I'm calling it quits before I bluescreen myself. good luck :3
___
never mind. just read back on all the comments and just using the 'lock reputation method. Thanks for the update penguinicus!
just enable unrandomizer and go steal/scrutinize. Don't forget to disable before going for random encounter since you'll always get the same set of monsters and Cait with attack first.
Hello all! After a little bit of messing around I think I've figured out the new base addresses. The base offsets seem to have shifted backwards by 7680 (0x1e00).
This seems to fix the pointers (in-battle and out) and no encounter scripts, so as long as the other scripts are implemented in terms of these addresses I think it fixes the table!
any chance to just post a downl link of updated table , i sux with these type of things pls.
Sorry, I've been busy with other things to update this, but thanks to penguinicus for his findings. I actually haven't tested it, but I assume things will work with it. Let me know otherwise.
I didn't make those, so TheByteSize will have to update it if he wants; otherwise, use other means to accomplish this such as change your level in town or unrandomizer, perhaps.
Newbie question, How can I max out one item in my inventory, I already tried both the item replacement and the set item quantitu but still not working. Should I restart the game after I enabled it? Sorry im so noob on this. Not sure if Im doing it right. I jist played the game and open cheat engine and load the .ct and enabled the cheats. But its not working