local samp = require('samp.events')
local active = false
function main()
repeat wait(0) until isSampAvailable()
lua_thread.create(z)
sampRegisterChatCommand('ez', function(arg)
if active and arg:match('(%d+)') ~= id then
sampAddChatMessage('Вы уже начали погоню за другим игроком!', -1)
else
id = arg:match('(%d+)')
nick = sampGetPlayerNickname(id)
if id then
active = not active
sampAddChatMessage(
'Вы ' .. (active and 'начали ' or 'завершили ') ..
'погоню за игроком ' .. nick, -1)
end
end
if not active and not id then
sampAddChatMessage('Ты не ввёл ID игрока!', -1)
end
end)
end
function z()
while true do
if active then
local inSpherePlayers = sampGetCharsInSphere(13)
for i = 1, #inSpherePlayers do
if tonumber(inSpherePlayers[i]) == tonumber(id) then
sampSendChat('/z ' .. id)
end
end
end
wait(700)
end
end
function sampGetCharsInSphere(radius)
local inSphere = {}
if not radius then return {} end
local Mx, My, Mz = getCharCoordinates(PLAYER_PED)
for k, v in pairs(getAllChars()) do
local x, y, z = getCharCoordinates(v)
if getDistanceBetweenCoords3d(Mx, My, Mz, x, y, z) <= tonumber(radius) and v ~= 1 then
local result, id = sampGetPlayerIdByCharHandle(v)
if result then
inSphere[#inSphere + 1] = id
end
end
end
return inSphere
end
function samp.onServerMessage(_, text)
if active then
if text:find('Вы%sне%sполицейский!') then
return false
end
if text:find('Вы%sуспешно%sпометили%sигрока%s' .. tostring(nick) .. '%.') then
active = false
sampAddChatMessage('Погоня за игроком ' .. nick .. ' завершена.', -1)
end
if text:find('Вы%sдалеко%sот%sигрока!') then
return false
end
end
end