Вопрос Как получить айди дверей быстро ? на мапе

Статус
В этой теме нельзя размещать новые ответы.
  • 278
  • 3
  • 46
Хз хочу быстро получить айди а так по одной двери испкать лень
Lua:
Развернуть Свернуть Копировать
concommand.Add('doorid', function(pl)
    local ent = pl:GetEyeTrace().Entity

    if not IsValid(ent) then return end

    local class = ent:GetClass()
    local id = ent:MapCreationID()

    if class ~= 'prop_door_rotating' and class ~= 'func_door' and class ~= 'func_door_rotating' then return end

    pl:PrintMessage(HUD_PRINTCONSOLE, id)
end)

Серверная часть
 
  • 571
  • 9
  • 102
если ты про door index, это выдумка из сапа, вычисляется self:EntIndex() - game.MaxPlayers(), в коде закомментирована

1790550872916.png


C:
Развернуть Свернуть Копировать
if SERVER then
    return
end

local DoorHUD = {}
DoorHUD.__index = DoorHUD

function DoorHUD:new()
    local obj = setmetatable({
        doors = {}
    }, self)

    local classes = {
        "prop_door_rotating",
        "func_door",
        "func_door_rotating"
    }

    for _, class in ipairs(classes) do
        for _, ent in ipairs(ents.FindByClass(class)) do
            if ent:MapCreationID() ~= -1 then
                obj.doors[#obj.doors + 1] = ent
            end
        end
    end

    return obj
end

function DoorHUD:Draw()
    for _, ent in ipairs(self.doors) do
        if IsValid(ent) then
            local p = ent:WorldSpaceCenter():ToScreen()

            draw.SimpleTextOutlined(
                "map id: " .. ent:MapCreationID(),
                "DermaDefaultBold",
                p.x,
                p.y,
                color_white,
                TEXT_ALIGN_CENTER,
                TEXT_ALIGN_CENTER,
                1,
                color_black
            )

            -- draw.SimpleTextOutlined(
   --             "sup id: " .. (ent:EntIndex() - game.MaxPlayers()),
   --             "DermaDefaultBold",
   --             p.x,
   --             p.y + 14,
   --             color_white,
   --             TEXT_ALIGN_CENTER,
   --             TEXT_ALIGN_CENTER,
   --             1,
   --             color_black
   --         )
        end
    end
end

local hud = DoorHUD:new()

hook.Add("DrawOverlay", "DoorHUD", function()
    hud:Draw()
end)
 
  • 18
  • 1
  • 1
Lua:
Развернуть Свернуть Копировать
concommand.Add('doorid', function(pl)
    local ent = pl:GetEyeTrace().Entity

    if not IsValid(ent) then return end

    local class = ent:GetClass()
    local id = ent:MapCreationID()

    if class ~= 'prop_door_rotating' and class ~= 'func_door' and class ~= 'func_door_rotating' then return end

    pl:PrintMessage(HUD_PRINTCONSOLE, id)
end)

Серверная часть
спасибо
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху Снизу