/// <summary> /// Gets a bounding volume transformed by a FTransform object. /// </summary> /// <param name="m">The FTransform object.</param> /// <returns>The transformed volume.</returns> public FBoxSphereBounds TransformBy(FTransform m) { FMatrix mat = m.ToMatrixWithScale(); FBoxSphereBounds result = TransformBy(mat); return(result); }
/// <summary> /// Gets a bounding volume transformed by a FTransform object. /// </summary> /// <param name="m">The transformation object.</param> /// <returns>The transformed box.</returns> /// <see cref="TransformProjectBy"/> public FBox TransformBy(FTransform m) { return(TransformBy(m.ToMatrixWithScale())); }
private void SDXThread(object sender) { while (true) { Thread.Sleep(15); Console.Clear(); device.BeginDraw(); device.Clear(null); if (AMK.Hile == true) { int EntityCount = AMK.Mem.Read <int>(AMK.ULevel + 0xA8); Console.WriteLine($"EntityCount:{EntityCount}"); if (EntityCount < 1 || EntityCount > 10000) { continue; } SharpDX.Vector3 LocalPlayerPosition = AMK.Mem.Read <SharpDX.Vector3>(AMK.LocalPlayer + Offsets.LLocation); //if (LocalPlayerPosition == null) continue; IntPtr aactorPtr = AMK.Mem.Read <IntPtr>(AMK.ULevel + Offsets.ActorPtr); for (int i = 0; i < EntityCount; i++) { IntPtr curActor = AMK.Mem.Read <IntPtr>(aactorPtr + (i * IntPtr.Size)); //if (curActor == null) continue; int PlayerID = AMK.Mem.Read <int>(curActor + Offsets.ActorID); if (!AMK.tGnames.ContainsKey(PlayerID)) { continue; } if (AMK.tGnames[PlayerID] != "" && !ArabaTH) { continue; } float hp = AMK.Mem.Read <float>(curActor + Offsets.ActorHP); if (AMK.tGnames[PlayerID] == "" && hp < 1 && AMK.Mem.Read <float>(curActor + Offsets.GroggyH) < 1) { continue; } IntPtr rootCmpPtr = AMK.Mem.Read <IntPtr>(curActor + Offsets.RootComponent); SharpDX.Vector3 actorLocation = AMK.Mem.Read <SharpDX.Vector3>(rootCmpPtr + Offsets.ActorLoc); var lDeltaInMeters = (LocalPlayerPosition - actorLocation).Length() / 100; if (lDeltaInMeters > 800 || lDeltaInMeters < 3) { continue; } AMK.CameraManager = (AMK.Mem.Read <IntPtr>(AMK.LocalPlayerControl + Offsets.CameraManager)); Matriks.WorldToScreen2(actorLocation, AMK.CameraManager, out SharpDX.Vector2 GelBakem); if (AMK.tGnames[PlayerID] == "" && lDeltaInMeters < 100 && AMK.Bone == true) { IntPtr mesh = AMK.Mem.Read <IntPtr>(curActor + 0x400); IntPtr bonearray = AMK.Mem.Read <IntPtr>(mesh + 0x790); FTransform ComponentToWorld = AMK.Mem.Read <FTransform>(mesh + 0x190); foreach (Bone[] part in skeleton) { SharpDX.Vector2 previousBone = new SharpDX.Vector2(); foreach (Bone b in part) { FTransform bone = AMK.Mem.Read <FTransform>(bonearray + ((int)b * 0x30)); Matrix Matrix = bone.ToMatrixWithScale() * ComponentToWorld.ToMatrixWithScale(); SharpDX.Vector3 currentBone = new SharpDX.Vector3(Matrix.M41, Matrix.M42, Matrix.M43); Matriks.WorldToScreen2(currentBone, AMK.CameraManager, out SharpDX.Vector2 cr); if (previousBone.X == 0) { previousBone = cr; continue; } else { //if (b == Bone.forehead) Ekranabas(cr, "O", System.Drawing.Color.Red, font); device.DrawLine(previousBone, cr, (new SolidColorBrush(device, RawColorFromColor(System.Drawing.Color.DarkRed)))); previousBone = cr; } } } } if (AMK.tGnames[PlayerID] == "" && hp < 1) { Ekranabas(GelBakem, $"[{lDeltaInMeters.ToString("N2")}]", System.Drawing.Color.Purple, fontSmall); } else if (lDeltaInMeters > 150) { Ekranabas(GelBakem, $"{AMK.tGnames[PlayerID]}[{lDeltaInMeters.ToString("N2")}]", System.Drawing.Color.Green, fontSmall); } else { Ekranabas(GelBakem, $"{AMK.tGnames[PlayerID]}[{lDeltaInMeters.ToString("N2")}]", System.Drawing.Color.Red, font); } } } device.TryEndDraw(out long w, out w); } }