Exemplo n.º 1
0
        // Token: 0x0600012B RID: 299 RVA: 0x0000A294 File Offset: 0x00008494
        public static bool SendRangeAttack(BasePlayer target, EHumanBone typeHit, PlayerProjectileAttack parentAttack, Vector3 pos)
        {
            bool isAlive = target.IsAlive;

            if (isAlive)
            {
                parentAttack.hitDistance = Vector3.Distance(target.Position, BasePlayer.LocalPlayer.Position);
                HitInfo hitInfo = OpCodes.GetTargetHitInfo(typeHit);
                parentAttack.playerAttack.attack.hitBone          = hitInfo.HitBone;
                parentAttack.playerAttack.attack.hitPartID        = hitInfo.HitPartID;
                parentAttack.playerAttack.attack.hitNormalLocal   = hitInfo.HitNormalPos;
                parentAttack.playerAttack.attack.hitPositionLocal = hitInfo.HitLocalPos;
                parentAttack.playerAttack.attack.hitID            = target.UID;
                float height = target.GetHeight();
                parentAttack.playerAttack.attack.hitPositionWorld = pos;
                parentAttack.playerAttack.attack.hitNormalWorld   = pos;
                parentAttack.playerAttack.attack.pointEnd         = pos;
                VirtualServer.BaseClient.write.Start();
                VirtualServer.BaseClient.write.PacketID(Message.Type.RPCMessage);
                VirtualServer.BaseClient.write.UInt32(RangeAim.LocalPlayer.UID);
                VirtualServer.BaseClient.write.UInt32(3322107216u);
                PlayerProjectileAttack.Serialize(VirtualServer.BaseClient.write, parentAttack);
                VirtualServer.BaseClient.write.Send(new SendInfo(VirtualServer.BaseClient.Connection));
            }
            return(true);
        }
Exemplo n.º 2
0
        public static bool Silent(PlayerProjectileAttack attack)
        {
            if (Instance.TargetPlayer != null)
            {
                EHumanBone typeHit = OpCodes.GetTargetHit(0, Settings.Aimbot_Range_Manual_AutoHeadshot);

                var hitPosition = Instance.TargetPlayer.Position + new Vector3(0, 50, 0);
                var distance    = Vector3.Distance(LocalPlayer.EyePos, hitPosition);
                var distance2   = Vector3.Distance(LocalPlayer.Position, attack.playerAttack.attack.hitPositionWorld);
//                ConsoleSystem.Log("Distance2 => " +distance2);
//                ConsoleSystem.Log("Distance => " +GetTimeout(FiredProjectiles[attack.playerAttack.projectileID], distance2));
                float timeout = 0;
                if (distance2 < distance)
                {
                    timeout = GetTimeout(FiredProjectiles[attack.playerAttack.projectileID], distance - distance2);
                }
                if (timeout <= 0)
                {
                    timeout = 0.001f;
                }
                ConsoleSystem.LogWarning("[Silent] Sleep => " + timeout);
                var player     = Instance.TargetPlayer;
                var attackCopy = attack.Copy();
                SapphireEngine.Functions.Timer.SetTimeout(() => SendRangeAttack(player, typeHit, attackCopy, hitPosition), timeout);
                return(true);
            }
            return(false);
        }
Exemplo n.º 3
0
        public bool SendMeleeAttack(BaseEntity target, EHumanBone bone, Vector3 position)
        {
            ConsoleSystem.Log(bone.ToString());
            var          attackInfo = OpCodes.GetTargetHitInfo(bone);
            PlayerAttack attack     = new PlayerAttack()
            {
                projectileID = 0,
                attack       = new Attack()
                {
                    hitID            = target.UID,
                    hitItem          = 0,
                    hitBone          = attackInfo.HitBone,
                    hitMaterialID    = 97517300,
                    hitPartID        = attackInfo.HitPartID,
                    pointEnd         = position,
                    pointStart       = position,
                    hitPositionLocal = attackInfo.HitLocalPos,
                    hitPositionWorld = position,
                    hitNormalLocal   = attackInfo.HitNormalPos,
                    hitNormalWorld   = position
                }
            };

            if (VirtualServer.BaseClient.write.Start())
            {
                VirtualServer.BaseClient.write.PacketID(Message.Type.RPCMessage);
                VirtualServer.BaseClient.write.EntityID(this.UID);
                VirtualServer.BaseClient.write.UInt32((UInt32)ERPCMethodUID.PlayerAttack);
                PlayerAttack.Serialize(VirtualServer.BaseClient.write, attack);
                VirtualServer.BaseClient.Send();
            }

            return(true);
        }
Exemplo n.º 4
0
 public static bool Manual(PlayerProjectileAttack attack)
 {
     if (Instance.TargetPlayer != null)
     {
         EHumanBone typeHit = OpCodes.GetTargetHit((EHumanBone)attack.playerAttack.attack.hitBone, Settings.Aimbot_Range_Manual_AutoHeadshot);
         SendRangeAttack(Instance.TargetPlayer, typeHit, attack, Instance.TargetPlayer.Position);
         return(true);
     }
     return(false);
 }
