Example #1
0
        public static void MainThread()
        {
            while (!Program.IsClosing)
            {
                if (!Enabled || !InGame)
                {
                    Thread.Sleep(500);
                    continue;
                }

                if (IsActivated()) //Можно триггерится?
                {
                    //Метод без задержки или с простой задержкой
                    if (DelayType == TriggerDelayType.NO_DELAY || DelayType == TriggerDelayType.DELAY)
                    {
                        uint localPlayerPtr = LocalPlayerPtr;
                        if (localPlayerPtr != 0)
                        {
                            int CrossHairID = (KernelBlackMagic.Read <int>(localPlayerPtr + offsets["m_iCrosshairId"]) - 1);
                            if (CrossHairID >= 0 && CrossHairID <= 63)
                            {
                                PlayerEntity player;
                                if (PlayersList.TryGetValue((uint)CrossHairID, out player))
                                {
                                    //Проверяем валидность тимы
                                    if (TeamActivate == TriggerTeamType.ENEMY && !player.IsEnemy)
                                    {
                                        goto Exit;
                                    }
                                    else if (TeamActivate == TriggerTeamType.TEAMMATES && player.IsEnemy)
                                    {
                                        goto Exit;
                                    }

                                    //Игрок не в неуязвимости
                                    if (!player.IsUmmunity)
                                    {
                                        //Если метод простой задержки перед выстрелом, то ждем необходимую задержку!
                                        if (DelayType == TriggerDelayType.DELAY)
                                        {
                                            Thread.Sleep(Delay + ((Delay * _Random.Next(-DelaySpreadProcents, DelaySpreadProcents)) / 100));
                                        }

                                        //Атакуем!
                                        LocalPlayer.Attack((byte)_Random.Next(8, 16));

                                        //После клика немного поспим
                                        Thread.Sleep(_Random.Next(22, 48));
                                    }
                                }
                            }
                        }
                    }

                    //МЕТОД УДЕРЖАНИЯ
                    else if (DelayType == TriggerDelayType.HOLDING)
                    {
                        MessageBox.Show("Сука, кулхацкер взломал)0");
                        Thread.Sleep(5000);
                    }
                }
Exit:
                Thread.Sleep(2); //2мс период
            }
        }