1- This code is not you're code :
--\\\\\\\\\\\\\\\\\\\\\\\\\\
--// Setting
local g_screenX, g_screenY = guiGetScreenSize();
local gScale = 0.3;
local gAlphaDistance = 25;
local gMaxDistance = 50; -- Max Distance
local gTextAlpha = 120;
local gTextSize = 1;
local gAlphaDiff = gMaxDistance - gAlphaDistance;
gScale = 1 / gScale * 800 / g_screenY;
local gMaxScaleCurve = { { 0, 0 }, { 3, 3 }, { 13, 5 } };
local gTextScaleCurve = { { 0, 0.8 }, { 0.8, 1.2 }, { 99, 99 } };
local gTextAlphaCurve = { { 0, 0 }, { 25, 100 }, { 120, 190 }, { 255, 190 } };
local markerp = createMarker( 1552.4996337891, -1677.3264160156, 15.1953125, 'Cylinder', 1.5, 0, 0, 255, 150 );
local marker1p = createMarker( -1604.5458984375, 712.25848388672, 12.8671875, 'Cylinder', 1.5, 0, 0, 255, 150 );
local marker2p = createMarker( 2340.9245605469, 2456.0463867188, 13.96875, 'Cylinder', 1.5, 0, 0, 255, 150 );
addEventHandler ( 'onClientRender', root,
function ( )
--
local x, y, z = getCameraMatrix();
local x1, y1, z1 = getElementPosition ( markerp );
local x2, y2, z2 = getElementPosition ( marker1p );
local x3, y3, z3 = getElementPosition ( marker2p );
local distance_1 = getDistanceBetweenPoints3D( x, y, z, x1, y1, z1 );
local distance_2 = getDistanceBetweenPoints3D( x, y, z, x2, y2, z2 );
local distance_3 = getDistanceBetweenPoints3D( x, y, z, x3, y3, z3 );
--
-- Marker #1
if distance_1 <= gMaxDistance then
local x1_, y1_ = getScreenFromWorldPosition( x1, y1, z1 + 0.95, 0.06 );
if x1_ and y1_ then
--
local scale = 1 / ( gScale * ( distance_1 / gMaxDistance ) );
local alpha = ( ( distance_1 - gAlphaDistance ) / gAlphaDiff );
alpha = ( alpha < 0 ) and gTextAlpha or gTextAlpha - ( alpha * gTextAlpha );
scale = math.evalCurve( gMaxScaleCurve, scale );
local textscale = math.evalCurve( gTextScaleCurve, scale );
local textalpha = math.evalCurve( gTextAlphaCurve, alpha );
--
dxDrawText( "Trabajo de Policia", x1_, y1_, x1_, y1_, tocolor ( 255, 255, 255, textalpha ), textscale * gTextSize, "arial", "center", "bottom", false, false, false, true );
end
-- Marker #2
elseif distance_2 <= gMaxDistance then
local x2_, y2_ = getScreenFromWorldPosition( x2, y2, z2 + 0.95, 0.06 );
if x2_ and y2_ then
--
local scale = 1 / ( gScale * ( distance_2 / gMaxDistance ) );
local alpha = ( ( distance_2 - gAlphaDistance ) / gAlphaDiff );
alpha = ( alpha < 0 ) and gTextAlpha or gTextAlpha - ( alpha * gTextAlpha );
scale = math.evalCurve( gMaxScaleCurve, scale );
local textscale = math.evalCurve( gTextScaleCurve, scale );
local textalpha = math.evalCurve( gTextAlphaCurve, alpha );
--
dxDrawText( "Trabajo de Policia", x2_, y2_, x2_, y2_, tocolor ( 255, 255, 255, textalpha ), textscale * gTextSize, "arial", "center", "bottom", false, false, false, true );
end
-- Marker #3
elseif distance_3 <= gMaxDistance then
local x3_, y3_ = getScreenFromWorldPosition( x3, y3, z3 + 0.95, 0.06 );
if x3_ and y3_ then
--
local scale = 1 / ( gScale * ( distance_3 / gMaxDistance ) );
local alpha = ( ( distance_3 - gAlphaDistance ) / gAlphaDiff );
alpha = ( alpha < 0 ) and gTextAlpha or gTextAlpha - ( alpha * gTextAlpha );
scale = math.evalCurve( gMaxScaleCurve, scale );
local textscale = math.evalCurve( gTextScaleCurve, scale );
local textalpha = math.evalCurve( gTextAlphaCurve, alpha );
--
dxDrawText( "Trabajo de Policia", x3_, y3_, x3_, y3_, tocolor ( 255, 255, 255, textalpha ), textscale * gTextSize, "arial", "center", "bottom", false, false, false, true );
end
end
end
);
-- //////////////////////////////////
-- // MATH FUNCTIONS //
-- //////////////////////////////////
function math.evalCurve( curve, input )
if input < curve[ 1 ][ 1 ] then
return curve[ 1 ][ 2 ];
end
for idx = 2, #curve do
if input < curve[ idx ][ 1 ] then
local x1 = curve[ idx - 1 ][ 1 ];
local y1 = curve[ idx - 1 ][ 2 ];
local x2 = curve[ idx ][ 1 ];
local y2 = curve[ idx ][ 2 ];
local alpha = ( input - x1 ) / ( x2 - x1 );
return math.lerp( y1, y2, alpha );
end
end
return curve[ #curve ][ 2 ];
end
function math.lerp( from, to, alpha )
return from + ( to-from ) * alpha;
end
Wnd = guiCreateWindow ( 0.2, 0.2, 0.50, 0.60, "Trabajo de Policia Version Full", true )
guiSetAlpha( Wnd, 1 )
button = guiCreateButton ( 0.5, 0.8, 0.45, 0.15, "Cerrar", true, Wnd )
button1 = guiCreateButton ( 0.01, 0.8, 0.45, 0.15, "Escoger Trabajo", true, Wnd )
label = guiCreateLabel ( 0.05, 0.1, 0.9, 0.2, "Los Policias Pueden Arrestar Criminales \nPegandoles 3 Veces con la Porra.", true, Wnd )
showCursor(false)
guiSetVisible( Wnd, false )
guiWindowSetSizable( Wnd, false )
guiWindowSetMovable( Wnd, false )
skins =
{
{"Policia 1", 280},
{"Policia 2", 281},
{"Ranger 1", 283},
{"Ranger 2", 288},
{"Vigilante de Trafico", 284},
}
skinG = guiCreateGridList(0.01, 0.3, 0.99, 0.5, true, Wnd)
guiGridListAddColumn(skinG, "Skins", 0.85)
for i,skins in ipairs(skins) do
row = guiGridListAddRow(skinG)
--
guiGridListSetItemText(skinG, row, 1, tostring(skins[1]), false, false)
guiGridListSetItemData(skinG, row, 1, tostring(skins[2]))
end
function SAPDjob(hitElement)
if getElementType(hitElement) == "player" and (hitElement == localPlayer) then
if not guiGetVisible(Wnd) then
guiSetVisible(Wnd, true)
showCursor(true)
end
end
end
addEventHandler("onClientMarkerHit", markerp, SAPDjob)
addEventHandler("onClientMarkerHit", marker1p, SAPDjob)
addEventHandler("onClientMarkerHit", marker2p, SAPDjob)
function takeJob()
local row, col = guiGridListGetSelectedItem(skinG)
if (row and col and row ~= -1 and col ~= -1) then
local models = tonumber(guiGridListGetItemData(skinG, row, 1))
if model ~= "" then
triggerServerEvent("getJob", localPlayer, models)
guiSetVisible(Wnd,false)
showCursor(false)
end
end
end
addEventHandler("onClientGUIClick", button1, takeJob, false)
function close()
if (source == button) then
guiSetVisible(Wnd,false)
showCursor(false)
end
end
addEventHandler("onClientGUIClick", button, close)
Am talking about the 3D Text
2- About the off topic you can get the answer here :
Report Community Resources Center