Exemplo n.º 5
0
        // Token: 0x0600012A RID: 298 RVA: 0x0000A22C File Offset: 0x0000842C
        public static bool Manual(PlayerProjectileAttack attack)
        {
            bool flag = RangeAim.Instance.TargetPlayer != null;
            bool result;

            if (flag)
            {
                EHumanBone typeHit = OpCodes.GetTargetHit((EHumanBone)attack.playerAttack.attack.hitBone, Settings.Aimbot_Range_Manual_AutoHeadshot);
                RangeAim.SendRangeAttack(RangeAim.Instance.TargetPlayer, typeHit, attack, RangeAim.Instance.TargetPlayer.Position);
                result = true;
            }
            else
            {
                result = false;
            }
            return(result);
        }
Exemplo n.º 6
0
 public static EHumanBone GetTargetHit(EHumanBone currentBone, bool autoHeadshot)
 {
     if (autoHeadshot)
     {
         return(EHumanBone.Head);
     }
     if (currentBone == EHumanBone.Head)
     {
         return(EHumanBone.Head);
     }
     // Head or Body
     if (currentBone == EHumanBone.Body)
     {
         return(OpCodes.GetRandomHumanBone(1));
     }
     // Head or Body or Legs
     return(OpCodes.GetRandomHumanBone(2));
 }
Exemplo n.º 7
0
        // Token: 0x06000129 RID: 297 RVA: 0x0000A110 File Offset: 0x00008310
        public static bool Silent(PlayerProjectileAttack attack)
        {
            bool aimbot_Range_Manual_AutoHeadshot = Settings.Aimbot_Range_Manual_AutoHeadshot;

            if (aimbot_Range_Manual_AutoHeadshot)
            {
            }
            bool flag = RangeAim.Instance.TargetPlayer != null;
            bool result;

            if (flag)
            {
                EHumanBone typeHit     = OpCodes.GetTargetHit((EHumanBone)0u, Settings.Aimbot_Range_Manual_AutoHeadshot);
                Vector3    hitPosition = RangeAim.Instance.TargetPlayer.Position;
                float      distance    = Vector3.Distance(RangeAim.LocalPlayer.EyePos, hitPosition);
                float      distance2   = Vector3.Distance(RangeAim.LocalPlayer.Position, attack.playerAttack.attack.hitPositionWorld);
                float      timeout     = 0f;
                bool       flag2       = distance2 < distance;
                if (flag2)
                {
                    timeout = RangeAim.GetTimeout(RangeAim.FiredProjectiles[attack.playerAttack.projectileID], distance - distance2);
                }
                bool flag3 = timeout <= 0f;
                if (flag3)
                {
                    timeout = 0.001f;
                }
                BasePlayer             player     = RangeAim.Instance.TargetPlayer;
                PlayerProjectileAttack attackCopy = attack.Copy();
                Timer.SetTimeout(delegate
                {
                    RangeAim.SendRangeAttack(player, typeHit, attackCopy, hitPosition);
                }, timeout);
                result = true;
            }
            else
            {
                result = false;
            }
            return(result);
        }
Exemplo n.º 8
0
        public static bool SendRangeAttack(BasePlayer target, EHumanBone typeHit,
                                           PlayerProjectileAttack parentAttack, Vector3 pos)
        {
            if (target.IsAlive)
            {
                parentAttack.hitDistance = Vector3.Distance(target.Position, BasePlayer.LocalPlayer.Position);
                var hitInfo = OpCodes.GetTargetHitInfo(typeHit);
                parentAttack.playerAttack.attack.hitBone          = hitInfo.HitBone;
                parentAttack.playerAttack.attack.hitPartID        = hitInfo.HitPartID;
                parentAttack.playerAttack.attack.hitNormalLocal   = hitInfo.HitNormalPos;
                parentAttack.playerAttack.attack.hitPositionLocal = hitInfo.HitLocalPos;
                parentAttack.playerAttack.attack.hitID            = target.UID;

                float height = target.GetHeight();
                // TODO: Change this

                /*if (pos == Vector3.zero)
                 *  pos = target.Position + new Vector3(0, 50, 0);*/
                //DDraw.Arrow(target.Position + new Vector3(0, height, 0), pos, 0.1f, Color.blue, 15f);
                parentAttack.playerAttack.attack.hitPositionWorld = pos;
                parentAttack.playerAttack.attack.hitNormalWorld   = pos;
                parentAttack.playerAttack.attack.pointEnd         = pos;

//                var forward = GetForward();
//                parentAttack.playerAttack.attack.hitPositionWorld = EyePos + GetForward();
//                parentAttack.playerAttack.attack.hitNormalWorld = EyePos + GetForward();
//                parentAttack.playerAttack.attack.pointEnd = EyePos + GetForward();

                VirtualServer.BaseClient.write.Start();
                VirtualServer.BaseClient.write.PacketID(Message.Type.RPCMessage);
                VirtualServer.BaseClient.write.UInt32(LocalPlayer.UID);
                VirtualServer.BaseClient.write.UInt32((uint)ERPCMethodUID.OnProjectileAttack);
                PlayerProjectileAttack.Serialize(VirtualServer.BaseClient.write, parentAttack);
                VirtualServer.BaseClient.write.Send(new SendInfo(VirtualServer.BaseClient.Connection));
            }
            return(true);
        }
Exemplo n.º 9
0
 public static HitInfo GetTargetHitInfo(EHumanBone humanBone) => ListProjectileHumanHits.Get(humanBone);