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);
}
}
}
}