made a simple jump script as well...
and added a proper player check for the walk key. it won't affect other character now. but the aobscan for the player coord filter is very lazy, may not work on the latest game version....
good luck~
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>13022</ID>
<Description>"enable"</Description>
<Options moHideChildren="1"/>
<LastState Activated="1"/>
<Color>FF0000</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
aobscanmodule(playerCoordReadAOB,CodeVein-Win64-Shipping.exe,48 ** ** 50 49 ** ** ** ** 00 00 44 ** ** ** ** ** ** F2 0F ** ** ** ** ** ** 48 ** ** 74 ** 0F ** ** ** ** 00 00 48 ** ** ** 0F ** ** F3 0F ** ** ** 0F ** ** ** 0F ** ** ** F3 0F)
registersymbol(playerCoordReadAOB)
label(pPlayerCoordInfo)
registersymbol(pPlayerCoordInfo)
alloc(newmem,2048,playerCoordReadAOB+1f) //"CodeVein-Win64-Shipping.exe"+6CA4C94)
label(returnhere)
label(originalcode_playerCoordReadAOB)
registersymbol(originalcode_playerCoordReadAOB)
label(exit)
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
push rbx
mov rbx,pPlayerCoordInfo
mov [rbx],rax
pop rbx
originalcode_playerCoordReadAOB:
readmem(playerCoordReadAOB+1f,7)
//movaps xmm1,[rax+000001A0]
exit:
jmp returnhere
///
pPlayerCoordInfo:
///
playerCoordReadAOB+1f: //"CodeVein-Win64-Shipping.exe"+6CA4C94:
jmp newmem
nop 2
returnhere:
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
playerCoordReadAOB+1f: //"CodeVein-Win64-Shipping.exe"+6CA4C94:
readmem(originalcode_playerCoordReadAOB,7)
//db 0F 28 88 A0 01 00 00
//Alt: movaps xmm1,[rax+000001A0]
unregistersymbol(originalcode_playerCoordReadAOB)
unregistersymbol(pPlayerCoordInfo)
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>1347</ID>
<Description>"walk/sprint keys"</Description>
<Options moHideChildren="1"/>
<LastState Activated="1"/>
<Color>FF0000</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
define(walkkeyiddefault,14)
define(sprintkeyiddefault,10)
define(walkspeed,(float)0.4)
define(sprintspeed,(float)1.5)
aobscanmodule(someMoveSpeedReadAOB,CodeVein-Win64-Shipping.exe,F3 0F ** ** ** ** 00 00 80 ** ** ** 00 00 ** 75 ** 48 ** ** 0F ** ** 48)
registersymbol(someMoveSpeedReadAOB)
label(bWalkKeyID)
registersymbol(bWalkKeyID)
label(bWalkKeyPressed)
registersymbol(bWalkKeyPressed)
label(dWalkSpeed)
registersymbol(dWalkSpeed)
label(bSprintKeyID)
registersymbol(bSprintKeyID)
label(bSprintKeyPressed)
registersymbol(bSprintKeyPressed)
label(dSprintSpeed)
registersymbol(dSprintSpeed)
alloc(newmem,2048,someMoveSpeedReadAOB) //"CodeVein-Win64-Shipping.exe"+DD69C1D)
label(returnhere)
label(originalcode_someMoveSpeedReadAOB)
registersymbol(originalcode_someMoveSpeedReadAOB)
label(exit)
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
{
+a: 0004/002c
+1a4: 0/(float)2000
+210: 3F000000/45000000
+234: (float)40/0
+240: (float)1300/(float)360
}
push rax
//cmp dword ptr [rdi+1a4],0
//jne end
//cmp word ptr [rdi+a],4
//jne end
mov rax,pPlayerCoordInfo
mov rax,[rax]
cmp [rdi+f8],rax
jne end
cmp dword ptr [rdi+2f0],0
mov rax,bWalkKeyPressed
cmp byte ptr [rax],1
je @f
mov rax,bSprintKeyPressed
cmp byte ptr [rax],1
je @f
jmp end
@@:
mulss xmm0,[rax+4]
jmp end
end:
pop rax
originalcode_someMoveSpeedReadAOB:
readmem(someMoveSpeedReadAOB,8)
//movss [rdi+000002F0],xmm0
exit:
jmp returnhere
///
bWalkKeyID:
dd walkkeyiddefault
bWalkKeyPressed:
dd 0
dWalkSpeed:
dd walkspeed
bSprintKeyID:
dd sprintkeyiddefault
bSprintKeyPressed:
dd 0
dSprintSpeed:
dd sprintspeed
///
someMoveSpeedReadAOB: //"CodeVein-Win64-Shipping.exe"+DD69C1D:
jmp newmem
nop 3
returnhere:
///*****************************************///
//modified from ShyTwig16's lua keylistener script
//http://fearlessrevolution.com/viewtopic.php?f=4&t=6041&start=60#p62657
{$lua}
local function walkkeyLuaThread(thread2)
local addr2 = getAddressSafe('bWalkKeyPressed')
local addr3 = getAddressSafe('bSprintKeyPressed')
while RunWalkkeyLuaThreadLoop do
sleep(100)
if addr2 then
if ( isKeyPressed( readInteger('bWalkKeyID') ) ) then
writeBytes(addr2, 1)
else
writeBytes(addr2, 0)
end
else
addr2 = getAddressSafe('bWalkKeyPressed')
end
if addr3 then
if ( isKeyPressed( readInteger('bSprintKeyID') ) ) then
writeBytes(addr3, 1)
else
writeBytes(addr3, 0)
end
else
addr3 = getAddressSafe('bSprintKeyPressed')
end
end
thread2.terminate()
-- while RunWalkkeyLuaThreadLoop do
-- if ( isKeyPressed(VK_CAPITAL) ) then
-- writeBytes("bWalkKeyPressed" ,1)
-- else
-- writeBytes("bWalkKeyPressed" ,0)
-- end
-- end
-- thread2.terminate()
end
----------------------------------
if syntaxcheck then return end
RunWalkkeyLuaThreadLoop = true
createThread(walkkeyLuaThread)
{$asm}
///*****************************************///
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
{$lua}
if syntaxcheck then return end
RunWalkkeyLuaThreadLoop = false
{$asm}
///*****************************************///
dealloc(newmem)
someMoveSpeedReadAOB: //"CodeVein-Win64-Shipping.exe"+DD69C1D:
readmem(originalcode_someMoveSpeedReadAOB,8)
//db F3 0F 11 87 F0 02 00 00
//Alt: movss [rdi+000002F0],xmm0
unregistersymbol(originalcode_someMoveSpeedReadAOB)
unregistersymbol(bWalkKeyID)
unregistersymbol(bWalkKeyPressed)
unregistersymbol(dWalkSpeed)
unregistersymbol(bSprintKeyID)
unregistersymbol(bSprintKeyPressed)
unregistersymbol(dSprintSpeed)
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>13013</ID>
<Description>"walk key"</Description>
<DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">10:SHIFT key
11:CTRL key
12:ALT key
14:CAPS LOCK key
04:Middle Mouse Button
05:X1 Mouse Button
06:X2 Moust Button
09:TAB key
</DropDownList>
<LastState Value="14" RealAddress="155DF0065"/>
<ShowAsHex>1</ShowAsHex>
<Color>008000</Color>
<VariableType>Byte</VariableType>
<Address>bWalkKeyID</Address>
<CheatEntries>
<CheatEntry>
<ID>13015</ID>
<Description>"speed"</Description>
<LastState Value="0.400000006" RealAddress="155DF006D"/>
<Color>008000</Color>
<VariableType>Float</VariableType>
<Address>+8</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>13016</ID>
<Description>"sprint key"</Description>
<DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">10:SHIFT key
11:CTRL key
12:ALT key
14:CAPS LOCK key
04:Middle Mouse Button
05:X1 Mouse Button
06:X2 Moust Button
09:TAB key
</DropDownList>
<LastState Value="10" RealAddress="155DF0071"/>
<ShowAsHex>1</ShowAsHex>
<Color>008000</Color>
<VariableType>Byte</VariableType>
<Address>bSprintKeyID</Address>
<CheatEntries>
<CheatEntry>
<ID>13019</ID>
<Description>"speed"</Description>
<LastState Value="1.5" RealAddress="155DF0079"/>
<Color>008000</Color>
<VariableType>Float</VariableType>
<Address>+8</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>13023</ID>
<Description>"jump key"</Description>
<Options moHideChildren="1"/>
<LastState Activated="1"/>
<Color>FF0000</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
aobscanmodule(someCoordRead2AOB,CodeVein-Win64-Shipping.exe,48 ** ** ** 48 ** ** 0F 84 ** ** ** ** 48 ** ** ** ** 00 00 8B ** ** ** ** ** F2 0F ** ** ** ** ** ** 48 ** ** 74 ** 0F ** ** ** ** 00 00 48 ** ** ** 0F ** ** F3 0F ** ** ** 0F)
registersymbol(someCoordRead2AOB)
label(bJumpKeyID)
registersymbol(bJumpKeyID)
label(bJumpKeyPressed)
registersymbol(bJumpKeyPressed)
label(dJumpHeightInterval)
registersymbol(dJumpHeightInterval)
alloc(newmem,2048,someCoordRead2AOB+27) //"CodeVein-Win64-Shipping.exe"+D6AF37C)
label(returnhere)
label(originalcode_someCoordRead2AOB)
registersymbol(originalcode_someCoordRead2AOB)
label(exit)
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
push rbx
mov rbx,pPlayerCoordInfo
cmp [rbx],rax
jne end
mov rbx,bJumpKeyPressed
cmp byte ptr [rbx],1
je @f
mov dword ptr [rbx+4],0
jmp end
@@:
cmp dword ptr [rbx+4],#1800 //#2300
jg @f
inc dword ptr [rbx+4]
mov rbx,dJumpHeightInterval
movss xmm1,[rbx]
db 48 8D 98
readmem(someCoordRead2AOB+2a,4)
//lea rbx,[rax+1a0]
addss xmm1,[rbx+8]
movss [rbx+8],xmm1
end:
pop rbx
originalcode_someCoordRead2AOB:
readmem(someCoordRead2AOB+27,7)
//movaps xmm1,[rax+000001A0]
exit:
jmp returnhere
///
bJumpKeyID:
dd 05
bJumpKeyPressed:
dd 0
dd 0
dJumpHeightInterval:
dd (float)0.078
///
someCoordRead2AOB+27: //"CodeVein-Win64-Shipping.exe"+D6AF37C:
jmp newmem
nop 2
returnhere:
///*****************************************///
//modified from ShyTwig16's lua keylistener script
//http://fearlessrevolution.com/viewtopic.php?f=4&t=6041&start=60#p62657
{$lua}
local function jumpkeyLuaThread(thread6)
local addr6 = getAddressSafe('bJumpKeyPressed')
while JumpKeyLuaThreadLoop do
sleep(100)
if addr6 then
if ( isKeyPressed( readInteger('bJumpKeyID') ) ) then
writeBytes(addr6, 1)
else
writeBytes(addr6, 0)
end
else
addr6 = getAddressSafe('bJumpKeyPressed')
end
end
thread6.terminate()
-- while JumpKeyLuaThreadLoop do
-- if ( isKeyPressed(VK_CAPITAL) ) then
-- writeBytes("bJumpKeyPressed" ,1)
-- else
-- writeBytes("bJumpKeyPressed" ,0)
-- end
-- end
-- thread6.terminate()
end
----------------------------------
if syntaxcheck then return end
JumpKeyLuaThreadLoop = true
createThread(jumpkeyLuaThread)
{$asm}
///*****************************************///
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
{$lua}
if syntaxcheck then return end
JumpKeyLuaThreadLoop = false
{$asm}
///*****************************************///
dealloc(newmem)
someCoordRead2AOB+27: //"CodeVein-Win64-Shipping.exe"+D6AF37C:
readmem(originalcode_someCoordRead2AOB,7)
//db 0F 28 88 A0 01 00 00
//Alt: movaps xmm1,[rax+000001A0]
unregistersymbol(originalcode_someCoordRead2AOB)
unregistersymbol(bJumpKeyID)
unregistersymbol(bJumpKeyPressed)
unregistersymbol(dJumpHeightInterval)
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>13028</ID>
<Description>"key"</Description>
<Options moHideChildren="1"/>
<DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">10:SHIFT key
11:CTRL key
12:ALT key
14:CAPS LOCK key
04:Middle Mouse Button
05:X1 Mouse Button
06:X2 Moust Button
</DropDownList>
<LastState Value="05" RealAddress="155DD006F"/>
<ShowAsHex>1</ShowAsHex>
<Color>008000</Color>
<VariableType>Byte</VariableType>
<Address>bJumpKeyID</Address>
<CheatEntries>
<CheatEntry>
<ID>13029</ID>
<Description>""</Description>
<LastState Value="0" RealAddress="155DD0073"/>
<Color>008000</Color>
<VariableType>Byte</VariableType>
<Address>+4</Address>
<CheatEntries>
<CheatEntry>
<ID>13031</ID>
<Description>""</Description>
<LastState Value="0" RealAddress="155DD0077"/>
<Color>008000</Color>
<VariableType>4 Bytes</VariableType>
<Address>+4</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatTable>
- copy and paste the above code ONto your table.
for
walk/sprint key
- hold CapsLock key to walk. hold Shift key to sprint.
- the speeds can be changed via the entries.
for
jump key
- click mouse X1 button to jump.
- it doesn't help at all for platforming, as you can't move at all in the air. but it lets you use the fall attack without finding a ledge to jump off first.
maybe when I'm bored later I would find the 2d vector so that I can manipulate the mid-air movement for the jump key. or even bored and I would find the 3d vector as well to make a proper no-clip or fly script.... or, maybe I would have moved on by then.