15073
"L.A. Noire - Freecam BETA v0.06 by IDK31"
1
15074
""
1
26326
"Try not to use the notebook (TAB key) with the freecam enabled"
1
26328
"If freecam behaves unexpectedly, use the restore camera hotkeys"
1
26330
"RESOTRE CAMERA: Press PAGEDOWN and one of the following..."
000000
1
26331
"Numpad 7: On-foot, Numpad 8: In-vehicle, Numpad 9: In-cutscene"
000000
1
26327
""
1
26273
">> CAMERA CONTROLS **"
FF0000
Auto Assembler Script
//"LANoire.exe"+3C4554
[ENABLE]
aobscanmodule(camAOB,LANoire.exe,8B 00 3B C8 75 10 39 90)
alloc(newmem,$1000)
label(code)
label(return)
globalalloc(_cam,4)
newmem:
code:
mov [_cam],eax
mov eax,[eax]
cmp ecx,eax
jne LANoire.exe+3C456A
jmp return
camAOB:
jmp code
nop
return:
registersymbol(camAOB)
{$lua}
if syntaxcheck then return end
local symbolCheckT = createTimer()
symbolCheckT.Interval = 50
symbolCheckT.OnTimer = function(sender)
local base = readInteger("_cam")
if base == 0 or base == nil then return end
local function camRBase() return readInteger(base+0xE0) end
local function camWBase() return readInteger(camRBase()+0x90) end
local function writableIDAD() return readInteger(base+0xD0)-0x4 end
local function curID() return readInteger(writableIDAD()) end
local notebookID = readInteger(base+0x64)
local cutsceneID = readInteger(base+0x6C)
local onfootID = readInteger(base+0x94)
local vehicleID = readInteger(base+0xB8)
local freecamID = readInteger(base+0xBC)
local prevID -- to store camID before switching to freecam
-- CAMERA ADDRESSES
-- read
local function r_camXAD() return camRBase()+0x10 end
local function r_camYAD() return camRBase()+0x18 end
local function r_camZAD() return camRBase()+0x14 end
local function r_tarXAD() return camRBase()+0x40 end
local function r_tarYAD() return camRBase()+0x48 end
local function r_tarZAD() return camRBase()+0x44 end
local function r_rollAD() return camRBase()+0x60 end
local function r_FOVAD() return camRBase()+0x64 end
-- write
local function camXAD() return camWBase()+0x10 end
local function camYAD() return camWBase()+0x18 end
local function camZAD() return camWBase()+0x14 end
local function tarXAD() return camWBase()+0x40 end
local function tarYAD() return camWBase()+0x48 end
local function tarZAD() return camWBase()+0x44 end
local function rollAD() return camWBase()+0x60 end
local function FOVAD() return camWBase()+0x64 end
-- freecam
local function fc_camXAD() return freecamID+0x10 end
local function fc_camYAD() return freecamID+0x18 end
local function fc_camZAD() return freecamID+0x14 end
local function fc_tarXAD() return freecamID+0x40 end
local function fc_tarYAD() return freecamID+0x48 end
local function fc_tarZAD() return freecamID+0x44 end
local function fc_rollAD() return freecamID+0x60 end
local function fc_FOVAD() return freecamID+0x64 end
-- VARIABLES
local flySpeed = 0.05
local aimSpeed = math.pi/540
local rollSpeed = math.pi/540
local FOVSpeed = 0.005
local ultraFast = 100 -- how fast in ultra-fast mode
local fastMult = 10 -- how fast in fast mode
local slowDiv = 10 -- how slow in slow mode
local pitchMax = 0.99*math.pi/2
local useZ = true
local function freecamEnabled()
if curID() == freecamID then return true end
return false
end
local function gameHasFocus()
if getOpenedProcessID() == getForegroundProcess() then return true end
return false
end
local function requiredConditions()
if freecamEnabled() and gameHasFocus() then return true end
return false
end
local function toggleFreecam()
if not gameHasFocus() then return end
if freecamEnabled() then
if prevID and curID() ~= cutsceneID
then writeInteger(writableIDAD(), prevID)
else
if writableIDAD() - readInteger(base+0x1B0) == 0
then writeInteger(writableIDAD(), onfootID)
else writeInteger(writableIDAD(), vehicleID)
end
end
else
prevID = readInteger(writableIDAD())
-- write readable addressess to freecam before switch
writeFloat(fc_camXAD(), readFloat(r_camXAD()))
writeFloat(fc_camYAD(), readFloat(r_camYAD()))
writeFloat(fc_camZAD(), readFloat(r_camZAD()))
writeFloat(fc_tarXAD(), readFloat(r_tarXAD()))
writeFloat(fc_tarYAD(), readFloat(r_tarYAD()))
writeFloat(fc_tarZAD(), readFloat(r_tarZAD()))
writeFloat(fc_rollAD(), readFloat(r_rollAD()))
writeFloat(fc_FOVAD(), readFloat(r_FOVAD()))
-- switch
writeInteger(writableIDAD(), freecamID)
end
end
-- restore camera
local function restoreOnfoot() writeInteger(writableIDAD(), onfootID) end
local function restoreVehicle() writeInteger(writableIDAD(), vehicleID) end
local function restoreCutscene() writeInteger(writableIDAD(), cutsceneID) end
-- MOVEMENT SPEED MODIFIERS
local flySpeedOrig = flySpeed
local aimSpeedOrig = aimSpeed
local rollSpeedOrig = rollSpeed
local FOVSpeedOrig = FOVSpeed
local ultraFastModeEnabled = false
local fastModeEnabled = false
local slowModeEnabled = false
local didReset = true
local didSlow = false
local didFast = false
local didultraFast = false
checkCamKeys = createTimer()
checkCamKeys.setInterval(100)
checkCamKeys.onTimer = function()
if not gameHasFocus() then return end
if isKeyPressed(VK_T) and not isKeyPressed(VK_MENU) then
if not didultraFast then
flySpeed = flySpeedOrig*ultraFast
aimSpeed = aimSpeedOrig*fastMult
rollSpeed = rollSpeedOrig*fastMult
FOVSpeed = FOVSpeedOrig*fastMult
didReset = false
didultraFast = true
end
elseif isKeyPressed(VK_F) and not isKeyPressed(VK_MENU) then
if not didFast then
if didReset then ghostSpeedOrig = readFloat(ghostSpeedAD) end
flySpeed = flySpeedOrig*fastMult
aimSpeed = aimSpeedOrig*fastMult
rollSpeed = rollSpeedOrig*fastMult
FOVSpeed = FOVSpeedOrig*fastMult
didReset = false
didFast = true
end
elseif isKeyPressed(VK_C) and not isKeyPressed(VK_MENU) then
if not didSlow then
flySpeed = flySpeedOrig/slowDiv
aimSpeed = aimSpeedOrig/slowDiv
rollSpeed = rollSpeedOrig/slowDiv
FOVSpeed = FOVSpeedOrig/slowDiv
didReset = false
didSlow = true
end
elseif not didReset then
flySpeed = flySpeedOrig
aimSpeed = aimSpeedOrig
rollSpeed = rollSpeedOrig
FOVSpeed = FOVSpeedOrig
didultraFast = false
didFast = false
didSlow = false
didReset = true
ultraFastModeEnabled = false
fastModeEnabled = false
slowModeEnabled = false
end
end
-- MOVEMENT SPEED TOGGLES
local function resetSpeed()
flySpeed = flySpeedOrig
aimSpeed = aimSpeedOrig
rollSpeed = rollSpeedOrig
FOVSpeed = FOVSpeedOrig
ultraFastModeEnabled = false
fastModeEnabled = false
slowModeEnabled = false
end
local function goultraFast()
if ultraFastModeEnabled then resetSpeed()
else
flySpeed = flySpeedOrig*ultraFast
aimSpeed = aimSpeedOrig*fastMult
rollSpeed = rollSpeedOrig*fastMult
FOVSpeed = FOVSpeedOrig*fastMult
ultraFastModeEnabled = true
fastModeEnabled = false
slowModeEnabled = false
end
end
local function goFast()
if fastModeEnabled then resetSpeed()
else
flySpeed = flySpeedOrig*fastMult
aimSpeed = aimSpeedOrig*fastMult
rollSpeed = rollSpeedOrig*fastMult
FOVSpeed = FOVSpeedOrig*fastMult
ultraFastModeEnabled = false
fastModeEnabled = true
slowModeEnabled = false
end
end
local function goSlow()
if slowModeEnabled then resetSpeed()
else
flySpeed = flySpeedOrig/slowDiv
aimSpeed = aimSpeedOrig/slowDiv
rollSpeed = rollSpeedOrig/slowDiv
FOVSpeed = FOVSpeedOrig/slowDiv
ultraFastModeEnabled = false
fastModeEnabled = false
slowModeEnabled = true
end
end
local function toggleUseZ()
if not requiredConditions() then return end
if useZ then useZ = false
else useZ = true
end
end
local function move(moveDir)
if not requiredConditions() then return end
local camZ = readFloat(camZAD())
local tarZ = readFloat(tarZAD())
if moveDir == "up" then
writeFloat(camZAD(), camZ+flySpeed)
writeFloat(tarZAD(), tarZ+flySpeed)
return
elseif moveDir == "upCamOnly" then
writeFloat(camZAD(), camZ+flySpeed)
return
elseif moveDir == "down" then
writeFloat(camZAD(), camZ-flySpeed)
writeFloat(tarZAD(), tarZ-flySpeed)
return
elseif moveDir == "downCamOnly" then
writeFloat(camZAD(), camZ-flySpeed)
return
end
local camX = readFloat(camXAD())
local camY = readFloat(camYAD())
local tarX = readFloat(tarXAD())
local tarY = readFloat(tarYAD())
local Xdiff = tarX-camX
local Ydiff = tarY-camY
local Zdiff = tarZ-camZ
local hypXY = math.sqrt(Xdiff*Xdiff+Ydiff*Ydiff)
local dX; local dY; local dZ
if moveDir == "right" or moveDir == "right3D" then
if moveDir == "right3D" then
dX = separation3D*Ydiff/hypXY
dY = separation3D*Xdiff/hypXY
else
dX = flySpeed*Ydiff/hypXY
dY = flySpeed*Xdiff/hypXY
end
writeFloat(tarXAD(), tarX-dX)
writeFloat(tarYAD(), tarY+dY)
writeFloat(camXAD(), camX-dX)
writeFloat(camYAD(), camY+dY)
return
elseif moveDir == "left" or moveDir == "left3D" then
if moveDir == "left3D" then
dX = separation3D*Ydiff/hypXY
dY = separation3D*Xdiff/hypXY
else
dX = flySpeed*Ydiff/hypXY
dY = flySpeed*Xdiff/hypXY
end
writeFloat(tarXAD(), tarX+dX)
writeFloat(tarYAD(), tarY-dY)
writeFloat(camXAD(), camX+dX)
writeFloat(camYAD(), camY-dY)
return
end
local hypZ = math.sqrt(Zdiff*Zdiff+hypXY*hypXY)
if useZ then
dX = flySpeed*Xdiff/hypZ
dY = flySpeed*Ydiff/hypZ
dZ = flySpeed*Zdiff/hypZ
if moveDir == "backward" then dZ = -dZ end
writeFloat(tarZAD(), tarZ+dZ)
writeFloat(camZAD(), camZ+dZ)
else
dX = flySpeed*Xdiff/hypXY
dY = flySpeed*Ydiff/hypXY
dZ = flySpeed*Zdiff/hypXY
end
if moveDir == "forward" then
writeFloat(tarXAD(), tarX+dX)
writeFloat(tarYAD(), tarY+dY)
writeFloat(camXAD(), camX+dX)
writeFloat(camYAD(), camY+dY)
elseif moveDir == "backward" then
writeFloat(tarXAD(), tarX-dX)
writeFloat(tarYAD(), tarY-dY)
writeFloat(camXAD(), camX-dX)
writeFloat(camYAD(), camY-dY)
else return
end
end
local function orbit(orbitDir)
if not requiredConditions() then return end
local camX = readFloat(camXAD())
local camY = readFloat(camYAD())
local tarX = readFloat(tarXAD())
local tarY = readFloat(tarYAD())
local Xdiff = tarX-camX
local Ydiff = tarY-camY
local hypXY = math.sqrt(Xdiff*Xdiff+Ydiff*Ydiff)
local yaw
if orbitDir == "left" or orbitDir == "panRight" then
yaw = math.atan(Ydiff/Xdiff)+aimSpeed
elseif orbitDir == "right" or orbitDir == "panLeft" then
yaw = math.atan(Ydiff/Xdiff)-aimSpeed
else
local camZ = readFloat(camZAD())
local tarZ = readFloat(tarZAD())
local Zdiff = tarZ-camZ
local hypZ = math.sqrt(Zdiff*Zdiff+hypXY*hypXY)
local pitch
if orbitDir == "down" or orbitDir == "panUp" then
pitch = math.asin(Zdiff/hypZ)+aimSpeed
elseif orbitDir == "up" or orbitDir == "panDown" then
pitch = math.asin(Zdiff/hypZ)-aimSpeed
else return
end
if pitch>-pitchMax and pitch<pitchMax then
local R = hypZ*math.cos(pitch)/hypXY
local dX = Xdiff*R
local dY = Ydiff*R
local dZ = hypZ*math.sin(pitch)
if orbitDir == "panUp" or orbitDir == "panDown" then
writeFloat(tarXAD(), camX+dX)
writeFloat(tarYAD(), camY+dY)
writeFloat(tarZAD(), camZ+dZ)
return
else
writeFloat(camXAD(), tarX-dX)
writeFloat(camYAD(), tarY-dY)
writeFloat(camZAD(), tarZ-dZ)
return
end
end
return
end
if Xdiff<0 then yaw = yaw + math.pi end
local dX = hypXY*math.cos(yaw)
local dY = hypXY*math.sin(yaw)
if orbitDir == "panLeft" or orbitDir == "panRight" then
writeFloat(tarXAD(), camX+dX)
writeFloat(tarYAD(), camY+dY)
elseif orbitDir == "left" or orbitDir == "right" then
writeFloat(camXAD(), tarX-dX)
writeFloat(camYAD(), tarY-dY)
else return
end
end
local function dolly(dollyDir)
if not requiredConditions() then return end
local camX = readFloat(camXAD())
local camY = readFloat(camYAD())
local camZ = readFloat(camZAD())
local tarX = readFloat(tarXAD())
local tarY = readFloat(tarYAD())
local tarZ = readFloat(tarZAD())
local Xdiff = tarX-camX
local Ydiff = tarY-camY
local Zdiff = tarZ-camZ
local hypXY = math.sqrt(Xdiff*Xdiff+Ydiff*Ydiff)
local hypZ = math.sqrt(Zdiff*Zdiff+hypXY*hypXY)
if dollyDir == "closer" then
if hypZ>=0.1 then -- don't get too close to the origin
local dX = flySpeed*Xdiff/hypZ
local dY = flySpeed*Ydiff/hypZ
local dZ = flySpeed*Zdiff/hypZ
writeFloat(camXAD(), camX+dX)
writeFloat(camYAD(), camY+dY)
writeFloat(camZAD(), camZ+dZ)
end
return
elseif dollyDir == "farther" then
local dX = flySpeed*Xdiff/hypZ
local dY = flySpeed*Ydiff/hypZ
local dZ = flySpeed*Zdiff/hypZ
writeFloat(camXAD(), camX-dX)
writeFloat(camYAD(), camY-dY)
writeFloat(camZAD(), camZ-dZ)
return
end
end
local function zoomIn()
if not requiredConditions() then return end
local FOV = readFloat(FOVAD())
writeFloat(FOVAD(), FOV+FOVSpeed)
end
local function zoomOut()
if not requiredConditions() then return end
local FOV = readFloat(FOVAD())
writeFloat(FOVAD(), FOV-FOVSpeed)
end
local function rollLeft()
if not requiredConditions() then return end
local roll = readFloat(rollAD())
writeFloat(rollAD(), roll+rollSpeed)
end
local function rollRight()
if not requiredConditions() then return end
local roll = readFloat(rollAD())
writeFloat(rollAD(), roll-rollSpeed)
end
local function rollReset()
if not requiredConditions() then return end
writeFloat(rollAD(), 0)
end
-- TIMESCALE
local function stoptime() speedhack_setSpeed(0) end
local function veryslow() speedhack_setSpeed(0.1) end
local function someslow() speedhack_setSpeed(0.2) end
local function halfslow() speedhack_setSpeed(0.5) end
local function normalspeed() speedhack_setSpeed(1) end
local function doublespeed() speedhack_setSpeed(2) end
local function veryfast() speedhack_setSpeed(5) end
local function moveForward() move("forward") end
local function moveBackward() move("backward") end
local function moveLeft() move("left") end
local function moveLeft3D() move("left3D") end
local function moveRight() move("right") end
local function moveRight3D() move("right3D") end
local function moveUp() move("up") end
local function moveDown() move("down") end
local function moveUpCamOnly() move("upCamOnly") end
local function moveDownCamOnly() move("downCamOnly") end
local function panUp() orbit("panUp") end
local function panDown() orbit("panDown") end
local function panLeft() orbit("panLeft") end
local function panRight() orbit("panRight") end
local function orbitUp() orbit("up") end
local function orbitDown() orbit("down") end
local function orbitLeft() orbit("left") end
local function orbitRight() orbit("right") end
local function dollyCloser() dolly("closer") end
local function dollyFarther() dolly("farther") end
-- CAMERA HOTKEYS
camHotkeys = {
createHotkey(toggleFreecam, VK_NEXT), -- leave at pos 1
createHotkey(toggleUseZ, VK_NUMPAD2), -- leave at pos 2
createHotkey(goultraFast, VK_MENU, VK_T), -- leave at pos 3
createHotkey(goFast, VK_MENU, VK_F), -- leave at pos 4
createHotkey(goSlow, VK_MENU, VK_C), -- leave at pos 5
createHotkey(veryslow, VK_F6),
createHotkey(someslow, VK_F7),
createHotkey(halfslow, VK_F8),
createHotkey(normalspeed, VK_F9),
createHotkey(doublespeed, VK_F10),
createHotkey(veryfast, VK_F11),
createHotkey(restoreOnfoot, VK_NEXT, VK_NUMPAD7),
createHotkey(restoreVehicle, VK_NEXT, VK_NUMPAD8),
createHotkey(restoreCutscene, VK_NEXT, VK_NUMPAD9), -- 14
createHotkey(moveForward, VK_NUMPAD8),
createHotkey(moveBackward, VK_NUMPAD5),
createHotkey(moveLeft, VK_NUMPAD4),
createHotkey(moveRight, VK_NUMPAD6),
createHotkey(moveUp, VK_NUMPAD9),
createHotkey(moveDown, VK_NUMPAD7),
createHotkey(moveUpCamOnly, VK_NUMPAD3),
createHotkey(moveDownCamOnly, VK_NUMPAD1),
createHotkey(panUp, VK_ADD, VK_NUMPAD8),
createHotkey(panDown, VK_ADD, VK_NUMPAD5),
createHotkey(panLeft, VK_ADD, VK_NUMPAD4),
createHotkey(panRight, VK_ADD, VK_NUMPAD6),
createHotkey(rollLeft, VK_ADD, VK_NUMPAD3),
createHotkey(rollRight, VK_ADD, VK_NUMPAD1),
createHotkey(rollReset, VK_ADD, VK_NUMPAD2),
createHotkey(zoomIn, VK_ADD, VK_NUMPAD7),
createHotkey(zoomOut, VK_ADD, VK_NUMPAD9),
createHotkey(orbitUp, VK_RETURN, VK_NUMPAD5),
createHotkey(orbitDown, VK_RETURN, VK_NUMPAD8),
createHotkey(orbitLeft, VK_RETURN, VK_NUMPAD6),
createHotkey(orbitRight, VK_RETURN, VK_NUMPAD4),
createHotkey(dollyCloser, VK_RETURN, VK_NUMPAD9),
createHotkey(dollyFarther, VK_RETURN, VK_NUMPAD7)
}
local smDelay = 15
for i=1,smDelay-1,1 do camHotkeys[i].DelayBetweenActivate = 1000 end
for i=smDelay,#camHotkeys,1 do camHotkeys[i].DelayBetweenActivate = 10 end
sender.destroy()
end
{$asm}
[DISABLE]
camAOB:
db 8B 00 3B C8 75 10
unregistersymbol(camAOB)
dealloc(newmem)
{$lua}
if camHotkeys ~= nil then
for i,v in ipairs(camHotkeys) do v.destroy() end
camHotkeys = nil
end
if checkCamKeys ~= nil then
checkCamKeys.destroy()
checkCamKeys = nil
end
15028
">> HOTKEYS"
0080FF
1
15093
"Timescale: F6-F11 slow to fast (default: F9) [SPEEDHACK]"
000000
1
15094
"Freecam on/off - PAGEDOWN"
000000
1
26311
"Restore cam - (PGDN+...) On-foot: Num7, vehicle: Num8, cutscene: Num9"
000000
1
15072
"SPEED: Slow - C, Fast - F, Ultra fast - T (+ALT to toggle)"
000000
1
15095
"--- FLY ---"
0080FF
1
15096
"(Below, NUMPAD keys...)"
000000
1
15097
"MOVE: Forward - 8, backward - 5, left - 4, right - 6"
000000
1
15098
"FLY: Up - 9, down - 7"
000000
1
15099
"FLY: Up - 3, down - 1 (camera only)"
000000
1
15100
"Freeze height on/off: 2"
000000
1
15101
"--- AIM --- hold down PLUS"
0080FF
1
15102
"(Below, NUMPAD keys...)"
000000
1
15103
"PAN: Up - 8, down - 5, left - 4, right - 6"
000000
1
15104
"ZOOM: In - 9, out - 7"
000000
1
15105
"TILT: Left - 1, right - 3, [reset] - 2"
000000
1
15106
"--- ROTATE --- hold down ENTER"
0080FF
1
15107
"(Below, NUMPAD keys...)"
000000
1
15108
"ROTATE: Up - 5, down - 8, left - 6, right - 4"
000000
1
15109
"MOVE: Closer - 9, farther - 7"
000000
1
26637
">> SETTINGS"
FF0000
1
26343
"Roll"
000000
Float
_cam
60
90
E0
26288
"FOV"
000000
Float
_cam
64
90
E0
26282
"Camera X"
000000
Float
_cam
10
90
E0
26287
"Camera Y"
000000
Float
_cam
18
90
E0
26286
"Camera Z"
000000
Float
_cam
14
90
E0
26285
"Target X"
000000
Float
_cam
40
90
E0
26284
"Target Y"
000000
Float
_cam
48
90
E0
26283
"Target Z"
000000
Float
_cam
44
90
E0
26446
">> TONEMAPPING/DOF"
FF0000
1
26572
">> Tonemapping"
FF0000
1
26333
">> GAMMA"
FF0000
Auto Assembler Script
//"LANoire.exe"+8BBA7B
[ENABLE]
aobscanmodule(gammaAOB,LANoire.exe,F3 0F 10 83 38 09 00 00 8D 54)
alloc(newmem,$1000)
label(code)
label(return)
globalalloc(_gamma,4)
newmem:
code:
mov [_gamma],ebx
movss xmm0,[ebx+00000938]
jmp return
gammaAOB:
jmp code
nop
nop
nop
return:
registersymbol(gammaAOB)
[DISABLE]
gammaAOB:
db F3 0F 10 83 38 09 00 00
unregistersymbol(gammaAOB)
dealloc(newmem)
26334
"Gamma (default 1)"
Float
_gamma
938
26314
">> Black and white"
FF0000
Auto Assembler Script
// "LANoire.exe"+8BC155
[ENABLE]
aobscanmodule(desatAOB,LANoire.exe,8A 48 4C F3 0F 11 84 24 C0 00 00 00)
alloc(newmem,$1000)
label(code)
label(return)
globalalloc(_desat,4)
newmem:
code:
mov [_desat],eax
mov cl,[eax+4C]
movss [esp+000000C0],xmm0
jmp return
desatAOB:
jmp code
nop
nop
nop
nop
nop
nop
nop
return:
registersymbol(desatAOB)
[DISABLE]
desatAOB:
db 8A 48 4C F3 0F 11 84 24 C0 00 00 00
unregistersymbol(desatAOB)
dealloc(newmem)
26316
"Black and white mode on/off"
1:ON
0:-
4 Bytes
"LANoire.exe"+0111AFC4
3CC
218
484
27C
1FC
26448
"Noise"
Float
"LANoire.exe"+0111AC78
194
E4
26457
"Saturation"
Float
"LANoire.exe"+0111AC78
A8
E4
26461
"Highlights - RED"
Float
"LANoire.exe"+0111AC78
140
E4
26456
"Highlights - GREEN"
Float
"LANoire.exe"+0111AC78
144
E4
26455
"Highlights - BLUE"
Float
"LANoire.exe"+0111AC78
148
E4
26453
"Midtones - RED"
Float
"LANoire.exe"+0111AC78
150
E4
26452
"Midtones - GREEN"
Float
"LANoire.exe"+0111AC78
154
E4
26460
"Midtones - BLUE"
Float
"LANoire.exe"+0111AC78
158
E4
26445
"Shadows - RED"
Float
"LANoire.exe"+0111AC78
160
E4
26450
"Shadows - GREEN"
Float
"LANoire.exe"+0111AC78
164
E4
26449
"Shadows - BLUE"
Float
"LANoire.exe"+0111AC78
168
E4
26376
">> Environment"
FF0000
Auto Assembler Script
//"LANoire.exe"+A0BAAD
[ENABLE]
aobscanmodule(bloomAOB,LANoire.exe,F3 0F 10 93 F4 01 00 00)
alloc(newmem,$1000)
label(code)
label(return)
globalalloc(_bloom,4)
newmem:
code:
mov [_bloom],ebx
movss xmm2,[ebx+000001F4]
jmp return
bloomAOB:
jmp code
nop
nop
nop
return:
registersymbol(bloomAOB)
[DISABLE]
bloomAOB:
db F3 0F 10 93 F4 01 00 00
unregistersymbol(bloomAOB)
dealloc(newmem)
26378
"Bloom"
Float
_bloom
1F4
26385
"Brightness"
Float
_bloom
1F0
26382
"Darkness"
Float
_bloom
208
26380
"Shadow brightness"
Float
_bloom
1FC
26416
"Sunlight RED"
Float
_bloom
170
26418
"Sunlight GREEN"
Float
_bloom
174
26417
"Sunlight BLUE"
Float
_bloom
178
26413
"Fog RED"
Float
_bloom
120
26414
"Fog GREEN"
Float
_bloom
124
26415
"Fog BLUE"
Float
_bloom
128
26568
">> DOF - Gameplay"
FF0000
1
26543
"Horiz. blur boost (ex: 1)"
Float
"LANoire.exe"+0111AC78
5C
E4
26564
"Vert. blur boost (ex: 1)"
Float
"LANoire.exe"+0111AC78
60
E4
26638
"Near plane dist. (blurs before here, ex: 20)"
Float
"LANoire.exe"+0111AC78
78
E4
26546
"Far plane dist. (blurs after here, ex: 60)"
Float
"LANoire.exe"+0111AC78
7C
E4
26639
"Near plane dist. alt (set to 0)"
Float
"LANoire.exe"+0111AC78
80
E4
26547
"Far plane dist. alt (set to 0)"
Float
"LANoire.exe"+0111AC78
74
E4
26548
"Max distance to blur (ex: 100000)"
Float
"LANoire.exe"+0111AC78
84
E4
26490
">> DOF - Cutscene"
FF0000
Auto Assembler Script
//"LANoire.exe"+8BC96C
[ENABLE]
aobscanmodule(dofAOB,LANoire.exe,F3 0F 10 97 04 01 00 00)
alloc(newmem,$1000)
label(code)
label(return)
globalalloc(_dof,4)
newmem:
code:
mov [_dof],edi
movss xmm2,[edi+00000104]
jmp return
dofAOB:
jmp code
nop
nop
nop
return:
registersymbol(dofAOB)
[DISABLE]
dofAOB:
db F3 0F 10 97 04 01 00 00
unregistersymbol(dofAOB)
dealloc(newmem)
26635
">> Interrogations"
FF0000
1
26501
"Horiz. blur boost (ex: 1)"
Float
_dof
EC
26632
"Vert. blur boost (ex: 1)"
Float
_dof
F0
26494
"Near plane dist. (blurs before here, ex: 20)"
Float
_dof
108
26496
"Far plane dist. (blurs after here, ex: 60)"
Float
_dof
10C
26642
"Near plane dist. alt (set to 0)"
Float
_dof
110
26643
"Far plane dist. alt (set to 0)"
Float
_dof
104
26573
"Max distance to blur (ex: 100000)"
Float
_dof
114
26492
"Horiz. blur boost (ex: 1)"
Float
_dof
66C
26634
"Vert. blur boost (ex: 1)"
Float
_dof
670
26500
"Near plane dist. (blurs before here, ex: 20)"
Float
_dof
688
26499
"Far plane dist. (blurs after here, ex: 60)"
Float
_dof
68C
26640
"Near plane dist. alt (set to 0)"
Float
_dof
690
26641
"Far plane dist. alt (set to 0)"
Float
_dof
684
26574
"Max distance to blur (ex: 100000)"
Float
_dof
694
26569
">> DOF - Main menu"
FF0000
1
26549
"Horiz. blur boost (ex: 1)"
Float
"LANoire.exe"+0111AC78
1DEC
E4
26571
"Vert. blur boost (ex: 1)"
Float
"LANoire.exe"+0111AC78
1DF0
E4
26550
"Near plane dist. (blurs before here, ex: 20)"
Float
"LANoire.exe"+0111AC78
1E08
E4
26552
"Far plane dist. (blurs after here, ex: 60)"
Float
"LANoire.exe"+0111AC78
1E0C
E4
26644
"Near plane dist. alt (set to 0)"
Float
"LANoire.exe"+0111AC78
1E10
E4
26645
"Far plane dist. alt (set to 0)"
Float
"LANoire.exe"+0111AC78
1E04
E4
26554
"Max distance to blur (ex: 100000)"
Float
"LANoire.exe"+0111AC78
1E14
E4
26443
">> TIMESTOP **"
FF0000
Auto Assembler Script
//"LANoire.exe"+761C7
[ENABLE]
aobscanmodule(timestopAOB,LANoire.exe,3B 46 1C 75 06)
alloc(newmem,$1000)
label(code)
label(return)
globalalloc(_timestop,4)
newmem:
code:
mov [_timestop],esi
cmp eax,[esi+1C]
jne LANoire.exe+761D2
jmp return
timestopAOB:
jmp code
return:
registersymbol(timestopAOB)
{$lua}
if syntaxcheck then return end
local symbolCheckT = createTimer()
symbolCheckT.Interval = 50
symbolCheckT.OnTimer = function(sender)
local timestopAD = readInteger("_timestop")+0x1C
local function togglePause()
pauseOnOff = readBytes(timestopAD,1,false)
if pauseOnOff&4 == 0 then writeBytes(timestopAD, pauseOnOff+4)
else writeBytes(timestopAD, pauseOnOff-4)
end
end
pauseHotkeys = {createHotkey(togglePause, VK_F5)}
for i,v in ipairs(pauseHotkeys) do
v.DelayBetweenActivate = 1000
end
sender.destroy()
end
{$asm}
[DISABLE]
timestopAOB:
db 3B 46 1C 75 06
unregistersymbol(timestopAOB)
dealloc(newmem)
{$lua}
if pauseHotkeys ~= nil then
for i,v in ipairs(pauseHotkeys) do v.destroy() end
pauseHotkeys = nil
end
26636
"Toggle timestop - F5"
0080FF
1
26441
"Timestop on/off"
1:ON
0:-
Binary
2
1
0
_timestop
1C
26207
">> HUD **"
FF0000
Auto Assembler Script
//"LANoire.exe"+86353E
[ENABLE]
aobscanmodule(hudAOB,LANoire.exe,D9 80 CC 00 00 00 D9 9E 84 00 00 00 8B 06)
alloc(newmem,$1000)
label(code)
label(return)
globalalloc(_hud,4)
newmem:
code:
mov [_hud],eax
fld dword ptr [eax+000000CC]
jmp return
hudAOB:
jmp code
nop
return:
registersymbol(hudAOB)
{$lua}
if syntaxcheck then return end
local symbolCheckT = createTimer()
symbolCheckT.Interval = 50
symbolCheckT.OnTimer = function(sender)
local hudSizeAD = readInteger("_hud")+0xCC
local hudDefaultSize = readFloat(hudSizeAD)
local function toggleHud()
if readFloat(hudSizeAD) == 0 then writeFloat(hudSizeAD, hudDefaultSize)
else writeFloat(hudSizeAD, 0)
end
end
hudHotkeys = {createHotkey(toggleHud, VK_H)}
for i,v in ipairs(hudHotkeys) do
v.DelayBetweenActivate = i == 1 and 1000 or 10
end
sender.destroy()
end
{$asm}
[DISABLE]
hudAOB:
db D9 80 CC 00 00 00
unregistersymbol(hudAOB)
dealloc(newmem)
{$lua}
if hudHotkeys ~= nil then
for i,v in ipairs(hudHotkeys) do v.destroy() end
hudHotkeys = nil
end
26310
"Toggle HUD - H"
0080FF
1
26208
"UI/HUD Size"
Float
_hud
CC
26447
"** Adds hotkeys"
1
_timestop
055C0010
_cam
055C0000
_dof
055C0040
_bloom
055C0030
_desat
055C0050
_gamma
04F10060
_hud
055C0020
_autocam
04F10000