Вспомнил я один сервер, где человек всегда находил интересные решения. И у него есть такая особенность, он в большинстве случаев не компилировал свои скрипты, и никак не пытался их скрыть. Они у него даже были с пояснениями. Так вот, делать так может и неправильно, но я иногда заходил в кэш и смотрел его клиентские файлы. Это на начальных этапах обучения очень мне помогало и там я находил оригинальные решения задач. Это скриптер Puma (клана pac) Так вот к делу, у него весь текст на сервере был с обводкой. Нашёл я эту функцию, немного изменив.
w, h = guiGetScreenSize()
shadowTable = { {1,-1}, {1,0}, {1,1}, {0,1}, {0,-1}, {-1,-1}, {-1,0}, {-1,1} }
function render ()
local shadows = {}
local texts = {}
table.insert ( texts, {"Простой текст", 400, 100, 100, 100, tocolor(255,255,255,255), 1, "bankgothic", "left", "top"} )
table.insert ( shadows, {"Простой текст", 400, 100, 100, 100, 255, 1, "bankgothic", "left", "top", 1} ) --указываем без tocolor, просто alpha, последнее значение толщина обводки
table.insert ( texts, {"Простой большой текст", 400, 400, 100, 100, tocolor(255,255,255,255), 2, "bankgothic", "left", "top"} )
table.insert ( shadows, {"Простой большой текст", 400, 400, 100, 100, 255, 2, "bankgothic", "left", "top", 3} )
for i, t in pairs ( shadowTable ) do
local oX, oY = t[1], t[2]
for j, textTable in pairs ( shadows ) do
local text, x, y, x2, y2, a, scale, font, alignX, alignY, thickness = unpack(textTable)
oX, oY = oX*thickness, oY*thickness
dxDrawText ( text, x+oX, y+oY, x2+oX, y2+oY, tocolor(0,0,0,a), scale, font, alignX, alignY )
end
end
for i, t in pairs ( texts ) do
dxDrawText ( unpack(t) )
end
end
addEventHandler ( "onClientRender", getRootElement(), render )