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.
Code:
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