Такой темы еще не было, поэтому пишу полное руководство с подробным описанием.

Мне проще писать на С++, для делфей придется переделывать.
и так, начнем.
создайте таймер, поставьте время обновления около 100мс и в процедуре срабатывания таймера напишите такой код, ниже идет объяснение кода.
Код:

  HWND wnd = FindWindow("D3D Window",NULL);
  if (wnd)
    {
    DWORD ProcessId;
    GetWindowThreadProcessId(wnd,&ProcessId);
    HANDLE hdl = OpenProcess(PROCESS_ALL_ACCESS,0,ProcessId);
      if (hdl)
      {
      DWORD a=0x00000000;
      DWORD b;
      ReadProcessMemory(hdl,(LPVOID)a,&b,4,0);
      b=b+000;
      WriteProcessMemory(hdl, (LPVOID)b, (LPVOID)&Speed, 4, 0);
      CloseHandle(hdl);
      }
    }

HWND wnd = FindWindow("D3D Window",NULL);
В этой строке мы ищем окно, я ищу не по заголовку, а по типу окна, это удобней, если у вас загружено несколько клиентов игры, но если хотите искать по заголовку, то нужно будет написать HWND wnd = FindWindow(NULL,"RF Online");

if (wnd)
Ну тут думаю все понятно, идет проверка на результат, если окно найдено, то выполняем следующий текст, если не найдено, то ничего не выполняем

{
DWORD ProcessId;
GetWindowThreadProcessId(wnd,&ProcessId);
ищем процесс найденного окна

HANDLE hdl = OpenProcess(PROCESS_ALL_ACCESS,0,ProcessId);
открываем процесс со всеми правами (так нехорошо конечно, но так проще)

if (hdl)
и как обычно, проверка, смогли ли мы открыть процесс со всеми правами, если смогли, выполняем код, если нет, то ничего не выполняем.

{
DWORD a=0x00000000; //этой переменной присваеваем адрес указателя,

DWORD b;
ReadProcessMemory(hdl,(LPVOID)a,&b,4,0);
Читаем значение, которое хранится в адсесе "а" в переменную "b"

b=b+000;
прибавляем к прочитанному значению смещение.

WriteProcessMemory(hdl, (LPVOID)b, (LPVOID)&Speed, 4, 0);
записываем в получившийся адрес "b" значение скорости, хранящееся в переменной Speed, не забываем, что переменная Speed вещественное число.

CloseHandle(hdl);
и не забываем закрыть открытый нами процесс.