Log in

View Full Version : FPS Limiter, got the code, need executable programme.



kusiak
09-01-2010, 14:17
Hi, i need external FPS limiter (Framerate) programme,
the code is here:
http://www.tpforums.org/forum/thread-6343-page-1.html?highlight=framerate
Could someone create it? Many players would use it for sure.
Thanks.

Public Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)

'--------------------------------------------------------
Public Const MemoryFPS = &H76793C '

Public Const FrameRateCurrentOffset = &H60
Public Const FrameRateLimitOffset = &H58
'--------------------------------------------------------------------------------------

Public Function Memory(hwnd As Long, Address As Long, Value As Long, Size As Long, Process As Integer)
Dim Pid As Long
Dim phandle As Long
GetWindowThreadProcessId hwnd, Pid
phandle = OpenProcess(&H1F0FFF, False, Pid)
If Process = 1 Then ReadProcessMemory phandle, Address, Value, Size, 0
If Process = 2 Then WriteProcessMemory phandle, Address, Value, Size, 0
CloseHandle phandle
End Function
'--------------------------------------------------------------------------------------------
Public Function ReadFPS()
Dim LocalizarMemFps As Long
Dim MemRealFPS As Long
Dim MemRealLimiteFPS As Long
Dim i As Integer
Dim B(1 To 8) As Byte
Dim f As Double
Dim Temp As Long

Memory Tibia_Hwnd, MemoryFPS, LocalizarMemFps, 4, RMem

MemRealFPS = LocalizarMemFps + FrameRateCurrentOffset
MemRealLimiteFPS = LocalizarMemFps + FrameRateLimitOffset

For i = 1 To 8
Memory Tibia_Hwnd, MemRealFPS + i - 1, Temp, 1, RMem
B(i) = CInt(Temp)
DoEvents
Next i

CopyMemory f, B(1), 8
ReadFPS = f

End Function
'------------------------------------------------------------------------------------------


Public Function SetFPS(Fps As Integer)
Dim LocalizarMemFps As Long
Dim MemRealFPS As Long
Dim MemRealLimiteFPS As Long
Dim i As Integer
Dim B(1 To 8) As Byte
Dim f As Double

Memory Tibia_Hwnd, MemoryFPS, LocalizarMemFps, 4, RMem

MemRealFPS = LocalizarMemFps + FrameRateCurrentOffset
MemRealLimiteFPS = LocalizarMemFps + FrameRateLimitOffset

f = Round((1110 / Fps) - 5, 1)
CopyMemory B(1), f, 8

For i = 1 To 8
Memory Tibia_Hwnd, MemRealLimiteFPS + i - 1, CInt(B(i)), 1, WMem
DoEvents
Next i

End Function