const mem = require('memoryjs');
const EventEmitter = require('events');
const offsets = require('./offsets.json');
const keyboard = require('asynckeystate');
class HackClient extends EventEmitter {
constructor() {
super();
this.DwClientDllBaseAddress = null;
this.DwEngineDllBaseAddress = null;
}
hook() {
mem.openProcess('csgo.exe', (err, process) => {
if (err) throw Error(err);
mem.findModule('client.dll', process.th32ProcessID, (err, module) => {
this.DwClientDllBaseAddress = module.modBaseAddr;
this.DwEngineDllBaseAddress = mem.findModule('engine.dll', process.th32ProcessID);
this.emit('hooked', process);
});
});
setTimeout(() => {
setInterval(this.bunnyHop.bind(this), 5);
}, 1000);
}
bunnyHop() {
const DwLocalPlayer = mem.readMemory(this.DwClientDllBaseAddress + offsets.signatures.dwLocalPlayer, 'int');
const iFlags = mem.readMemory(DwLocalPlayer + offsets.netvars.m_fFlags, 'int');
console.log(iFlags);
if (keyboard.getAsyncKeyState(0x20)) {
mem.writeMemory(this.DwClientDllBaseAddress + offsets.signatures.dwForceJump, ((iFlags==257) || (iFlags==263)) ? 5 : 4, 'int')
}
}
}
module.exports = HackClient;

