Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2018-05-29, 13:27


DaVeCS

Mapper






Wiek: 31
Na forum: 3386 dni
Posty: 193
Nick w MP: DaVe

Piwa: 59

Respekt: 70,5

Witam,

Korzystam obecnie z GM ITS'a z rozgrywk? w SF i mam pytanie. Podczas gdy w??czam zas?b "3dtext" to gdy znajduj? si? w miejscu gdzie jest du?o ich to zas?b ten obci??a mi serwer w 60%. Co mo?e by? przyczyn?? Ni?ej wstawiam kod "3dtext"

C-Side
function dxDrawBorderedText(scaleBordertextlefttoprightbottomcolorscalefontalignXalignYclipwordBreak,postGUIlocal scaleBorder scaleBorder or 1   
    for oX = -scaleBorderscaleBorder do
        for oY = -scaleBorderscaleBorder do
            dxDrawText(text:gsub('#%x%x%x%x%x%x'''), left oXtop oYright oXbottom oYtocolor(000255), scalefontalignXalignYclipwordBreak,postGUI) 
        end 
    end 
    dxDrawText(textlefttoprightbottomcolorscalefontalignXalignYclipwordBreakpostGUItrueend

defscale=1
font="clear"

addEventHandler("onClientRender"root, function()
    local rootx,rooty,rootz=getCameraMatrix()
    local dim=getElementDimension(localPlayer)
    local int=getElementInterior(localPlayer)
    
    local texty=getElementsByType("text",root,true)
    for i,text in pairs(texty) do
        if text and isElement(text) and getElementDimension(text) == dim and getElementInterior(text) == int then
            local x,y,z=getElementPosition(text)
            if isLineOfSightClear(rootx,rooty,rootzx,y,ztruefalsefalsetruefalsefalsefalsenilthen
            local dist=getDistanceBetweenPoints3D(rootx,rooty,rootz,x,y,z)
            local numer=getElementData(text,"rendering") or 50
            if dist numer then
                local sx,sy=getScreenFromWorldPosition(x,y,z100true)
                if sx and sy then
                    local name=getElementData(text,"name")
                    local scale=getElementData(text,"scale")
                    local r=getElementData(text,"r") or 255
                    local g=getElementData(text,"g") or 255
                    local b=getElementData(text,"b") or 255
                    if not name then return end
                    dxDrawBorderedText(0.2,namesxsysxsytocolor(r,g,b,255), (scale or defscale), font"center""center"false)
                end
            end
        end
    end
    end
end)


S-Side

function init()
local x=exports['ogrpg-db']:dbGet("SELECT * from 3dtexty")
if not x or #x < 1 then return end
for i,p in pairs(x) do
wczytaj(p)
end
end
addEventHandler("onResourceStart",resourceRoot,init)

function wczytaj(v)
v.pos=split(v.pos,",")
local text createElement(v.type);
local tekst string.gsub(v.text"\n""\n")
setElementData(text,"name",tekst)
setElementData(text,"scale",tonumber(v.scale))
setElementPosition(text,v.pos[1],v.pos[2],v.pos[3])
setElementInterior(text,tonumber(v.interior))
setElementDimension(text,tonumber(v.dimension))
end


Jeszcze raz prosz? o pomoc.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-05-29, 14:38


nanKy







Wiek: 22
Na forum: 3866 dni
Posty: 498
Nick w MP: nanky

Piwa: 1773

Respekt: 239
Respekt: 239Respekt: 239

Minimalnym obci??eniem mo?e by? tu funkcja dxDrawBorderedText, bo rysuje ci nie tylko jeden tekst.
Spr?buj usun?? funkcj? oraz zamieni? to:
dxDrawBorderedText(0.2,namesxsysxsytocolor(r,g,b,255), (scale or defscale), font"center""center"false)

na to
dxDrawText(namesxsysxsytocolor(r,g,b,255), (scale or defscale), font"center""center"false)


Postaw piwo autorowi tego posta
 

 
Tagi: 3dtext
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA » 3dtext Odpowiedz do tematu

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku