ExclamationOutdated[MWR] MWR FoV & FPS Changer Updated

Posts 1–15 of 38 · Page 1 of 3
[MWR] MWR FoV & FPS Changer Updated
Ay guys I didn't like having 90 fps so I made this, its pretty sketchy but it works so ye. No idea if it will be detected so use at your own risk.

This works on SP and MP.

To set it up place Config.txt in your MWR steam folder. Config line 1 is FoV, line 2 is FoVScale, line 3 is your gun position. Change these values to whatever suits you.

Make sure you have the 64bit version VC++ Redistributible: https://www.microsoft.com/en-gb/down....aspx?id=48145ⓘ

To use just inject it into MWR SP or MP, I suggest doing it during the main menu. Once it is injected it will automatically change the stuff for you. Use hotkeys to change your maxFPS:
v key = 125 fps
b key = 250 fps
n key = 333 fps



 
Sketchy AF Source

Code:
// MWR FPS Changer.cpp : Defines the exported functions for the DLL application.
//

#include "stdafx.h"
#include <stdio.h>
#include <string>
#include <iostream>
#include <fstream>

typedef int(__cdecl Cbuf_AddText_T)(int localClientNum, const char *Command); //Send command to console
Cbuf_AddText_T Cbuf_AddText_MP = (Cbuf_AddText_T)0x00000001404033B0;
Cbuf_AddText_T Cbuf_AddText_SP = (Cbuf_AddText_T)0x0000000140342EB0;

unsigned long long com_maxFps = 0, cg_fov = 0, cg_fovScale = 0, cg_gun_x = 0; //Vars to hold dvar addresses
int fpsVal = 125;
float fovVal = 65, fovScaleVal = 1, gun_xVal = 0;

DWORD WINAPI Main(LPVOID threadArgs)
{
 std::string input;
 std::ifstream infile;
 infile.open("Config.txt");
 for (int i = 0; i < 3; i++)
 {
  std::getline(infile, input);
  if (i == 0) fovVal = std::stof(input);
  if (i == 1) fovScaleVal = std::stof(input);
  if (i == 2) gun_xVal = std::stof(input);
 }
 infile.close();

 if (GetModuleHandleA("h1_mp64_ship.exe") != NULL)
 {
  unsigned long long currentMPBase = 0x000000014D064D00;

  do
  {
   Sleep(1000);
   currentMPBase = 0x000000014D064D00;
   for (int i = 0; i < *(int*)0x000000014D064CF4; i++)
   {
    currentMPBase += 0x60;
    if (*(int*)currentMPBase == 0xF264C46C) com_maxFps = currentMPBase;
    if (*(int*)currentMPBase == 0x8572B2C7) cg_fov = currentMPBase;
    if (*(int*)currentMPBase == 0x79A1090F) cg_fovScale = currentMPBase;
    if (*(int*)currentMPBase == 0x07AC182B) cg_gun_x = currentMPBase;
   }
  } while (com_maxFps == 0 || cg_fov == 0 || cg_fovScale == 0 || cg_gun_x == 0);

  while (true)
  {
   *(int*)(com_maxFps + 0x50) = 0x0;
   *(int*)(cg_fov + 0x50) = 0x0;
   *(int*)(cg_fovScale + 0x50) = 0x0;
   *(int*)(cg_gun_x + 0x50) = 0x0;

   *(int*)(com_maxFps + 0x10) = fpsVal;
   *(float*)(cg_fov + 0x10) = fovVal;
   *(float*)(cg_fovScale + 0x10) = fovScaleVal;
   *(float*)(cg_gun_x + 0x10) = gun_xVal;

   Sleep(1000);
  }
 }

 else if (GetModuleHandleA("h1_sp64_ship.exe") != NULL)
 {
  unsigned long long currentSPBase = 0x000000014C217D20;

  do
  {
   Sleep(1000);
   currentSPBase = 0x000000014C217D20;
   for (int i = 0; i < *(int*)0x000000014C217D10; i++)
   {
    currentSPBase += 0x60;
    if (*(int*)currentSPBase == 0xF264C46C) com_maxFps = currentSPBase;
    if (*(int*)currentSPBase == 0x8572B2C7) cg_fov = currentSPBase;
    if (*(int*)currentSPBase == 0x79A1090F) cg_fovScale = currentSPBase;
    if (*(int*)currentSPBase == 0x07AC182B) cg_gun_x = currentSPBase;
   }
  } while (com_maxFps == 0 || cg_fov == 0 || cg_fovScale == 0 || cg_gun_x == 0);

  while (true)
  {
   *(int*)(com_maxFps + 0x50) = 0x0;
   *(int*)(cg_fov + 0x50) = 0x0;
   *(int*)(cg_fovScale + 0x50) = 0x0;
   *(int*)(cg_gun_x + 0x50) = 0x0;

   *(int*)(com_maxFps + 0x10) = fpsVal;
   *(float*)(cg_fov + 0x10) = fovVal;
   *(float*)(cg_fovScale + 0x10) = fovScaleVal;
   *(float*)(cg_gun_x + 0x10) = gun_xVal;

   Sleep(1000);
  }
 }
 return 0;
}

