Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно. Вам необходимо обновить браузер или попробовать использовать другой.
Для данного востребуется пройти в cl_dialogue.lua самого талкера. Именно там хранятся данные derma-панелей.
Самая первая инициализация панели. Приблизительный код на добавление текстуры/панели:
В локале material, в оператор(?) Material закидываешь путь до своей картиночки/текстурочки. Для сохранении прозрачности фона, желательно использовать .png-формат.
Код:
local material = Material("Le_image.png") // Material("Le_image.png", "noclamp smooth")
self.Paint = function(pnl, w, h)
surface.SetDrawColor(color_white)
surface.SetMaterial(material)
surface.DrawTexturedRect(0, 0, w, h)
end
Иль же использовать функцию панели для данного:
Код:
local material = Material("Le_image.png") // Material("Le_image.png", "noclamp smooth")
function PANEL:Paint(w, h)
surface.SetDrawColor(color_white)
surface.SetMaterial(material)
surface.DrawTexturedRect(0, 0, w, h)
end
Изначально стоит выпилить изначальную стандартную панель. С этим, думаю, проблем не возникнет.
Так же, стоит учитывать множество факторов самой текстуры. Под нее нужно подстраивать как текстовый frame, так и буковки.
Для данного востребуется пройти в cl_dialogue.lua самого талкера. Именно там хранятся данные derma-панелей.
Самая первая инициализация панели. Приблизительный код на добавление текстуры/панели:
В локале material, в оператор(?) Material закидываешь путь до своей картиночки/текстурочки. Для сохранении прозрачности фона, желательно использовать .png-формат.
Код:
local material = Material("Le_image.png") // Material("Le_image.png", "noclamp smooth")
self.Paint = function(pnl, w, h)
surface.SetDrawColor(color_white)
surface.SetMaterial(material)
surface.DrawTexturedRect(0, 0, w, h)
end
Иль же использовать функцию панели для данного:
Код:
local material = Material("Le_image.png") // Material("Le_image.png", "noclamp smooth")
function PANEL:Paint(w, h)
surface.SetDrawColor(color_white)
surface.SetMaterial(material)
surface.DrawTexturedRect(0, 0, w, h)
end
Изначально стоит выпилить изначальную стандартную панель. С этим, думаю, проблем не возникнет.
Так же, стоит учитывать множество факторов самой текстуры. Под нее нужно подстраивать как текстовый frame, так и буковки.
Для данного востребуется пройти в cl_dialogue.lua самого талкера. Именно там хранятся данные derma-панелей.
Самая первая инициализация панели. Приблизительный код на добавление текстуры/панели:
В локале material, в оператор(?) Material закидываешь путь до своей картиночки/текстурочки. Для сохранении прозрачности фона, желательно использовать .png-формат.
Код:
local material = Material("Le_image.png") // Material("Le_image.png", "noclamp smooth")
self.Paint = function(pnl, w, h)
surface.SetDrawColor(color_white)
surface.SetMaterial(material)
surface.DrawTexturedRect(0, 0, w, h)
end
Иль же использовать функцию панели для данного:
Код:
local material = Material("Le_image.png") // Material("Le_image.png", "noclamp smooth")
function PANEL:Paint(w, h)
surface.SetDrawColor(color_white)
surface.SetMaterial(material)
surface.DrawTexturedRect(0, 0, w, h)
end
Изначально стоит выпилить изначальную стандартную панель. С этим, думаю, проблем не возникнет.
Так же, стоит учитывать множество факторов самой текстуры. Под нее нужно подстраивать как текстовый frame, так и буковки.
Самое простое, что можно сделать - это «подцепить» требуемую текстуру к существующей панели.
Твоя возможная проблема - это, либо, неправильная привязка твоей текстуры к требуемой панели, либо что-либо еще связанное с руками.
О чем нам рассказывает стандартная панель Талкера, взятая из директории Неона:
Код:
local PANEL = {}
function PANEL:Init()
local sh = ScrH()/1.5
self:SetTitle( "Dialogue" )
self:SetSize( sh*.8, sh )
self.content = vgui.Create( "Panel", self )
self.content:Dock( FILL )
self.btnlist = {}
self:MakePopup()
self:Center()
[INDENT] ...[/INDENT]
end
Взяв во внимание self:SetSize( sh*.8, sh ), стоит крутиться вокруг него.
Пример построю «локально», без каких-либо свистоперделок самого Талкера. Только фон, не более.
Сам фон выглядит следующим образом:
Код:
local scrw, scrh = ScrW(), ScrH()
local function TestFrame()
local sh = scrh / 1.5
local frame = vgui.Create("DFrame")
frame:SetSize(sh*.8, sh)
frame:SetTitle("Vergjil le framerino")
frame:Center()
frame:MakePopup()
end
concommand.Add("FrameTest", TestFrame)
Единственное, что нам нужно - это попросту подкинуть текстуру в «правильное место»:
Код:
local scrw, scrh = ScrW(), ScrH()
local function TestFrame()
local frame = vgui.Create("DFrame")
local sh = scrh / 1.5
frame:SetSize(sh*.8, sh)
frame:SetTitle("Vergjil le framerino")
frame:Center()
frame:MakePopup()
local mat = Material( "EXAMPLE_PATH.png", "noclamp smooth" )
frame.Paint = function(pnl, w, h)
surface.SetDrawColor(255,255,255,255)
surface.SetMaterial(mat)
surface.DrawTexturedRect(0, 0, w, h)
end
end
concommand.Add("FrameTest", TestFrame)
Куда и что вставлять - разберешь, думаю, сам.
P.S. Ширина и длина твоей текстуры сугубо зависит от размера самой панели (в большинстве случаев).
P.S.S. Возможно, что я повторяюсь, но данное и должно быть решением. Если все равно будут проблемы, то, пожалуйста, подкидывай исходный код, а там, думаю, уже и разберемся.
На данном сайте используются файлы cookie, чтобы персонализировать контент и сохранить Ваш вход в систему, если Вы зарегистрируетесь.
Продолжая использовать этот сайт, Вы соглашаетесь на использование наших файлов cookie.