Beispiel #1
0
        public override void OnUpdate()
        {
            if (Settings.Aimbot_Melee_Silent && BasePlayer.IsHaveLocalPlayer && BasePlayer.LocalPlayer.CanInteract())
            {
                if (!BasePlayer.LocalPlayer.HasActiveItem || !BasePlayer.LocalPlayer.ActiveItem.IsMelee())
                {
                    // При отсутсвии в руках оружия ближнего боя, ставим кд 1, чтобы при смене оружия не было CooldownHack
                    SetCooldown(1f);
                    return;
                }
                m_Interval += DeltaTime;
                m_Cooldown -= DeltaTime;
                var prefabId = (EPrefabUID)BasePlayer.LocalPlayer.ActiveItem.PrefabID;
                var speed    = GetMeleeSpeed(prefabId);

                // Если меняем оружие ближнего боя, то ставим кд 1, чтобы при смене оружие не было CooldownHack
                if (LastMeleePrefabUID != BasePlayer.LocalPlayer.ActiveItem.PrefabID)
                {
                    LastMeleePrefabUID = BasePlayer.LocalPlayer.ActiveItem.PrefabID;
                    SetCooldown(1f);
                    return;
                }
                if (m_Interval > speed && m_Cooldown < 0)
                {
                    m_Interval = 0;
                    var        maxDistance = OpCodes.GetMeleeMaxDistance(prefabId);
                    BasePlayer target      = BasePlayer.FindEnemy(maxDistance);
                    if (target != null)
                    {
                        // При успешной атаке, ставим кд равное максимальной скорости атаки данного оружия
                        SetCooldown(speed);

                        var bone       = OpCodes.GetTargetHit(0, Settings.Aimbot_Melee_Silent_AutoHeadshot);
                        var attackInfo = OpCodes.GetTargetHitInfo(bone);

                        var closestPoint = target.ClosestPoint(BasePlayer.LocalPlayer.EyePos);
                        var offset       = BasePlayer.LocalPlayer.GetForward(closestPoint) * 1.4f;
                        DDraw.DrawBox(target.WorldSpaceBounds().position, target.WorldSpaceBounds().extents * 2, Color.magenta, 1f);
                        DDraw.Arrow(closestPoint, closestPoint - offset, 0.1f, Color.blue, 1f);
                        var position = closestPoint - offset;
                        BasePlayer.LocalPlayer.ActiveItem.SendMeleeAttack(target, bone, position);
                    }
                }
            }
        }
Beispiel #2
0
        public override void OnUpdate()
        {
            if (Settings.AutoGather && BasePlayer.IsHaveLocalPlayer && BasePlayer.LocalPlayer.CanInteract())
            {
                if (!BasePlayer.LocalPlayer.HasActiveItem || !BasePlayer.LocalPlayer.ActiveItem.IsMelee())
                {
                    // При отсутсвии в руках оружия ближнего боя, ставим кд 1, чтобы при смене оружия не было CooldownHack
                    SetCooldown(1f);
                    return;
                }
                m_Interval += DeltaTime;
                m_Cooldown -= DeltaTime;
                var prefabId = (EPrefabUID)BasePlayer.LocalPlayer.ActiveItem.PrefabID;
                var speed    = GetMeleeSpeed(prefabId);

                // Если меняем инструмент, то ставим кд 1, чтобы при смене оружие не было CooldownHack
                if (LastMeleePrefabUID != BasePlayer.LocalPlayer.ActiveItem.PrefabID)
                {
                    LastMeleePrefabUID = BasePlayer.LocalPlayer.ActiveItem.PrefabID;
                    SetCooldown(1f);
                    return;
                }
                if (m_Interval > speed && m_Cooldown < 0)
                {
                    m_Interval = 0;
                    var          maxDistance = OpCodes.GetMeleeMaxDistance(prefabId);
                    BaseResource target      = BaseEntity.FindNearEntity <BaseResource>(BaseResource.ListResources, 3);
                    if (target != null)
                    {
                        // При успешном ударе, ставим кд равное максимальной скорости атаки данного инструмента
                        SetCooldown(speed);
                        BasePlayer.LocalPlayer.ActiveItem.SendMeleeResourceAttack(target, Settings.AutoGather_Bonus);
                    }
                }
            }
        }