// 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); }
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); }
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); }
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); }
// 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); }
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)); }
// 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); }
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); }
public static HitInfo GetTargetHitInfo(EHumanBone humanBone) => ListProjectileHumanHits.Get(humanBone);