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

Wysłany: 2020-04-29, 21:47


Maniekxx

Amator






Wiek: 24
Na forum: 2894 dni
Posty: 232
Nick w MP: Maniekxx

Piwa: 225

Respekt: 110
Respekt: 110

Ostrzeżeń: 20%
Witam. Napisa?em pewien skrypt na wyb?r spawnu, u?y?em do tego funkcji dxDrawText, dxDrawRectangle i jedn? p?tle. Samo korzystanie ze skryptu nie powoduje spadk?w FPS lub co? w tym stylu, lecz korzystanie z jakiego? innego GUI lub u?ywanie GUI editora powoduje lekkie ?cinki. Skrypt ma by? u?ywany tylko i wy??cznie przy wyborze spawnu, i nie wiem czy b?dzie mia?o to jaki? wi?kszy wp?yw na wydajno?? serwera, lub te? komputera gracza. Z g?ry dzi?kuje za ewentualne odpowiedzi.




Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-04-29, 21:57


kamison

Przyszły programista .lua






Wiek: 25
Na forum: 3302 dni
Posty: 391
Nick w MP: kamison

Piwa: 594

Respekt: 205,3
Respekt: 205,3Respekt: 205,3

Lubimy wr??y? z kuli ale ?atwiej z kodu

[ Dodano: 2020-04-29, 21:58 ]
Podaj kod, najlepiej ca?? funkcj? zawart? w onClientRender

Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
Maniekxx
Wysłany: 2020-04-29, 21:59


Maniekxx

Amator






Wiek: 24
Na forum: 2894 dni
Posty: 232
Nick w MP: Maniekxx

Piwa: 225

Respekt: 110
Respekt: 110

Ostrzeżeń: 20%
Prosz?


local spawny = {

    {spawn "Los Santos"rx = {0.00760.01780.24370.0300}, pos = {1472.49,-1710.46,14.05}, info "-Urz?d miasta\n Komisariat\n Szko?a jazdy"},
    {spawn "Przechowalnia"rx = {0.00760.05780.24370.0300}, pos = {1583.03,-1402.55,13.92}, info "-Przechowalnia pojazd?w"},
    {spawn "San Fierro"rx = {0.00760.09780.24370.0300}, pos = {1472.49,-1710.46,14.05}, info "-Urz?d miasta"},

}

function render()
        local spawn spawny.spawn

        dxDrawRectangle(screenW spawny.rx[1], screenH spawny.rx[2]-5screenW spawny.rx[3], screenH spawny.rx[4], tocolor(00035), false)
        dxDrawText(spawnscreenW spawny.rx[1], screenH spawny.rx[2], screenW spawny.rx[3], screenH spawny.rx[4], tocolor(255255255255), 1.00"default-bold""center""top"falsefalsefalsefalsefalse)
        
