Помогите пожалуйста, как сделать так, чтоб арестованный игрок, покидая созданную зону, становился свободным и на него вешался розыск?
В таблице jail
задай координаты двух противоположных углов параллелепипеда, который является зоной тюряги (узнать свою позицию можно с помощью команды getpos
в консоли)
local jail = {
Vector(),
Vector(),
}
timer.Create('checkescape', 1, 0, function()
for _, ply in ipairs(player.GetAll()) do
if not ply:isArrested() then continue end
local pos = ply:GetPos()
if not pos:WithinAABox(jail[1], jail[2]) then
ply:unArrest()
timer.Simple(.1, function()
ply:SetPos(pos)
ply:wanted(nil, 'Побег из тюрьмы')
end)
end
end
end)
хмм, само пофиксилось. Спасибо за помощь
Эта ошибка из-за того, что код запускается на клиенте. Он должен быть исключительно на серверсайде
Незнаю мб я что то не так делаю)ну система работает странно,если человека посадить после побега,он появляется в тюрьме и скрипт побега срабатывает заново)
не работает. Координаты ввел, но сразу пишет что я убежал. Ошибок нет. Координаты точно те, я проверил. Первый вектор нижняя точка, второй вектор верхняя точка, паралелепипед.
отправь код с твоими значениями.
не работает ввел координаты ( карта банклав ) и человек вообще не сбегает если выходит с координат
…
escapejail.lua (580 байтов)
Конечно не работает так как не правильно ты сделал.
local jail = {
Vector(3629.658203, -1437.614380, 36.371983),
Vector(4959.888184, -203.718872, 486.407959),
}
local player_GetAll=player.GetAll
timer.Create('checkescape', 1, 0, function()
local pla=player_GetAll()
for i=1,#pla do
local ply=pla[i]
if not ply:isArrested() then continue end
local pos = ply:GetPos()
if not pos:WithinAABox(jail[1], jail[2]) then
ply:unArrest()
timer.Simple(.1, function()
ply:SetPos(pos)
ply:wanted(nil, 'Побег из тюрьмы')
end)
end
end
end)