local ev = require("samp.events") -- подрубаешь библитеку SAMP.lua
local bebra = false -- булевая переменная отвечающая за работу супер мега рванки
-- в main()
sampRegisterChatCommand("superrvanka3000", function() -- регаешь кмд для врубания/вырубания
bebra = not bebra
end)
-- в любом месте кода
function ev.onSendVehicleSync(data)
if bebra then -- если супер мега рванка работает то
local id = getClosestPlayerId() -- получаешь ближ. айдишник функой
local res, handle = sampGetCharHandleBySampPlayerId(id) -- получаешь хендл по айдишнику
if res then -- если чел в зоне стрима то
local X, Y, Z = getCharCoordinates(handle) -- получаешь коорды ближ.чела
local pX,pY,pZ = getCharCoordinates(PLAYER_PED) -- получаешь свои коорды
data.position = {X, Y, Z} -- отправляешь синхру
data.moveSpeed.x = 1.0 -- скорость по X
data.moveSpeed.y = 1.0 -- скорость по Y
data.moveSpeed.z = 1.0 -- скорость по Z
if isCharOnScreen(handle) then -- если он на экране(для рендера)
myxcoord, myycoord = convert3DCoordsToScreen(X, Y, Z) -- конвертируешь в 2д
cxcoord, cycoord = convert3DCoordsToScreen(pX, pY, pZ) -- конвертируешь в 2д
renderDrawLine(myxcoord, myycoord, cxcoord, cycoord, 2.00, -1) -- рендеришь палку
printStringNow('Супер мега рванка рванит ['..id..'] ID' , 1500) -- выводишь текст на экран что ты такой необычный
end
end
end
end
function getClosestPlayerId()
local closestId = -1
mydist = 50 -- минимальная дистанция
local x, y, z = getCharCoordinates(PLAYER_PED)
for i = 0, 999 do
local streamed, pedID = sampGetCharHandleBySampPlayerId(i)
if streamed and getCharHealth(pedID) > 0 and not sampIsPlayerPaused(pedID) then
local xi, yi, zi = getCharCoordinates(pedID)
local dist = getDistanceBetweenCoords3d(x, y, z, xi, yi, zi)
if dist <= mydist then
mydist = dist
closestId = i
end
end
end
return closestId
end