Im creating a trainer and i use this module:

Code:
Module Injection

#Region "Declarations"

        Private Declare Function OpenProcess Lib "kernel32" Alias "OpenProcess" (ByVal dwDesiredAccess As Integer, ByVal bInheritHandle As Integer, ByVal dwProcessId As Integer) As Integer
        Private Declare Function WriteProcessMemory Lib "kernel32" Alias "WriteProcessMemory" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Integer, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer
        Private Declare Function WriteFloatMemory Lib "kernel32" Alias "WriteProcessMemory" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Single, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer
        Private Declare Function ReadFloat Lib "kernel32" Alias "ReadProcessMemory" (ByVal hProcess As IntPtr, ByVal lpBaseAddress As IntPtr, ByRef buffer As Single, ByVal size As Int32, ByRef lpNumberOfBytesRead As Int32) As Boolean
        Private Declare Function ReadProcessMemory Lib "kernel32" Alias "ReadProcessMemory" (ByVal hProcess As Integer, ByVal lpBaseAddress As Integer, ByRef lpBuffer As Integer, ByVal nSize As Integer, ByRef lpNumberOfBytesWritten As Integer) As Integer
        Private Declare Function CloseHandle Lib "kernel32" Alias "CloseHandle" (ByVal hObject As Integer) As Integer

        Private string1 As Long
        Private string2 As Integer
        Private RBuff1 As Long
        Private RBuff2 As Single
        Private RBuff3 As Integer

#End Region

#Region "Check Process/ReadDll"

        Private Function readdll(ByVal modulename As String)
            Dim procmodule As ProcessModule
            Dim constant1 As Integer
            Dim constant2 As Long
        Dim constant3 As Process() = Process.GetProcessesByName("iw4mp")
            If constant3.Length = 0 Then
                Return 0
            End If
            For Each procmodule In constant3(0).Modules
                If modulename = procmodule.ModuleName Then
                    constant1 = procmodule.BaseAddress
                End If
            Next
            constant2 = constant1
            Return constant2
        End Function

        Public Function IsProcessOpen(ByVal name As String) As Boolean

            For Each clsProcess As Process In Process.GetProcesses

                If clsProcess.ProcessName.Contains(name) Then


                    Return True

                End If
            Next
            ' Do nothing 
            Return False
        End Function


#End Region

#Region "Hacks"

        'WriteMemory
        Private Function WriteMemory(ByVal Address As Integer, ByVal Value As Long, ByVal Bytes As Integer)
        Dim iw4mpLookUp As Process() = Process.GetProcessesByName("iw4mp")
            If iw4mpLookUp.Length = 0 Then
                End
            End If
            Dim processHandle As IntPtr = OpenProcess(&H1F0FFF, 0, iw4mpLookUp(0).Id)
            WriteProcessMemory(processHandle, Address, Value, Bytes, Nothing)
            CloseHandle(processHandle)

            Return Nothing
        End Function

        'WriteFloat
        Private Function WriteFloat(ByVal Address As Integer, ByVal Value As Single)
        Dim iw4mpLookUp As Process() = Process.GetProcessesByName("iw4mp")
        If iw4mpLookUp.Length = 0 Then
            End
        End If
        Dim processHandle As IntPtr = OpenProcess(&H1F0FFF, 0, iw4mpLookUp(0).Id)
        WriteFloatMemory(processHandle, Address, Value, 4, Nothing)
        CloseHandle(processHandle)

        Return Nothing
    End Function

    'NOP
    Private Function NOP(ByVal Address As Integer, ByVal value As Integer)
        Dim iw4mpLookUp As Process() = Process.GetProcessesByName("iw4mp")
        If iw4mpLookUp.Length = 0 Then
            End
        End If
        Dim processHandle As IntPtr = OpenProcess(&H1F0FFF, 0, iw4mpLookUp(0).Id)
        WriteProcessMemory(processHandle, Address, value, 1, Nothing)
        CloseHandle(processHandle)

        Return Nothing
    End Function

#End Region

#Region "Functions"

    Public Function memoryh4x(ByVal address As String, ByVal value As Long, ByVal bytes As Byte)
        If IsProcessOpen("iw4mp") Then

            string1 = readdll("cshell.dll")
            string2 = "&H" & Hex(string1 + address)
            WriteMemory(string2, value, bytes)
        End If
        Return Nothing
    End Function

    Public Function floath4x(ByVal address As String, ByVal value As Long)
        If IsProcessOpen("iw4mp") Then

            string1 = readdll("cshell.dll")
            string2 = "&H" & Hex(string1 + address)
            WriteFloat(string2, value)
        End If
        Return Nothing
    End Function

    Public Function noph4x(ByVal address As String, ByVal value As Long)
        If IsProcessOpen("iw4mp") Then
            string1 = readdll("cshell.dll")
            string2 = "&H" & Hex(string1 + address)
            NOP(string2, value)


        End If
        Return Nothing
    End Function

#End Region
    End Module
Anyway, when i put this in VB i get no errors, then i use the Memoryh4x method to change the Addresses, but when i do this it is not working, also the addresses works so there is no problem with that, i think there is something wrong with the module, i dont know what and i also cant find anything wrong, could some of you look over this module and change what need 2 get changed and make that what u changed red please, so i can learn from this. I dont want to be a Copy/Paster with no learning skills