wm = require 'windows.message'
font_flag = require('moonloader').font_flag
font = renderCreateFont('Arial', 11, font_flag.SHADOW + font_flag.BOLD)
local infernusModelId = 411 -- ID модели Infernus в GTA:SA
local vrender = false -- переменная для переключения отображения
function main()
if not isSampLoaded() or not isSampfuncsLoaded() then return end
while not isSampAvailable() do wait(0) end
addEventHandler('onWindowMessage', function(msg, wparam, lparam)
if msg == wm.WM_KEYDOWN or msg == wm.WM_SYSKEYDOWN then
if wparam == VK_F3 then
vrender = not vrender
end
end
end)
while true do
wait(0)
if vrender then
local vehicles = getAllVehicles() -- Получаем список всех транспортных средств в игре
for i, vehicle in ipairs(vehicles) do
if getCarModel(vehicle) == infernusModelId and isCarOnScreen(vehicle) then
displayInfernusInfo(vehicle) -- Отображение информации о Infernus
end
end
end
end
end
function displayInfernusInfo(vehicle)
-- Получаем координаты транспортного средства
local cx, cy, cz = getCarCoordinates(vehicle)
-- Конвертируем координаты в позицию на экране
local x, y = convert3DCoordsToScreen(cx, cy, cz)
-- Строка, которую хотим отобразить
local model = "Infernus (" .. tostring(getCarModel(vehicle)) .. ')'
-- Получаем длину и высоту текста для отрисовки
local length = renderGetFontDrawTextLength(font, model, true)
local height = renderGetFontDrawHeight(font)
-- Установим цвет текста
local textcolor = 0xFF00B811 -- Зелёный
if getCarDoorLockStatus(vehicle) == 2 then
textcolor = 0xFFEC0000 -- Красный, если двери заблокированы
end
-- Отрисовываем текст
renderFontDrawText(font, model, x - (length + 5) / 2, y - (height + 7) / 2, textcolor, true)
end