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


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

public class LaserEyes : Script
{
    private bool _isActive = false;

    public LaserEyes()
    {
        KeyDown += OnKeyDown;
        Tick += OnTick;
    }

    private void OnKeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.K)
        {
            _isActive = !_isActive;
            
            // Стандартное уведомление, работающее на старых версиях SHVDN
            UI.Notify("Laser Eyes: " + (_isActive ? "~g~ON" : "~r~OFF"));
        }
    }

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

        Ped player = Game.Player.Character;
        
        Vector3 camPos = GameplayCamera.Position;
        Vector3 camRot = GameplayCamera.Direction;
        Vector3 targetPos = camPos + camRot * 200.0f;

        // Исправлено для старой версии Raycast
        RaycastResult ray = World.Raycast(camPos, targetPos, IntersectOptions.Everything, player);

        // В старых версиях используется DitHitAnything вместо DidHit
        if (ray.DitHitAnything)
        {
            // В старых версиях используется HitPosition вместо HitPosition
            Vector3 hitPoint = ray.HitPosition;

            // Исправлено получение кости головы через встроенный метод пешехода
            Vector3 headPos = player.Bones[Bone.IK_Head].Position;
            
            // Стандартное рисование линии через встроенную функцию SHVDN
            World.DrawLine(headPos, hitPoint, Color.Red);

            // Безопасный вызов взрыва через встроенный метод World
            World.AddExplosion(hitPoint, ExplosionType.Flame, 2.0f, 0.0f, false, true);

            // Проверка и поджог сущностей
            if (ray.HitEntity != null && ray.HitEntity != player)
            {
                Function.Call(Hash.START_ENTITY_FIRE, ray.HitEntity);
            }
        }
    }
}