No. The character stats are stored as bytes. That is the hard limit.arrow2733 wrote: ↑Sat Oct 26, 2024 2:09 pmcan it go higher than 255?izayoixx wrote: ↑Sat Oct 26, 2024 7:10 amRemove 100 Stat Cap when creating Officers. Game doesn't seem to have any stat cap in gameplay as well so this won't reset.
Code: Select all
<?xml version="1.0" encoding="utf-8"?> <CheatTable> <CheatEntries> <CheatEntry> <ID>432</ID> <Description>"Remove Stat Cap Limit in Character Creation"</Description> <Color>400080</Color> <VariableType>Auto Assembler Script</VariableType> <AssemblerScript>[ENABLE] aobscanmodule(INJECT,SAN8R.exe,39 83 AC 01 00 00 7D) // should be unique alloc(newmem,$100,INJECT) label(code) label(return) newmem: mov eax,ff code: cmp [rbx+000001AC],eax jmp return INJECT: jmp newmem nop return: registersymbol(INJECT) aobscanmodule(StatCap2,SAN8R.exe,3B D8 8B D3 0F 4F D0) // should be unique alloc(newmem2,$100,StatCap2) label(code2) label(return2) newmem2: mov eax,ff code2: cmp ebx,eax mov edx,ebx cmovg edx,eax jmp return2 StatCap2: jmp newmem2 nop 2 return2: registersymbol(StatCap2) aobscanmodule(StatCap3,SAN8R.exe,8B 91 18 02 00 00 3B) // should be unique alloc(newmem3,$100,StatCap3) label(code3) label(return3) newmem3: mov eax,ff code3: mov edx,[rcx+00000218] jmp return3 StatCap3: jmp newmem3 nop return3: registersymbol(StatCap3) [DISABLE] INJECT: db 39 83 AC 01 00 00 StatCap2: db 3B D8 8B D3 0F 4F D0 StatCap3: db 8B 91 18 02 00 00 unregistersymbol(*) dealloc(*) { // ORIGINAL CODE - INJECTION POINT: SAN8R.exe+1426A3B SAN8R.exe+1426A15: 48 89 74 24 10 - mov [rsp+10],rsi SAN8R.exe+1426A1A: 57 - push rdi SAN8R.exe+1426A1B: 48 83 EC 20 - sub rsp,20 SAN8R.exe+1426A1F: 48 8B D9 - mov rbx,rcx SAN8R.exe+1426A22: 8B F2 - mov esi,edx SAN8R.exe+1426A24: 48 8B 89 00 02 00 00 - mov rcx,[rcx+00000200] SAN8R.exe+1426A2B: BF 01 00 00 00 - mov edi,00000001 SAN8R.exe+1426A30: 48 85 C9 - test rcx,rcx SAN8R.exe+1426A33: 74 21 - je SAN8R.exe+1426A56 SAN8R.exe+1426A35: 8B 83 A4 01 00 00 - mov eax,[rbx+000001A4] // ---------- INJECTING HERE ---------- SAN8R.exe+1426A3B: 39 83 AC 01 00 00 - cmp [rbx+000001AC],eax // ---------- DONE INJECTING ---------- SAN8R.exe+1426A41: 7D 08 - jnl SAN8R.exe+1426A4B SAN8R.exe+1426A43: 85 D2 - test edx,edx SAN8R.exe+1426A45: 74 04 - je SAN8R.exe+1426A4B SAN8R.exe+1426A47: 8B D7 - mov edx,edi SAN8R.exe+1426A49: EB 02 - jmp SAN8R.exe+1426A4D SAN8R.exe+1426A4B: 33 D2 - xor edx,edx SAN8R.exe+1426A4D: 48 8B 01 - mov rax,[rcx] SAN8R.exe+1426A50: FF 90 10 01 00 00 - call qword ptr [rax+00000110] SAN8R.exe+1426A56: 48 8B 8B F8 01 00 00 - mov rcx,[rbx+000001F8] SAN8R.exe+1426A5D: 48 85 C9 - test rcx,rcx } { // ORIGINAL CODE - INJECTION POINT: SAN8R.exe+1473507 SAN8R.exe+14734E6: 44 3B C2 - cmp r8d,edx SAN8R.exe+14734E9: 7C 23 - jl SAN8R.exe+147350E SAN8R.exe+14734EB: 44 3B C1 - cmp r8d,ecx SAN8R.exe+14734EE: 44 0F 4F C1 - cmovg r8d,ecx SAN8R.exe+14734F2: 41 8B D0 - mov edx,r8d SAN8R.exe+14734F5: EB 17 - jmp SAN8R.exe+147350E SAN8R.exe+14734F7: 8B 91 A8 01 00 00 - mov edx,[rcx+000001A8] SAN8R.exe+14734FD: 8B 81 A4 01 00 00 - mov eax,[rcx+000001A4] SAN8R.exe+1473503: 3B DA - cmp ebx,edx SAN8R.exe+1473505: 7C 07 - jl SAN8R.exe+147350E // ---------- INJECTING HERE ---------- SAN8R.exe+1473507: 3B D8 - cmp ebx,eax // ---------- DONE INJECTING ---------- SAN8R.exe+1473509: 8B D3 - mov edx,ebx SAN8R.exe+147350B: 0F 4F D0 - cmovg edx,eax SAN8R.exe+147350E: 89 97 AC 01 00 00 - mov [rdi+000001AC],edx SAN8R.exe+1473514: 8B B7 B0 01 00 00 - mov esi,[rdi+000001B0] SAN8R.exe+147351A: 66 0F 6E 87 A4 01 00 00 - movd xmm0,[rdi+000001A4] SAN8R.exe+1473522: 0F 5B C0 - cvtdq2ps xmm0,xmm0 SAN8R.exe+1473525: 66 0F 6E F6 - movd xmm6,esi SAN8R.exe+1473529: 0F 5B F6 - cvtdq2ps xmm6,xmm6 SAN8R.exe+147352C: F3 0F 5E C6 - divss xmm0,xmm6 SAN8R.exe+1473530: E8 37 28 D3 FF - call SAN8R.exe+11A5D6C } { // ORIGINAL CODE - INJECTION POINT: SAN8R.exe+140B3E6 SAN8R.exe+140B3D7: CC - int 3 SAN8R.exe+140B3D8: CC - int 3 SAN8R.exe+140B3D9: CC - int 3 SAN8R.exe+140B3DA: CC - int 3 SAN8R.exe+140B3DB: CC - int 3 SAN8R.exe+140B3DC: CC - int 3 SAN8R.exe+140B3DD: CC - int 3 SAN8R.exe+140B3DE: CC - int 3 SAN8R.exe+140B3DF: CC - int 3 SAN8R.exe+140B3E0: 8B 81 04 02 00 00 - mov eax,[rcx+00000204] // ---------- INJECTING HERE ---------- SAN8R.exe+140B3E6: 8B 91 18 02 00 00 - mov edx,[rcx+00000218] // ---------- DONE INJECTING ---------- SAN8R.exe+140B3EC: 3B D0 - cmp edx,eax SAN8R.exe+140B3EE: 0F 43 D0 - cmovae edx,eax SAN8R.exe+140B3F1: 8B 81 00 02 00 00 - mov eax,[rcx+00000200] SAN8R.exe+140B3F7: 3B C2 - cmp eax,edx SAN8R.exe+140B3F9: 0F 43 D0 - cmovae edx,eax SAN8R.exe+140B3FC: 48 8B 81 08 02 00 00 - mov rax,[rcx+00000208] SAN8R.exe+140B403: 89 10 - mov [rax],edx SAN8R.exe+140B405: BA FD FF FF 7F - mov edx,7FFFFFFD SAN8R.exe+140B40A: 48 8B 01 - mov rax,[rcx] SAN8R.exe+140B40D: 48 FF A0 98 02 00 00 - jmp qword ptr [rax+00000298] } </AssemblerScript> </CheatEntry> </CheatEntries> </CheatTable>
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