This is a cheat engine table hack for Pokemon Revolution Online.
This is a full shared release. You are absolutely allow to SHARE, REPOST and Remodify for your own release. Please post any adjustment you have made.
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Movement Speed - Adjust your movement speed. If it shows ?? close and reopen your client.
No Run Delay - Allow you to immediately run away when you encountered a Pokeemon.
Fast Dialogue - Insanely fast Dialogue.
Pokemon Hunter - This is run away from all encountered unless it a matching pokemon ID. To get Pokemon ID you would go to PokeDex. Type in the Pokemon Name you want the hack to find. Then when it encounter that Pokemon it will no longer run away.
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Disable Run Delay when first encountered -
Code:
[ENABLE]
aobscanmodule(INJECT,GameAssembly.dll,FF D0 48 85 C0 0F 84 ?? ?? ?? ?? 45 33 C0 B2 01 48 8B C8) // should be unique
INJECT:
call rax
test rax,rax
jmp GameAssembly.dll+173F1D
nop
registersymbol(INJECT)
[DISABLE]
INJECT:
call rax
test rax,rax
je GameAssembly.dll+173F1D
unregistersymbol(INJECT)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Enable Fast Dialogue. (Original Dialogue speed value = 120. This will write it as 9999)
Code:
[ENABLE]
aobscanmodule(Dialogue,GameAssembly.dll,F3 0F 10 81 F8 00 00 00) // should be unique
alloc(newmem,$1000)
alloc(Speed,$1000)
label(code)
label(return)
Speed:
dd (float)999
newmem:
code:
movsd xmm0,[Speed]
movsd [rcx+000000F8],xmm0
movss xmm0,[rcx+000000F8]
ret
jmp return
Dialogue:
jmp newmem
nop
nop
nop
return:
registersymbol(Dialogue)
[DISABLE]
Dialogue:
db F3 0F 10 81 F8 00 00 00 C3 CC CC CC CC CC CC CC
unregistersymbol(Dialogue)
dealloc(newmem)
dealloc(Speed)
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Pokemon Hunter. Enable this script will AUTOMATICALLY run away from all encountered unless the Pokemon ID matches with what you enabled in "EscapePoke1/2/3/4". For example ENABLE this script. In cheat engine click "Add Address Manually". In the address field type "EscapePoke1" or "EscapePoke2" etc... with a maximum of 4. Type in the Pokemon ID that you want to NOT run away from. Alolan-Grimer = 3071 you can find this information in the PokeDex. Once the pokemon has been found it will stand there until you either capture, run, or kill it. If it encounteres a Pokemon that you DONT want to run away from then it will play a "Beeping" noise.
Code:
{$lua} // DELETE FROM HERE IF YOU DON'T WANT IT TO BEEP
local timer = createTimer(getMainForm())
local script = getAddressList()
script = script.getMemoryRecordByDescription("Pokemon Hunter")
timer.Interval = 5000
timer.OnTimer = function(timer)
if (readInteger("PokeID")) == (readInteger("EscapePoke1"))then
beep()
elseif (readInteger("PokeID")) == (readInteger("EscapePoke2"))then
beep()
elseif (readInteger("PokeID")) == (readInteger("EscapePoke3"))then
beep()
elseif (readInteger("PokeID")) == (readInteger("EscapePoke4"))then
beep()
if script.Active == false then
timer.destroy()
end
end
end
{$asm} // DELETE FROM HERE IF YOU DONT WANT IT TO BEEP
[ENABLE]
aobscanmodule(ID,GameAssembly.dll,33 D2 48 8B CB E8 ?? ?? ?? ?? 89 87 FC 09 00 00 41 83 7D 18 03) //PokeID
aobscanmodule(RUN,GameAssembly.dll,33 D2 8B C8 E8 ?? ?? ?? ?? 84 C0 0F 84 ?? ?? ?? ?? 33 D2 49 8B CE) //Run
alloc(FindID,$1000) //ID
alloc(PokeID,$1000) //ID
alloc(Escape,$1000) //RUN
alloc(EscapeFound,$1000) //RUN
alloc(EscapePoke1,$1000) //RUN
alloc(EscapePoke2,$1000) //RUN
alloc(EscapePoke3,$1000) //RUN
alloc(EscapePoke4,$1000) //RUN
label(ReturnEscape) //RUN
label(SaveID) //ID
label(ReturnID) //ID
EscapePoke1:
dd 1
EscapePoke2:
dd 1
EscapePoke3:
dd 1
EscapePoke4:
dd 1
Escape:
test al,al
push rax
mov rax,[PokeID]
cmp [EscapePoke1],rax
pop rax
je EscapeFound
push rax
mov rax,[PokeID]
cmp [EscapePoke2],rax
pop rax
je EscapeFound
push rax
mov rax,[PokeID]
cmp [EscapePoke3],rax
pop rax
je EscapeFound
push rax
mov rax,[PokeID]
cmp [EscapePoke4],rax
pop rax
je EscapeFound
db 33 d2
mov rcx,r14
call GameAssembly.dll+17E610
jmp GameAssembly.dll+178920
jmp RUN+20
EscapeFound:
jmp GameAssembly.dll+17AE3C
RUN+9:
jmp Escape
nop
nop
nop
nop
nop
nop
nop
nop
nop
ReturnEscape:
FindID:
SaveID:
mov [PokeID],eax
mov [rdi+000009FC],eax
cmp dword ptr [r13+18],03
jbe GameAssembly.dll+173A15
jmp ID+1B
ID+A:
jmp FindID
nop
nop
nop
ReturnID:
registersymbol(ID)
registersymbol(PokeID)
registersymbol(EscapePoke1)
registersymbol(EscapePoke2)
registersymbol(EscapePoke3)
registersymbol(EscapePoke4)
registersymbol(RUN)
[DISABLE]
ID+A:
mov [rdi+000009FC],eax
cmp dword ptr [r13+18],03
jbe GameAssembly.dll+173A15
RUN+9:
test al,al
je GameAssembly.dll+17AE3C
db 33 d2
mov rcx,r14
call GameAssembly.dll+17E610
jmp GameAssembly.dll+178920
unregistersymbol(ID)
unregistersymbol(PokeID)
unregistersymbol(EscapePoke1)
unregistersymbol(EscapePoke2)
unregistersymbol(EscapePoke3)
unregistersymbol(EscapePoke4)
unregistersymbol(RUN)
dealloc(FindID)
dealloc(Escape)
dealloc(PokeID)
dealloc(EscapePoke1)
dealloc(EscapePoke2)
dealloc(EscapePoke3)
dealloc(EscapePoke4)
--------------------------------
Array of Byte Dump to specific regions/interesting opcodes. -
Code:
PRO
Zoom -
0 is Max out
1 is max in
Speed -
GameAssembly.il2cpp_string_length+9D0 (Code that handles it)
4 Is walking
8 Is Mount/Bycicle
6 Is Surf
Making Battle as fast as possible - (Scan unknown when poke stable in battle. Then scan change when poke is summon)
Force JMP the JE. FOR CATCHING POKEMON ONLY
GameAssembly.dll+173F1D
AOB Scan FF D0 48 85 C0 0F 84 ?? ?? ?? ?? 45 33 C0 B2 01 48 8B C8
Entire Function deals with "RUN -
AOB Scan CC CC CC CC CC CC CC CC CC CC 48 89 5C 24 08 57 48 83 EC 20 80 3D 0E F0 8D 00 00 48 8B D9
Prevents QUEING of RUN. NOP the JE -
AOB Scan 33 D2 8B C8 E8 ?? ?? ?? ?? 84 C0 0F 84 ?? ?? ?? ?? 33 D2 49 8B CE
Battle Animation/Sequence.
AOB Scan CC CC CC CC CC CC CC CC CC CC CC CC CC CC 40 56 57 48 81 EC 98 00 00 00
Encountered Pokemon ID -
GameAssembly.dll+171D81 - mov [rdi+000009FC],eax
AOB Scan 33 D2 48 8B CB E8 ?? ?? ?? ?? 89 87 FC 09 00 00 41 83 7D 18 03
No Dialogue Delay - (120)
F3 0F 10 81 F8 00 00 00 C3 CC CC CC CC CC CC CC
Deals with Collision against NPC. Don't know much else -
45 33 C0 33 D2 48 8B CE E8 ?? ?? ?? ?? 84 C0 0F 84 ?? ?? ?? ?? 48 8B 8F 40 02 00 00 48 85 C9
DOWNLOAD CETrainer -