require("lib.moonloader")
require("lib.sampfuncs")
slot0 = false
slot1, slot2, slot3, slot4, slot5, slot6, slot7 = nil
function main()
if not isSampLoaded() and not isSampfuncsLoaded() then
return
end
while not isSampAvailable() do
wait(100)
end
repeat
wait(1000)
until sampIsLocalPlayerSpawned()
uv0 = renderCreateFont("Arial", 10, 5)
uv1 = renderCreateFont("Arial", 8, 5)
SendClientMessage("Скрипт инициализирован и готов к работе.")
SendClientMessage("Разработчик скрипта: Pavel Garson.")
main_loop()
wait(-1)
end
function SendClientMessage(slot0)
sampAddChatMessage("[SPEEDER]{FFFFFF} " .. slot0, 10302214)
end
function getPlayerSeatId(slot0)
if doesCharExist(slot0) and isCharInAnyCar(slot0) and doesVehicleExist(storeCarCharIsInNoSave(slot0)) then
for slot6 = 0, getMaximumNumberOfPassengers(slot2), 1 do
if not isCarPassengerSeatFree(slot2, slot6) and getCharInCarPassengerSeat(slot2, slot6) == slot0 then
return slot6
end
end
end
return nil
end
function main_loop()
lua_thread.create(function ()
while true do
wait(0)
slot0 = 100
slot1 = -1
slot2, slot3, slot4 = getCharCoordinates(PLAYER_PED)
slot5 = -1
if isCharInAnyCar(PLAYER_PED) then
slot5 = storeCarCharIsInNoSave(PLAYER_PED)
end
for slot10, slot11 in pairs(slot6) do
if slot5 ~= slot11 then
slot19, slot20, slot21 = getCarCoordinates(slot11)
if getDistanceBetweenCoords3d(slot2, slot3, slot4, slot12, slot13, slot14) < 100 and slot15 < slot0 then
slot0 = slot15
slot1 = slot11
end
end
end
if slot1 ~= -1 then
uv0 = getCarModel(slot1)
if uv0 then
uv0 = getNameOfVehicleModel(uv0)
end
uv1 = -1
for slot11, slot12 in pairs(slot7) do
if doesCharExist(slot12) and select(1, sampGetPlayerIdByCharHandle(slot12)) and isCharInAnyCar(slot12) and getPlayerSeatId(slot12) == nil and storeCarCharIsInNoSave(slot12) == slot1 then
uv1 = slot12
end
end
if uv1 == -1 then
uv1 = nil
else
slot8, slot9 = sampGetPlayerIdByCharHandle(uv1)
if slot8 then
uv1 = "XX" .. slot9 .. "SA"
uv2 = sampGetPlayerNickname(slot9)
end
end
uv3 = getCarSpeed(slot1)
if uv3 then
uv3 = math.ceil(uv3) .. " км/ч"
end
slot8, slot9, slot10 = getCarCoordinates(slot1)
if slot8 and slot9 and slot10 and slot2 and slot3 and slot4 then
uv4 = getDistanceBetweenCoords3d(slot2, slot3, slot4, slot8, slot9, slot10)
if uv4 then
uv4 = math.ceil(uv4) .. " м."
end
end
end
if uv5 then
slot7, slot8 = getScreenResolution()
renderDrawBoxWithBorder(slot7 - 300, slot8 - 500, 280, 140, 2147483648.0, 5, 4278190080.0)
renderDrawLine(slot7 - 299, slot8 - 470, slot7 - 20, slot8 - 470, 2, 4278190080.0)
renderFontDrawText(uv6, "Полицейский измеритель скорости", slot7 - 293, slot8 - 493, 4294967295.0, true)
renderFontDrawText(uv7, "Модель автомобиля: " .. (uv0 or "неизвестно"), slot7 - 290, slot8 - 463, 4294967295.0, true)
renderFontDrawText(uv7, "Водитель автомобиля: " .. (uv2 or "неизвестно"), slot7 - 290, slot8 - 453, 4294967295.0, true)
renderFontDrawText(uv7, "Номер автомобиля: " .. (uv1 or "неизвестно"), slot7 - 290, slot8 - 443, 4294967295.0, true)
renderFontDrawText(uv7, "Скорость автомобиля: " .. (uv3 or "неизвестно"), slot7 - 290, slot8 - 433, 4294967295.0, true)
renderFontDrawText(uv7, "Дистанция до автомобиля: " .. (uv4 or "неизвестно"), slot7 - 290, slot8 - 423, 4294967295.0, true)
renderDrawLine(slot7 - 299, slot8 - 400, slot7 - 20, slot8 - 400, 2, 4278190080.0)
renderFontDrawText(uv7, "Разработчик: Pavel Garson", slot7 - 245, slot8 - 395, 4294967295.0, true)
renderFontDrawText(uv7, "vk.com/pavel.akulichev", slot7 - 235, slot8 - 385, 4294967295.0, true)
end
uv0, uv2, uv1, uv3 = nil
uv4 = nil
end
end)
end
function onSendRpc(slot0, slot1, slot2, slot3, slot4, slot5)
if slot0 == 50 then
slot8 = false
slot9 = ""
slot10 = ""
if not raknetBitStreamReadString(slot1, slot6):match("^/(%a+)$") then
slot9, slot10 = slot7:match("^/(%a+)%s(.-)$")
else
slot9 = slot7:match("^/(%a+)$")
end
if slot9 == "speeder" then
uv0 = not uv0
SendClientMessage(uv0 and "Режим измерения скорости - активирован, интерфейс загружен." or "Режим измерения скорости - деактивирован, интерфейс скрыт.")
return false
end
end
end