USA90210 wrote: ↑Sat Jul 13, 2019 9:14 pm
Poganin wrote: ↑Wed Jul 10, 2019 5:39 pm
No update to the table seems necessary. It still works after the latest patch.
Undead doesn't seem to be working with version 1.4.0. Steam/Uplay.
just re-installed the game. it still works on 1.4.0. Uplay.
///////////////////////////////////
Jokerdak wrote: ↑Mon Jul 15, 2019 1:25 pm
I have random CTD with the new update with the stealth on crouch option
played for an hour with all scripts activated. no CTD at all.
any details on how to re-create the problem will be appreciated.
///////////////////////////////////
Nicobobinus wrote: ↑Tue Jul 09, 2019 10:03 pm
Thank you very much for this table it's excellent. I'm not sure if it needs an updating for the 1.4.0 patch that just dropped, but if you
are updating it is there any chance of adding a fourth option of "when swimming" to the stealth mod? I keep activating "stealth always" when in the water because of the sharks...
as I've reinstalled the game already. I'll have look, see if I can come up with something...
EDIT:
here it is:
Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>4498</ID>
<Description>"stealth mod .2"</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(someBase1Trace17AOB,ACOdyssey.exe,48 8B ** ** ** ** ** 45 ** ** 44 ** ** ** ** 48 ** ** ** ** 00 00 BA ** ** ** ** 48 ** ** ** ** 00 00 00 00 E8 ** ** ** ** 48 ** ** ** 5B C3)
registersymbol(someBase1Trace17AOB)
label(bWaterStealth)
registersymbol(bWaterStealth)
label(pSomeBase1Trace)
registersymbol(pSomeBase1Trace)
label(pCrouch)
registersymbol(pCrouch)
alloc(newmem,2048,someBase1Trace17AOB+7) //"ACOdyssey.exe"+333993A)
label(originalcode_stealthmod)
registersymbol(originalcode_stealthmod)
label(exit)
//0, disable; 1, in sneak; 2, always
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
mov r9,pSomeBase1Trace
mov [r9],rcx
readmem(someBase1Trace17AOB+f,7)
mov r8,[rcx]
test r8,r8
jz @f
mov r8,[r8+8]
test r8,r8
jz @f
mov r8,[r8+60]
test r8,r8
jz @f
mov r8,[r8]
test r8,r8
jz @f
lea r8,[r8+660]
mov [r9+8],r8
lea r8,[r8-3c]
mov [r9+10],r8
@@:
//
mov r8,[r9+8]
test r8,r8
jz end
cmp byte ptr [r9-4],1
jne modechk
mov r8,[r9+10]
mov r9,pPlayer
mov r9,[r9+18]
test r9,r9
jz end
cmp dword ptr [r8],9
je @f
cmp dword ptr [r8],3c
je @f
//mov byte ptr [r9+a6],0
jmp modechk
@@:
mov r8,bStealthMod
cmp word ptr [r8],0
je @f
mov byte ptr [r9+a6],1
jmp end
modechk:
mov r9,pSomeBase1Trace
mov r8,[r9+8]
mov r9,bStealthMod
cmp byte ptr [r9],1
jne @f
mov r9,pPlayer
mov r9,[r9+18]
test r9,r9
jz end
mov r8l,[r8]
mov [r9+a6],r8l
jmp end
@@:
mov r8,pPlayer
mov r8,[r8+18]
test r8,r8
jz end
cmp byte ptr [r9],2
jne @f
mov byte ptr [r8+a6],1
jmp end
@@:
cmp byte ptr [r9+1],1
jne end
mov byte ptr [r9+1],0
mov byte ptr [r8+a6],0
//
end:
readmem(someBase1Trace17AOB+7,8)
jmp exit
originalcode_stealthmod:
readmem(someBase1Trace17AOB+7,15)
//xor r9d,r9d
//mov r8d,[rsp+40]
//add rcx,000000D8
exit:
jmp someBase1Trace17AOB+16
///
bWaterStealth:
dd 1
pSomeBase1Trace:
dq 0
pCrouch:
dq 0
///
someBase1Trace17AOB+7: //"ACOdyssey.exe"+333993A:
jmp newmem
///****************************************************///
bStealthMod:
db 1
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
someBase1Trace17AOB+7: //"ACOdyssey.exe"+333993A:
readmem(originalcode_stealthmod,15)
//db 45 33 C9 44 8B 44 24 40 48 81 C1 D8 00 00 00
//Alt: xor r9d,r9d
//Alt: mov r8d,[rsp+40]
//Alt: add rcx,000000D8
unregistersymbol(originalcode_stealthmod)
unregistersymbol(bWaterStealth)
unregistersymbol(pSomeBase1Trace)
unregistersymbol(pCrouch)
///****************************************************///
[pPlayer+18]+a6:
db 00
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>4499</ID>
<Description>"status"</Description>
<DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">0000:disabled
0100:disabling...
0001:in sneak
0002:always
</DropDownList>
<LastState Value="0001" RealAddress="13F17006C"/>
<ShowAsHex>1</ShowAsHex>
<Color>008000</Color>
<VariableType>2 Bytes</VariableType>
<Address>bStealthMod</Address>
<Hotkeys>
<Hotkey>
<Action>Set Value</Action>
<Keys>
<Key>96</Key>
<Key>111</Key>
</Keys>
<Value>0100</Value>
<ID>0</ID>
<ActivateSound TTS="">stealth disabled</ActivateSound>
</Hotkey>
<Hotkey>
<Action>Set Value</Action>
<Keys>
<Key>96</Key>
<Key>106</Key>
</Keys>
<Value>0001</Value>
<ID>1</ID>
<ActivateSound TTS="">stealth in sneak</ActivateSound>
</Hotkey>
<Hotkey>
<Action>Set Value</Action>
<Keys>
<Key>96</Key>
<Key>109</Key>
</Keys>
<Value>0002</Value>
<ID>2</ID>
<ActivateSound TTS="">stealth always</ActivateSound>
</Hotkey>
</Hotkeys>
</CheatEntry>
<CheatEntry>
<ID>24061</ID>
<Description>"water stealth?"</Description>
<DropDownList ReadOnly="1" DescriptionOnly="1" DisplayValueAsItem="1">0:no
1:yes
</DropDownList>
<LastState Value="1" RealAddress="1F78D01AC"/>
<Color>008000</Color>
<VariableType>Byte</VariableType>
<Address>bWaterStealth</Address>
</CheatEntry>
<CheatEntry>
<ID>4502</ID>
<Description>"numpad0 + numpad/ _ disable"</Description>
<Options moHideChildren="1"/>
<LastState Value="" Activated="1" RealAddress="00000000"/>
<Color>808080</Color>
<GroupHeader>1</GroupHeader>
<CheatEntries>
<CheatEntry>
<ID>4500</ID>
<Description>"crouch flag"</Description>
<LastState Value="0" RealAddress="95BE44EF0"/>
<Color>808080</Color>
<VariableType>Byte</VariableType>
<Address>pCrouch</Address>
<Offsets>
<Offset>0</Offset>
</Offsets>
</CheatEntry>
<CheatEntry>
<ID>24059</ID>
<Description>""</Description>
<LastState Value="30" RealAddress="95BE44EB4"/>
<Color>808080</Color>
<VariableType>Byte</VariableType>
<Address>pCrouch+8</Address>
<Offsets>
<Offset>0</Offset>
</Offsets>
</CheatEntry>
<CheatEntry>
<ID>4501</ID>
<Description>""</Description>
<Options moHideChildren="1"/>
<LastState Value="00" RealAddress="90454C166"/>
<ShowAsHex>1</ShowAsHex>
<Color>FFFFFF</Color>
<VariableType>Byte</VariableType>
<Address>pPlayer+18</Address>
<Offsets>
<Offset>a6</Offset>
</Offsets>
</CheatEntry>
</CheatEntries>
</CheatEntry>
<CheatEntry>
<ID>4503</ID>
<Description>"numpad0 + numpad* _ stealth in sneak"</Description>
<Options moHideChildren="1"/>
<LastState Value="" RealAddress="00000000"/>
<Color>808080</Color>
<GroupHeader>1</GroupHeader>
</CheatEntry>
<CheatEntry>
<ID>4504</ID>
<Description>"numpad0 + numpad- _ always in stealth"</Description>
<Options moHideChildren="1"/>
<LastState Value="" RealAddress="00000000"/>
<Color>808080</Color>
<GroupHeader>1</GroupHeader>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatTable>
- hook CE to the game, open your table as usual.
- activate
enable script.
- tab to this post, copy the above codes.
- back to CE, highlight
stealth mod on your table, then press Ctrl-V. you should see
stealth mod .2 appear right after
stealth mod.
- delete
stealth mod (the original one).
- test if the new script works. if so, save the table.
when the new script is activated, you should be able to find a new entry
water stealth? below the
status entry, which should be "yes" by default.
that means enemies won't notice you when you're either floating or diving. walking on the water doesn't count. as what you're after is the sharks, it shouldn't be a bother.
when you're not floating/diving,
status will take back control of the script behaviour. i.e., "in sneak" means no one would notice you when you're in crouch, "always" means.... always.
it's a cheap water filter, which the value it used for cmp is near the crouch flag. lazy to trace the structure again...
I don't know what that value is for, but it seems consistent so far.....
hope it works.
have fun~