Hali. lenne nekem egy problémám, méghozzá az, hogy ennél a scriptnél (infobox szerű) nem tudom megoldani azt, hogy a szöveget megtörje, magyarán írok sssssssssssss-nyi betűt akkor tökéletesen illeszkedik a felületre az általam beírt szöveg, de ha többet akkor kilóg. Ezért kéne megtörjem valahogy, hogy alsó sorba írja aztán a többit. Keresgéltem neten, hogy hogyan lehetne de nem jutottam vele előrébb, gondoltam írok ide HÁTHA valaki tud segíteni. Előre is köszönöm segítségeteket.
local sx, sy = guiGetScreenSize()
local showed = false
local text = \"Lorem ipsum...\"
local font = \"default\"
local font_size = 1
local tick = 0
local showedTime = 0
function draw()
if(not showed)then return end
local height = 40
local width = dxGetTextWidth(text, font_size, font) + 12
local process = (getTickCount()-tick)/1000
local leftStart = sx
local leftEnd = sx - width
if(process >= 1)then
if(getTickCount() > tick + 1000 + showedTime)then
leftStart = sx - width
leftEnd = sx
if(getTickCount() > tick + 2000 + showedTime)then
showed = false
end
end
end
local left = interpolateBetween(leftStart, 0, 0, leftEnd, 0, 0, (getTickCount()-tick)/2000, \"Linear\")
local top = 300
dxDrawRectangle(1775, 299, 139, 37, tocolor(1, 0, 0, 178))
dxDrawText(text, left + -10, top , left + width, top + width, tocolor(255,255,255,200), font_size, font)
dxDrawImage(1776, 266, 198, 33, \":wls_gui/info.png\", 0, 0, 0, tocolor(255, 255, 255, 255))
end
addEventHandler(\"onClientRender\", root, draw)
function showBox(t)
if(showed)then
setTimer(showBox, showedTime + 2200, 1, t)
return
end
text = t
showed = true
tick = getTickCount()
local len = tostring(t):len()
showedTime = len<50 and 5000 or len * 100
end
addCommandHandler(\"allsay\", function(cmd, ...)
local msg = table.concat({...}, \" \")
if(msg:len()>0)then
showBox(msg)
end
end)