Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
 /// <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()));
 }
Beispiel #3
0
        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);
            }
        }