DWORD WINAPI Keys(LPVOID threadArgs)
{
 while (true)
 {
  if (GetAsyncKeyState(0x56)) fpsVal = 125; //V = 125
  if (GetAsyncKeyState(0x42)) fpsVal = 250; //B = 250
  if (GetAsyncKeyState(0x4E)) fpsVal = 333; //N = 333

  Sleep(20);
 }
 return 0;
}

BOOL APIENTRY DllMain(HANDLE hDllHandle, DWORD dwReason, LPVOID lpreserved)
{
 DWORD threadID;
 switch (dwReason)
 {
 case DLL_PROCESS_ATTACH:
  CreateThread(NULL, 0, Main, NULL, 0, &threadID);
  CreateThread(NULL, 0, Keys, NULL, 0, &threadID);
 case DLL_THREAD_ATTACH:
 case DLL_THREAD_DETACH:
 case DLL_PROCESS_DETACH:
  break;
 }
 return TRUE;
}


MWR FoV + FPS Changer_mpgh.net.rar14 KB · 989 downloads Clean
Can't access the attachment from my end
Quote Originally Posted by shankt View Post
Can't access the attachment from my end
Because it is pending approval. Please wait while staff approves the file before you can use it.
Cheers for quick update
//Approved
i'll definitely use it for singleplayer fov change
What injector would you recommend?
Quote Originally Posted by LZRR View Post
What injector would you recommend?
Read ops post
Yippy it works! You should add this to the Original Post:
I use ExtremeInjector http://www.mpgh.net/forum/showthread.php?t=1086405 with default options except for Erase PE and Hide Module are turned on. If it still won't inject tell me and I'll make an executeable version.
Also what are the actual default ingame FOV, FoVScale and Gun Position for the game. Just trying to use the FPS Unlocker and nothing else (the game has an inbuilt FOV but I prefer to have it on default)
Quote Originally Posted by Wicked123 View Post
Yippy it works! You should add this to the Original Post:


Also what are the actual default ingame FOV, FoVScale and Gun Position for the game. Just trying to use the FPS Unlocker and nothing else (the game has an inbuilt FOV but I prefer to have it on default)
Sweet thanks, it depends where you have th FOV bar in game? if its all the way to the left then its 65, all the way to the right its 80.
You will also need to set the 2nd line to a value of "1"
Any idea if anticheat is disabled right now and this is *LIKELY* safe to use? I know there is always risk, im not an idiot. But do we know of any bans yet?
Quote Originally Posted by emdoug View Post
Any idea if anticheat is disabled right now and this is *LIKELY* safe to use? I know there is always risk, im not an idiot. But do we know of any bans yet?
VAC Isn't Enabled in the game.
Doesn't mean they wont enable it in the future.
this wont work in fullscreen for me for some reason and can only get 120fps with both cards running in crossfire.

its ok got it sorted now
Posts 1–15 of 38 · Page 1 of 3
This thread is closed for replies.

Similar Threads

Tags for this Thread

Need help?