Code:
using Magic;
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
namespace MrHackIt.Jumping
{
class Jumping
{
[DllImport("kernel32.dll")]
static extern bool VirtualProtectEx(IntPtr hProcess, IntPtr lpAddress,
UIntPtr dwSize, uint flNewProtect, out uint lpflOldProtect);
private BlackMagic wow { get; set; }
public uint landjmp_patch { get; set; }
public uint waterjmp_patch {get; set;}
public Jumping(BlackMagic _BlackMagic)
{
this.wow = _BlackMagic;
this.landjmp_patch = 0x9A9A7C;
this.waterjmp_patch = 0x9A9A80;
}
public float jmpheight_land
{
get
{
uint old;
VirtualProtectEx(wow.ProcessHandle, (IntPtr)this.landjmp_patch, (UIntPtr)0x4, 0x02, out old);
return wow.ReadFloat(landjmp_patch);
}
set
{
uint old;
VirtualProtectEx(wow.ProcessHandle, (IntPtr)this.landjmp_patch, (UIntPtr)0x4, 0x40, out old);
wow.WriteFloat(landjmp_patch, value);
VirtualProtectEx(wow.ProcessHandle, (IntPtr)this.landjmp_patch, (UIntPtr)0x4, old, out old);
}
}
public float jmpheight_water
{
get
{
uint old;
VirtualProtectEx(wow.ProcessHandle, (IntPtr)this.waterjmp_patch, (UIntPtr)0x4, 0x02, out old);
return wow.ReadFloat(waterjmp_patch);
}
set
{
uint old;
VirtualProtectEx(wow.ProcessHandle, (IntPtr)this.waterjmp_patch, (UIntPtr)0x4, 0x40, out old);
wow.WriteFloat(waterjmp_patch, value);
VirtualProtectEx(wow.ProcessHandle, (IntPtr)this.waterjmp_patch, (UIntPtr)0x4, old, out old);
}
}
}
}