addEventHandler("onClientClick"root, function(btn,state)
    if btn=="left" and state=="down" then
        local sY=1
        if isMouseIn(screenW spawny.rx[1], screenH spawny.rx[2]*sYscreenW spawny.rx[3], screenH spawny.rx[4]*sYthen
            if x1 == 1 then x1 return end
            setElementPosition(localPlayer,spawny.pos[1], spawny.pos[2], spawny.pos[3])
            --removeEventHandler("onClientRender"rootrender)
            x1 1
        end
    end
end)

        if not isMouseIn(screenW spawny.rx[1], screenH spawny.rx[2], screenW spawny.rx[3], screenH spawny.rx[4]) then
            dxDrawRectangle(screenW spawny.rx[1], screenH spawny.rx[2]+sY-5screenW spawny.rx[3], screenH spawny.rx[4]+sYtocolor(00035), true)
        else 
            dxDrawRectangle(screenW spawny.rx[1], screenH spawny.rx[2]-5screenW spawny.rx[3], screenH spawny.rx[4], tocolor(000100), true)
            dxDrawText(spawny.infoscreenW spawny.rx[1]+360screenH spawny.rx[2], screenW spawny.rx[3], screenH spawny.rx[4], tocolor(255255255255), 1.00"default-bold""left""top"falsefalsefalsefalsefalse)
        end

end
addEventHandler("onClientRender"root,render)


Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-04-29, 22:00


Wilq







Wiek: 24
Na forum: 4428 dni
Posty: 3410

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

Welp, wyci?gnij ten event onClientClick z eventu onClientRender. Wytnij ca?y i wklej pod event onClientRender.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-04-29, 22:04


Maniekxx

Amator






Wiek: 24
Na forum: 2894 dni
Posty: 232
Nick w MP: Maniekxx

Piwa: 225

Respekt: 110
Respekt: 110

Ostrzeżeń: 20%
EDIT: Przepraszam, pomyli?em b??dy, to ten.

ERRORlss-test_c.lua:40attempt to index global 'v' (a nil value)


Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-04-29, 22:10


Wilq







Wiek: 24
Na forum: 4428 dni
Posty: 3410

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

Robisz z?e odwo?anie do elementu tabeli.

spawny[1].rx[1]

Musisz wskaza? tabel? z tabeli spawny. Je?li chcesz obs?u?y? wszystkie 3 tabele, zr?b p?tle w evencie onClientClick.

Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
Maniekxx
Wysłany: 2020-04-29, 22:14


Maniekxx

Amator






Wiek: 24
Na forum: 2894 dni
Posty: 232
Nick w MP: Maniekxx

Piwa: 225

Respekt: 110
Respekt: 110

Ostrzeżeń: 20%
Zrobi?em to tak:

local spawny = {

    {spawn "Los Santos"rx = {0.00760.01780.24370.0300}, pos = {1472.49,-1710.46,14.05}, info "-Urz?d miasta\n Komisariat\n Szko?a jazdy"},
    {spawn "Przechowalnia"rx = {0.00760.05780.24370.0300}, pos = {1583.03,-1402.55,13.92}, info "-Przechowalnia pojazd?w"},
    {spawn "San Fierro"rx = {0.00760.09780.24370.0300}, pos = {1583.03,-1402.55,13.92}, info "-Urz?d miasta"},

}

function render()
for i,v in pairs(spawny) do
        local spawn v.spawn

        dxDrawRectangle(screenW v.rx[1], screenH v.rx[2]-5screenW v.rx[3], screenH v.rx[4], tocolor(00035), false)
        dxDrawText(spawnscreenW v.rx[1], screenH v.rx[2], screenW v.rx[3], screenH v.rx[4], tocolor(255255255255), 1.00"default-bold""center""top"falsefalsefalsefalsefalse)

        if not isMouseIn(screenW v.rx[1], screenH v.rx[2], screenW v.rx[3], screenH v.rx[4]) then
            dxDrawRectangle(screenW v.rx[1], screenH v.rx[2]+sY-5screenW v.rx[3], screenH v.rx[4]+sYtocolor(00035), true)
        else 
            dxDrawRectangle(screenW v.rx[1], screenH v.rx[2]-5screenW v.rx[3], screenH v.rx[4], tocolor(000100), true)
            dxDrawText(v.infoscreenW v.rx[1]+360screenH v.rx[2], screenW v.rx[3], screenH v.rx[4], tocolor(255255255255), 1.00"default-bold""left""top"falsefalsefalsefalsefalse)
        end
        
    end
end
addEventHandler("onClientRender"root,render)

addEventHandler("onClientClick"root, function(btn,state)
    if btn=="left" and state=="down" then
    for i,v in ipairs(spawny) do
        local sY=1
        if isMouseIn(screenW v.rx[1], screenH v.rx[2]*sYscreenW v.rx[3], screenH v.rx[4]*sYthen
            setElementPosition(localPlayer,v.pos[1], v.pos[2], v.pos[3])
            --removeEventHandler("onClientRender"rootrender)
            end
        end
    end
end)


Teraz nie b?dzie powodowa?o wi?kszych obci??e??

[ Dodano: 2020-04-29, 22:15 ]
Czy mo?e Twoje odwo?anie do tabeli by?oby lepszym rozwi?zaniem?

[ Dodano: 2020-04-29, 22:15 ]
Zamiast tworzenia nowej p?tli?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-04-29, 22:19


Wilq







Wiek: 24
Na forum: 4428 dni
Posty: 3410

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

Tw?j aktualny kod powinien by? wystarczaj?cy. Przetestuj go i sam zdecyduj, czy dalej jest ?le zoptymalizowany.

Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
Maniekxx
Wysłany: 2020-04-29, 22:22


Maniekxx

Amator






Wiek: 24
Na forum: 2894 dni
Posty: 232
Nick w MP: Maniekxx

Piwa: 225

Respekt: 110
Respekt: 110

Ostrzeżeń: 20%
Teraz zu?ycie procesora nie przekracza 1% wydaje mi si? ?e tyle mi wystarczy. Dzi?ki za pomoc, w przysz?o?ci b?d? pami?ta? aby nie u?ywa? onClientClick w onClientRender :)

Postaw piwo autorowi tego posta
 

 
Tagi: zużycie :: cpu
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA » Zużycie cpu Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

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