Загрузка данных


using GTA;
using GTA.Math;
using GTA.Native;
using System;
using System.Windows.Forms;

public class HomelanderLaser : Script
{
    private bool enabled = false;

    public HomelanderLaser()
    {
        Tick += OnTick;
        KeyDown += OnKeyDown;

        GTA.UI.Notification.Show("Homelander Laser загружен");
    }

    private void OnKeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.F4)
        {
            enabled = !enabled;

            GTA.UI.Notification.Show(
                "Лазеры: " + (enabled ? "~g~ВКЛ" : "~r~ВЫКЛ")
            );
        }
    }

    private void OnTick(object sender, EventArgs e)
    {
        if (!enabled)
            return;

        if (!Game.IsKeyPressed(Keys.RButton))
            return;

        Ped player = Game.Player.Character;

        Vector3 head = player.GetBoneCoord(Bone.SKEL_Head);

        Vector3 side = player.RightVector * 0.04f;
        Vector3 up = player.UpVector * 0.03f;

        Vector3 leftEye = head - side + up;
        Vector3 rightEye = head + side + up;

        Vector3 direction = GameplayCamera.Direction;

        ShootLaser(leftEye, direction);
        ShootLaser(rightEye, direction);
    }


    private void ShootLaser(Vector3 start, Vector3 direction)
    {
        Vector3 end = start + direction * 200f;

        // Красный луч
        Function.Call(Hash.DRAW_LINE,
            start.X, start.Y, start.Z,
            end.X, end.Y, end.Z,
            255, 0, 0, 255);


        RaycastResult hit = World.Raycast(
            start,
            end,
            IntersectOptions.Everything
        );


        if (hit.DitHitEntity && hit.HitEntity is Vehicle car)
        {
            // Поджог машины
            Function.Call(
                Hash.START_ENTITY_FIRE,
                car.Handle
            );

            // Повреждение двигателя
            car.EngineHealth -= 5f;
        }
    }
}