Mesmo copiando o código-fonte da função útil dxDrawTextOnElement, você fez questão de mudar a indentação dela para deixar errada, por qual motivo?
(todas as variáveis locais tem +4 espaços)
O texto não aparece pois está atravessando a porta. A função útil tem uma condição de que o texto só aparece se não tiver nada entre o texto e a câmera. Remova essa condição e o texto sempre aparecerá mesmo estando dentro da porta.
Se quer usar código de cores no texto, você precisará fazer um upgrade na função útil para incluir o parâmetro colorCoded no dxDrawText.
Tente algo assim:
theObj = createObject (1491, 2487, -1666, 12.3) -- Cria uma porta dinâmica na Grove Street.
bindKey("e", "down", function()
setElementFrozen(theObj, not isElementFrozen(theObj)) -- Congela/descongela essa porta específica ao apertar a tecla E.
end)
function TextoPortas()
for i, portas in ipairs(getElementsByType("object")) do
if getElementModel(portas) == 1491 then
if isElementFrozen(portas) then
dxDrawTextOnElement(portas, "#FF8000[E] #FFFFFFPara Abrir", 1, 6, tocolor(255, 255, 255, 255), 3.1, "default-bold", "center", "center", false, false, false, true)
else
dxDrawTextOnElement(portas, "#FF8000[E] #FFFFFFPara Fechar", 1, 6, tocolor(255, 255, 255, 255), 3.1, "default-bold", "center", "center", false, false, false, true)
end
end
end
end
addEventHandler("onClientRender", root, TextoPortas)
function dxDrawTextOnElement(theElement, text, height, distance, color, size, font, alignX, alignY, clip, wordBreak, postGUI, colorCoded)
local x, y, z = getElementPosition(theElement)
local x2, y2, z2 = getCameraMatrix()
local distance = distance or 20
local height = height or 1
-- if (isLineOfSightClear(x, y, z+2, x2, y2, z2)) then -- Oculta o texto se tiver algo entre ele e a câmera.
local sx, sy = getScreenFromWorldPosition(x, y, z+height)
if sx and sy then
local distanceBetweenPoints = getDistanceBetweenPoints3D(x, y, z, x2, y2, z2)
if distanceBetweenPoints < distance then
dxDrawText(text, sx+2, sy+2, sx, sy, color or 0xFFFFFFFF, (size or 1)-(distanceBetweenPoints / distance), font or "arial", alignX or "center", alignY or "center", clip or false, wordBreak or false, postGUI or false, colorCoded or false)
end
end
-- end
end