local ffi = require("ffi")
local vector = require("vector3d")
local PICKUP_POOL = 0
local NOTIFY_DISTANCE = 2.0 -- дистанция в метрах
function main()
while not isSampAvailable() do
wait(0)
end
PICKUP_POOL = sampGetPickupPoolPtr()
while true do
checkPlayerPickup()
wait(100)
end
end
function checkPlayerPickup()
local playerPos = vector(getCharCoordinates(PLAYER_PED))
for id = 0, 4096 do
local PICKUP_HANDLE = sampGetPickupHandleBySampId(id)
if PICKUP_HANDLE ~= 0 then
local pickupPos = vector(getPickupCoordinates(PICKUP_HANDLE))
local distance = getDistanceBetweenCoords3d(playerPos.x, playerPos.y, playerPos.z, pickupPos.x, pickupPos.y, pickupPos.z)
if distance <= NOTIFY_DISTANCE then -- тут ещё можно сделать проверку на if id == id пикапа, на который нужно тригерить
notify(id, distance)
end
end
end
end
function notify(pickupId, distance)
sampAddChatMessage(string.format("{FF1493}[Pickup Alert]: {FFFFFF} в %.2f м от пикапа ID: %d", distance, pickupId), 0xFF1493)
end