Нужен рабочий код на добавление отображения владельца пропа на экране игрока когда тот смотрит на свой или чужой проп, пример на картинке [SUP]
hook.Add('HUDPaint', 'FPP_HUDPaint'
)
взял с поиска от doxzter’а
если не ошибаюсь это стандартный сандбоксовский худ, мне надо именно по типу CPPI:GetOwner че то такое
если взял с поиска, то сошлись на тему, а не скопируй решение \_ _/
P.S. Насколько я помню, то там сложность в том, что CPPIGetOwner это серверный метод, а отрисовать овнера нужно на клиенте.
Тому, кто даст решение – медалька “Помощник”
local ent = ply:GetEyeTrace().Entity
if IsValid(ent) and !ent:IsPlayer() and ent:GetNWString("PropOwnedd", false) then
draw.SimpleBox(8, ScrW(10), ScrH/2, ent:GetNWString("PropOwnedd", false), "TESTFONT", Color(255, 255, 255), color_white, 2, 1)
end
не забудь создать surface.CreateFont(‘TESTFONT’)
попробуй, хз
в любое место CL части, код вызывается после инициализации всех сущностей.
InitPostEntity нужно для локализации LocalPlayer
Код усложнил по факту можно в несколько строк.
surface.CreateFont("InfoProp", {
size = 20,
weight = 350,
antialias = true,
extended = true,
font = "Codec Pro" --Если не работает поменять на другой.
})
local LP
local EyeAngles = FindMetaTable("Entity").EyeAngles
local Forward = FindMetaTable("Angle").Forward
local EyePos = FindMetaTable("Entity").EyePos
local util_TraceLine = util.TraceLine
local FrameNumber = FrameNumber
local LAST = 0
local AIM
local IsValid=IsValid
local Number = 4096 -- изначально 4096*8
local function GetEyeTraceNoCursor()
local framenum = FrameNumber()
if LAST == framenum then return AIM end
LAST = framenum
local tr = util_TraceLine({
start = EyePos(LP),
endpos = EyePos(LP) + (Forward(EyeAngles(LP)) * Number),
filter = LP
})
AIM = tr
return tr
end
local c1 = Color(0, 0, 0, 120)
local c2 = Color(255, 255, 255)
local TEXT_ALIGN_LEFT = TEXT_ALIGN_LEFT
local draw_RoundedBox = draw.RoundedBox
local draw_DrawText = draw.DrawText
hook.Add("InitPostEntity", "LPHook", function()
LP = LocalPlayer()
local ScrW1 = ScrW() - 190
local ScrW2 = ScrW() - 180
local ScrH = ScrH() / 2
local Alive = FindMetaTable("Player").Alive
local GetNWString = FindMetaTable("Entity").GetNWString
hook.Add("HUDPaint", "GetMyOwner", function()
if not Alive(LP) then return end
local tr = GetEyeTraceNoCursor()
local ent = tr.Entity
if not IsValid(ent) or (GetNWString(ent,"PropOwnedd", "") == "") then return end
draw_RoundedBox(4, ScrW1, ScrH - 5, 200, 30, c1)
draw_DrawText(GetNWString(ent, "PropOwnedd"), "InfoProp", ScrW2, ScrH, c2, TEXT_ALIGN_LEFT)
end)
end)
фыфыфы
бля и ведь реально работает, просто легендыч x2. Спасибо огромное, я этот код не мог поставить наверное больше 2 недель
медальку