int main() { std::cout << "Radar and Trigger\n\n"; Engine()->start(); std::thread engineThread(&CEngine::update, Engine()); std::cout << "Found\n\n"; std::cout << "Offsets\n"; std::cout << "Local player: 0x" << Engine()->Offsets()->toHex(Engine()->Offsets()->dwLocalPlayer) << "\n"; std::cout << "Entity list: 0x" << Engine()->Offsets()->toHex(Engine()->Offsets()->dwEntityList) << "\n"; std::cout << "Attack: 0x" << Engine()->Offsets()->toHex(Engine()->Offsets()->dwAttack) << "\n\n"; std::cout << "Hotkeys:\n"; std::cout << "Triggerkey: "; Settings()->trigger_key = whichKeyIsPressed(); std::cout << Settings()->trigger_key << "\n"; std::cout << "Trigger hold key (press ENTER for no hold key): "; Settings()->trigger_holdkey = whichKeyIsPressed(); if (Settings()->trigger_holdkey == VK_RETURN) { Settings()->trigger_holdkey = 0; } std::cout << Settings()->trigger_holdkey << "\n"; std::cout << "Radar key: "; Settings()->radar_key = whichKeyIsPressed(); std::cout << Settings()->radar_key << "\n\n"; std::cout << "The hack is now active!\n\n"; std::thread settingsThread(&CSettings::run, Settings()); std::thread radarThread(&Radar::run, Radar()); std::thread triggerThread(&Triggerbot::run, Triggerbot()); while (!GetAsyncKeyState(VK_END)) { Sleep(100); } exit(0); return 0; }
void GameWidget::update() { //TODO: rewrite this function to fully support all play modes, game states, etc if ( ! this->_game->finished() && ! this->paused()) { // TODO: quit extra thread when window closes if (this->_scene->movingDie() == KBX::NONE) { if (this->_engineMoves() && !this->_game->evaluating()) { if ( this->_evaluationFinished ){ this->performEvaluatedMove(); this->setEngineFinished(); } else { // encapsulate move evaluation by engine // in separate thread to keep UI reactive this->setEngineRunning(); std::thread engineThread(&GameWidget::_startEvaluationThread, this); engineThread.detach(); } } } else if ( !this->_scene->getDie(this->_scene->movingDie())->isMoving()) { // release lock after die has finished moving this->_scene->setMovingDie(KBX::NONE); } } QGLWidget::update(); }