Exemple #1
0
        private bool fStart()
        {
            bool bStarted = false;

            if ((_hWnd = WAPI.FindWindowByCaption(_hWnd, gameTitle)) == -1)
            {
                bStarted = false;
            }
            //  HandleRef hWnd = FindWindow("AssaultCube", null);

            AddToLog("Looking for AC process.");
            Process[] process = Process.GetProcessesByName(processName);
            AddToLog("FOUND AC process.");
            AddToLog("Attaching to AC process.");
            if (process.Length > 0)
            {
                pmcrw.ReadProcess = process[0];
                pmcrw.OpenProcess();
                AddToLog("Succesfully attached AC process.");

                for (int i = 0; i < process[0].Modules.Count; i++)
                {
                    if (process[0].Modules[i].ModuleName == moduleName)
                    {
                        moduleBaseAddress = (int)process[0].Modules[i].BaseAddress;
                        hwnd = process[0].MainWindowHandle;
                    }
                }
                GetWindowRect(hwnd, out rect);
                iAmountOfPlayers       = pmcrw.ReadInt(0x50F500);
                iWidthOfGameWindow     = rect.Right - rect.Left;
                iHeightOfGameWindow    = rect.Bottom - rect.Top;
                localPlayerBaseAddress = pmcrw.ReadInt(moduleBaseAddress + OS.m_os_LocalPlayer);
                fUpdateEntityList();
                bStarted = true;
            }
            else
            {
                AddToLog("Couldn't connect to AC process! Is it running?");
                bStarted = false;
            }
            return(bStarted);
        }
Exemple #2
0
        private void fGameUpdateThread()
        {
            try
            {
                while (WAPI.GetAsyncKeyState(WAPI.VirtualKeyShort.END) == 0)
                {
                    while (bTrainerRunning)
                    {
                        iAmountOfPlayers = pmcrw.ReadInt(0x50F500);
                        fGetAndStoreViewMatrix();
                        fUpdateEntityList();

                        localPlayer.iLPHealth      = (int)pmcrw.ReadInt(localPlayerBaseAddress + OS.m_os_LocalPlayerHealth);
                        localPlayer.iLPCurrentAmmo = pmcrw.ReadInt(localPlayerBaseAddress + OS.m_os_LocalPlayerExtraAmmo);
                        localPlayer.iLPCurrentTeam = pmcrw.ReadInt(localPlayerBaseAddress + OS.m_os_LocalPlayerTeam_ID);
                        int iCurrentWeaponIDAddress = pmcrw.ReadMultiLevelPointer(localPlayerBaseAddress + OS.m_os_LocalPlayerCurrentWeapon, 4, OS.m_os_LocalPlayerCurrentWeaponID);
                        localPlayer.iLPCurrentWeaponID = pmcrw.ReadInt(iCurrentWeaponIDAddress);
                        int iCurrentWeaponTypeAddress = pmcrw.ReadMultiLevelPointer(localPlayerBaseAddress + OS.m_os_LocalPlayerCurrentWeapon, 8, OS.m_os_LocalPlayerCurrentWeaponType);
                        localPlayer.iLPCurrentWeaponType = pmcrw.readString(iCurrentWeaponTypeAddress, 8);

                        // This function is to get the 2d Coords for world to screen for the ESP
                        fGet2dCoords();

                        // The function above populates the arrays. So we can call the function here to get the closest enemy.
                        localPlayer.iAddressOfClosestEnemy = fGetClosestEnemy(enemyDistances, iEntityList);
                        localPlayer.iClosestEnemyName      = pmcrw.readString(localPlayer.iAddressOfCrosshairTarget + OS.m_os_LocalPlayerName, 16);
                        localPlayer.iClosestEnemyHealth    = pmcrw.ReadInt(localPlayer.iAddressOfCrosshairTarget + OS.m_os_EnemyPlayerHealth);
                        localPlayer.iClosestEnemyTeam      = pmcrw.ReadInt(localPlayer.iAddressOfClosestEnemy + OS.m_os_LocalPlayerTeam_ID);


                        localPlayer.iCrosshairTargetName = pmcrw.readString(moduleBaseAddress + OS.m_os_CrosshairTargetName, 16);

                        localPlayer.iAddressOfCrosshairTarget = fGetCrosshairTargetAddress(localPlayer.iCrosshairTargetName);
                        localPlayer.iCrosshairTargetHealth    = pmcrw.ReadInt(localPlayer.iAddressOfCrosshairTarget + OS.m_os_EnemyPlayerHealth);
                        localPlayer.iCrosshairTargetTeam      = pmcrw.ReadInt(localPlayer.iAddressOfCrosshairTarget + OS.m_os_LocalPlayerTeam_ID);

/*
 *                      if (bEnableTriggerBot)
 *                      {
 *
 *                          if (localPlayer.iCrosshairTargetTeam != localPlayer.iLPCurrentTeam) {
 *                          // We will do a compare here to compare crosshairs then fire the guy while matching crosshairs coords;
 *                              fEnableFireGun();
 *                              bEnableTriggerBot = false;
 *                          } else
 *                          {
 *                              fDisableFireGun();
 *                          }
 *                      }
 *                      else
 *                      {
 *                          fDisableFireGun();
 *                      }
 */

                        //
                        //Thread.Sleep(100);
                    }
                }
            }
            catch (Exception ex)
            {
                //AddToLog("Error inside thread: " + ex.ToString());
            }
        }