• Ну и что вы думаете? Мы взяли и создали свой собственный чат, с блекджеком и шлюхами, теперь все легенды в одном месте: даже те 1000 человек, которых мы забанили в старом чате 🫡 Будем публиковать там очень интересные подробности нового дизайна форума, oh yeah

    Вступай и становись легендой, пока это не стало поздно: жмякай на меня, ток не сильно(

Undetected [LUA] Скрипт для обнаружения входа игроков в зону

Эксперт
Статус
Оффлайн
Регистрация
9 Апр 2020
Сообщения
1,471
Реакции[?]
679
Поинты[?]
39K
Нужен, для того чтобы откинуть точку перед входом в вашу базу и потом сидеть на маниках.
Для входа | выхода в режим создания кнопка - N
SetRadius 500 - Задает радиус окружности.
SetName "point" - Задает имя окружности.
SetRender 0 | 1 - Будет ли визуально отображаться рендер окружности после ее установки.
RemovePoint "point" - Удаляет окружность с указанным именем.
Код:
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
surface.CreateFont("Arial 12", { font = "Arial", size = 12, weight = 1000, outline = false, extended = true })
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
WHITE  = Color(247, 249, 252, 255)
RED    = Color(255, 87, 51, 255)
BLUE   = Color(93, 173, 226, 255)
GREEN  = Color(34, 153, 84, 255)
YELLOW = Color(241, 196, 15, 255)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
local ALARMS = {}
local CREATE_MOD = false
local RENDER = true
local NAME = "POINT"
local RADIUS = 50
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
local function CreateNotification(Text)
    notification.AddLegacy(Text, NOTIFY_GENERIC, 2)
    surface.PlaySound("common/warning.wav")
end
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
concommand.Add("SetRadius", function(Player, CMD, Args)
    if (!Args) then return end
    RADIUS = tonumber(Args[1])
end)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
concommand.Add("SetName", function(Player, CMD, Args)
    if (!Args) then return end
    NAME = Args[1]
end)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
concommand.Add("SetRender", function(Player, CMD, Args)
    if (!Args) then return end
    RENDER = tobool(Args[1])
end)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
concommand.Add("RemovePoint", function(Player, CMD, Args)
    if (!Args) then return end
    Name = Args[1]
    for Index, Point in pairs(ALARMS) do
        if (Point.Name == Name) then
            table.remove(ALARMS, Index)
            CreateNotification("Точка '" .. Name .. "' удалена.")
        end
    end
end)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
local function CreateNewPoint()
    hook.Add("PostDrawOpaqueRenderables", "CreateAlarmPoint", function()
        local Player = LocalPlayer()
        local Trace = Player:GetEyeTrace()
        if Trace.Hit then
            local Position = Trace.HitPos
            local Angle = Angle(0, Player:EyeAngles().y - 90, 0)
            cam.Start3D2D(Position, Angle, 1)
                local Height = 0
                surface.DrawCircle(0, 0, RADIUS, WHITE)
                draw.SimpleText("Радиус: " ..  tostring(RADIUS), "Arial 12", 0, Height, WHITE, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
                Height = Height + 15
            cam.End3D2D()
            if (input.IsMouseDown(MOUSE_LEFT)) then
                CREATE_MOD = false
                table.insert(ALARMS, {
                    Position = Position,
                    Angle = Angle,
                    Radius = RADIUS,
                    Name = NAME,
                    Sleep = false
                })
                hook.Remove("PostDrawOpaqueRenderables", "CreateAlarmPoint")
                CreateNotification("Создана новая точка.")
            end
        end
    end)
end
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
hook.Add("PostDrawOpaqueRenderables", "AlarmSystemRender", function()
    for Id, Point in pairs(ALARMS) do
        cam.Start3D2D(Point.Position, Point.Angle, 1)
            local Height = 0
            local Count = 0
            local ValidDistance = LocalPlayer():GetPos():Distance(Point.Position) <= 500
            for _, Player in pairs(player.GetAll()) do
                local Distance = Point.Position:Distance(Player:GetPos())
                if (Distance > RADIUS) then continue end
                if (!Point.Sleep) then
                    CreateNotification("На точку '" .. Point.Name .. "' зашел '" .. team.GetName(Player:Team()) .. " | " .. Player:Nick() .. "'.")
                end
                Count = Count + 1
            end
            if (RENDER && ValidDistance) then
                draw.SimpleText("Радиус: " ..  tostring(Point.Radius), "Arial 12", 0, Height, WHITE, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
                Height = Height + 15
                draw.SimpleText("Имя: " ..  tostring(Point.Name), "Arial 12", 0, Height, WHITE, TEXT_ALIGN_CENTER, TEXT_ALIGN_CENTER)
                Height = Height + 15
            end
            if (Count > 0) then 
                if (RENDER && ValidDistance) then surface.DrawCircle(0, 0, Point.Radius, BLUE) end
                if (!Point.Sleep) then
                    Point.Sleep = true
                    timer.Simple(2, function() Point.Sleep = false end)
                end
            else 
                if (RENDER && ValidDistance) then surface.DrawCircle(0, 0, Point.Radius, WHITE) end
            end
        cam.End3D2D()
    end
end)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

hook.Add("PlayerButtonDown", "AlarmSystem", function(Player, Button)
    if not IsFirstTimePredicted() then return end
    
    if (Button == KEY_N) then
        if (CREATE_MOD) then
            CREATE_MOD = false
            hook.Remove("PostDrawOpaqueRenderables", "CreateAlarmPoint")
            CreateNotification("Режим создания точки выключен.")
        else
            CREATE_MOD = true
            CreateNewPoint()
            CreateNotification("Запущен режим создания точки.")
        end
    end
end)
 
Последнее редактирование:
Сверху Снизу