Code: Select all
<?xml version="1.0" encoding="utf-8"?>
<CheatTable>
<CheatEntries>
<CheatEntry>
<ID>32</ID>
<Description>"Metro 2033 Redux Ⓜ Metro։ Last Light Redux"</Description>
<Options moDeactivateChildrenAsWell="1"/>
<LastState/>
<Color>6B6B6B</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
{$lua}
OpenProcess("metro.exe")
{$asm}
LuaCall(function cycleFullCompact(sender,force) local state = not(compactmenuitem.Caption == 'View Mode'); if force~=nil then state = not force end; compactmenuitem.Caption = state and 'Metro 2033 Redux Ⓜ Metro։ Last Light Redux' or 'Metro 2033 Redux Ⓜ Metro։ Last Light Redux'; getMainForm().Splitter1.Visible = state; getMainForm().Panel4.Visible = state; getMainForm().Panel5.Visible = state; end; function addCompactMenu() if compactmenualreadyexists then return end; local parent = getMainForm().Menu.Items; compactmenuitem = createMenuItem(parent); parent.add(compactmenuitem); compactmenuitem.Caption = 'View Mode'; compactmenuitem.OnClick = cycleFullCompact; compactmenualreadyexists = 'yes'; end; addCompactMenu(); cycleFullCompact(nil,true))
[DISABLE]
LuaCall(cycleFullCompact(nil,false))
</AssemblerScript>
<CheatEntries>
<CheatEntry>
<ID>196</ID>
<Description>"-----------/New Missions [Developer Pack] Shooting Range [Score]"</Description>
<LastState/>
<Color>FF8080</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
aobscanmodule(Player.Data_Score,$process,88 51 50 B8 01 00 00 00)
alloc(newmem,$1000,Player.Data_Score)
label(code return)
registersymbol(Player.Data_Score)
newmem:
cmp [rcx+2c],0
jne code
mov [rcx+50],(int)24
mov eax,1
jmp return
code:
mov [rcx+50],dl
mov eax,1
jmp return
Player.Data_Score:
jmp newmem
nop 3
return:
[DISABLE]
dealloc(newmem)
unregistersymbol(Player.Data_Score)
Player.Data_Score:
db 88 51 50 B8 01 00 00 00
</AssemblerScript>
</CheatEntry>
<CheatEntry>
<ID>185</ID>
<Description>"Campaign/New Missions [Durability] FlashLight"</Description>
<LastState/>
<Color>004000</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
aobscanmodule(Player.Use_Durability_Flashlight,$process,F3 0F 11 81 80 04 00 00)
alloc(newmem,$1000,Player.Use_Durability_Flashlight)
label(return)
registersymbol(Player.Use_Durability_Flashlight)
newmem:
movss [rcx+480],xmm0
mov [rcx+480],(float)1
jmp return
Player.Use_Durability_Flashlight:
jmp newmem
nop 3
return:
[DISABLE]
dealloc(newmem)
unregistersymbol(Player.Use_Durability_Flashlight)
Player.Use_Durability_Flashlight:
db F3 0F 11 81 80 04 00 00
</AssemblerScript>
</CheatEntry>
<CheatEntry>
<ID>40</ID>
<Description>"Campaign/New Missions [Endurance] Health"</Description>
<LastState/>
<Color>0000FF</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
aobscanmodule(Player_Health,$process,0F 2F 80 08 03 00 00 0F 83 57)
alloc(newmem,$1000,Player_Health)
label(return)
registersymbol(Player_Health)
newmem:
comiss xmm0,[rax+308]
or byte ptr [rax+712],40
jmp return
Player_Health:
jmp newmem
nop 2
return:
[DISABLE]
dealloc(newmem)
unregistersymbol(Player_Health)
Player_Health:
db 0F 2F 80 08 03 00 00
</AssemblerScript>
</CheatEntry>
<CheatEntry>
<ID>192</ID>
<Description>"Campaign/New Missions [Inventory] Bullets/Claymore Mines/Fuel/Hand Grenades/Incendiary Grenades/Military-Grade Bullets/Sticky Grenades/Throwing Knives"</Description>
<LastState/>
<Color>800000</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
aobscanmodule(Player.Use_Ammo_Mix_Type_W,$process,89 91 F4 04 00 00)
aobscanmodule(Player.Use_Ammo_Mix_Type_X,$process,89 91 8C 01 00 00)
aobscanmodule(Player.Use_Ammo_Mix_Type_Y,$process,89 81 CC 00 00 00 E9)
aobscanmodule(Player.Use_Ammo_Mix_Type_Z,$process,89 91 EC 06 00 00)
alloc(newmem_w,$1000,Player.Use_Ammo_Mix_Type_W)
alloc(newmem_x,$1000,Player.Use_Ammo_Mix_Type_X)
alloc(newmem_y,$1000,Player.Use_Ammo_Mix_Type_Y)
alloc(newmem_z,$1000,Player.Use_Ammo_Mix_Type_Z)
label(code_w code_x code_y code_z return_w return_x return_y return_z)
registersymbol(Player.Use_Ammo_Mix_Type_W Player.Use_Ammo_Mix_Type_X Player.Use_Ammo_Mix_Type_Y Player.Use_Ammo_Mix_Type_Z)
newmem_w:
mov [rcx+4f4],(int)999
jmp return_w
code_w:
mov [rcx+4f4],edx
jmp return_w
Player.Use_Ammo_Mix_Type_W:
jmp newmem_w
nop
return_w:
newmem_x:
mov [rcx+18c],(int)999
jmp return_x
code_x:
mov [rcx+18c],edx
jmp return_x
Player.Use_Ammo_Mix_Type_X:
jmp newmem_x
nop
return_x:
newmem_y:
mov [rcx+cc],(int)5
jmp return_y
code_y:
mov [rcx+cc],eax
jmp return_y
Player.Use_Ammo_Mix_Type_Y:
jmp newmem_y
nop
return_y:
newmem_z:
mov [rcx+6ec],(int)5
jmp return_z
code_z:
mov [rcx+6ec],edx
jmp return_z
Player.Use_Ammo_Mix_Type_Z:
jmp newmem_z
nop
return_z:
[DISABLE]
dealloc(*)
unregistersymbol(*)
Player.Use_Ammo_Mix_Type_W:
db 89 91 F4 04 00 00
Player.Use_Ammo_Mix_Type_X:
db 89 91 8C 01 00 00
Player.Use_Ammo_Mix_Type_Y:
db 89 81 CC 00 00 00
Player.Use_Ammo_Mix_Type_Z:
db 89 91 EC 06 00 00
</AssemblerScript>
</CheatEntry>
<CheatEntry>
<ID>186</ID>
<Description>"Campaign/New Missions [Overheat] Bastard/DShk 12.7mm HMG/Flamethrower/Hellbreath/Helsing/Tikhar"</Description>
<LastState/>
<Color>800080</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
aobscanmodule(Player.Use_Weapon_Ability_Overheat_Type_W,$process,F3 0F 11 83 B0 0C 00 00 48 8D)
aobscanmodule(Player.Use_Weapon_Ability_Overheat_Type_X,$process,F3 0F 11 86 D0 06 00 00)
aobscanmodule(Player.Use_Weapon_Ability_Overheat_Type_Y,$process,F3 0F 11 8B F0 0B 00 00 73)
aobscanmodule(Player.Use_Weapon_Ability_Overheat_Type_Z,$process,F3 0F 11 83 14 07 00 00)
alloc(newmem_w,$1000,Player.Use_Weapon_Ability_Overheat_Type_W)
alloc(newmem_x,$1000,Player.Use_Weapon_Ability_Overheat_Type_X)
alloc(newmem_y,$1000,Player.Use_Weapon_Ability_Overheat_Type_Y)
alloc(newmem_z,$1000,Player.Use_Weapon_Ability_Overheat_Type_Z)
label(return_w return_x return_y return_z)
registersymbol(Player.Use_Weapon_Ability_Overheat_Type_W Player.Use_Weapon_Ability_Overheat_Type_X Player.Use_Weapon_Ability_Overheat_Type_Y Player.Use_Weapon_Ability_Overheat_Type_Z)
newmem_w:
movss [rbx+cb0],xmm0
mov [rbx+cb0],(float)0
jmp return_w
Player.Use_Weapon_Ability_Overheat_Type_W:
jmp newmem_w
nop 3
return_w:
newmem_x:
movss [rsi+6d0],xmm0
mov [rsi+6d0],(float)0
jmp return_x
Player.Use_Weapon_Ability_Overheat_Type_X:
jmp newmem_x
nop 3
return_x:
newmem_y:
movss [rbx+bf0],xmm1
mov [rbx+bf0],(float)12
jmp return_y
Player.Use_Weapon_Ability_Overheat_Type_Y:
jmp newmem_y
nop 3
return_y:
newmem_z:
movss [rbx+714],xmm0
mov [rbx+714],(float)10
jmp return_z
Player.Use_Weapon_Ability_Overheat_Type_Z:
jmp newmem_z
nop 3
return_z:
[DISABLE]
dealloc(*)
unregistersymbol(*)
Player.Use_Weapon_Ability_Overheat_Type_W:
db F3 0F 11 83 B0 0C 00 00
Player.Use_Weapon_Ability_Overheat_Type_X:
db F3 0F 11 86 D0 06 00 00
Player.Use_Weapon_Ability_Overheat_Type_Y:
db F3 0F 11 8B F0 0B 00 00
Player.Use_Weapon_Ability_Overheat_Type_Z:
db F3 0F 11 83 14 07 00 00
</AssemblerScript>
</CheatEntry>
<CheatEntry>
<ID>133</ID>
<Description>"Campaign/New Missions [Timer] Filter [Reserve/Watch]"</Description>
<LastState/>
<Color>804000</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
aobscanmodule(Player.Use_Durability_Timer_Type_X,$process,C0 0F 5B C0 F3 0F 5C C6 0F 2F C1 72 03 0F 28 C1 F3 0F 5C C8 F3 0F 58 C6)
aobscanmodule(Player.Use_Durability_Timer_Type_Y,$process,F3 0F 11 87 4C 04 00 00 0F)
alloc(newmem,$1000,Player.Use_Durability_Timer_Type_Y)
label(return)
registersymbol(Player.Use_Durability_Timer_Type_X Player.Use_Durability_Timer_Type_Y)
Player.Use_Durability_Timer_Type_X+10:
db 90 90 90 90
newmem:
movss [rdi+44c],xmm0
mov [rdi+44c],(float)5940
jmp return
Player.Use_Durability_Timer_Type_Y:
jmp newmem
nop 3
return:
[DISABLE]
dealloc(*)
unregistersymbol(*)
Player.Use_Durability_Timer_Type_X+10:
db F3 0F 5C C8 F3 0F 58 C6
Player.Use_Durability_Timer_Type_Y:
db F3 0F 11 87 4C 04 00 00
</AssemblerScript>
</CheatEntry>
<CheatEntry>
<ID>81</ID>
<Description>"Campaign/New Missions [Toughness] Gas Mask"</Description>
<LastState/>
<Color>0065CA</Color>
<VariableType>Auto Assembler Script</VariableType>
<AssemblerScript>[ENABLE]
aobscanmodule(Player.Use_Durability_Air,$process,F3 0F 10 B0 08 03 00 00)
alloc(newmem,$1000,Player.Use_Durability_Air)
label(return)
registersymbol(Player.Use_Durability_Air)
newmem:
movss xmm6,[rax+308]
mov [rax+308],(float)1
jmp return
Player.Use_Durability_Air:
jmp newmem
nop 3
return:
[DISABLE]
dealloc(newmem)
unregistersymbol(Player.Use_Durability_Air)
Player.Use_Durability_Air:
db F3 0F 10 B0 08 03 00 00
</AssemblerScript>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
</CheatTable>
Note: The game is designed with anticheats at the end of the game, i have no idea if they've patched it somehow, all i know is that you won't be able to finish some task, that's all i remember, right at the very end, while using cheats.