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


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("~r~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.Position + new Vector3(0, 0, 0.65f);

        Vector3 leftEye = head + player.RightVector * -0.04f;
        Vector3 rightEye = head + player.RightVector * 0.04f;

        Vector3 direction = GameplayCamera.Direction;

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


    private void FireLaser(Vector3 start, Vector3 direction)
    {
        Vector3 end = start + direction * 150f;

        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.Vehicles
        );


        if (hit.DidHit && hit.HitEntity != null)
        {
            Vehicle car = hit.HitEntity as Vehicle;

            if (car != null)
            {
                Function.Call(
                    Hash.START_ENTITY_FIRE,
                    car.Handle
                );
            }
        }
    }
}