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;
}
Example #2
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();
}