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

Wysłany: 2018-04-02, 21:36


IgorPL222

LUA






Wiek: 26
Na forum: 3253 dni
Posty: 133
Nick w MP: mxgvr

Piwa: 746

Respekt: 55,3

Witam.
Zrobi?em w?? stra?acki i rozwijanie ju? mam, natomiast nie mog? zrobi?, aby w?? si? zwija? automatycznie (chodzi, ?e gdy wejdziemy na rozwini?t? cz??? to si? zwinie), z g?ry dzi?kuj? :)

Kod klient:

local player = {}
local firehose = {}

addEventHandler("onClientRender", root, function()
for i,v in ipairs(player) do
    if v[1] and isElement(v[1]) and v[2] and isElement(v[2]) and getElementType(v[1]) == "player" and not isPedInVehicle(v[1]) then
    local bx,by,bz = getPedBonePosition(v[1], 25)
    local x,y,z = getElementPosition(v[2])
    --local bx, by, bz = getPedBonePosition(localPlayer, 24)
    local position = firehose[#firehose]
    --local x,y,z = position.x, position.y, position.z
    
    if getDistanceBetweenPoints3D(bx, by, bz, x, y, z) > 1 then
        table.insert(firehose, {x=bx, y=by, z=getGroundPosition(bx, by, bz)})
    end

        for i=1,#firehose do
        if not firehose[i+1] then
            local p = firehose[i]
            dxDrawMaterialLine3D(p.x, p.y, p.z+0.2, bx, by, bz+0.2, texture, 0.13)
        end
        
        if firehose[i] and firehose[i+1] then
            local p = firehose[i]
            local b = firehose[i+1]
            dxDrawMaterialLine3D(p.x, p.y, p.z+0.2, b.x, b.y, b.z+0.2, texture, 0.13)
        end
    end
end
end
end)


Podpis
discord: mxgvr
Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
SNG_GTR
Wysłany: 2018-04-02, 22:13


Mateuusz







Wiek: 26
Na forum: 3126 dni
Posty: 4
Nick w MP: Mateusz

Piwa: 2

Respekt: 60

Dodaj sprawdzenie czy jest si? blisko poprzedniego w??a czyli nie tego, kt?ry ko?czy si? przy d?oniach peda. Nast?pnie musia?by? usun?? aktualn? cz??? w??a a t? poprzedni? przy??czy? do twoich d?oni, chocia? widz?, ?e przy??czanie si? samo wykona to wystarczy usun?? ostatniego w??a.



-- tutaj if - Je?li jeste? blisko w??a i jest on przedostatnim w??em w tabeli oraz tabela ma wi?cej ni? jeden w?? to usu? ostatniego w??a:

table.remove(firehose,numer ostatniego w??a czyli mo?na zrobi? #firehose)



Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
IgorPL222
Wysłany: 2018-04-02, 22:31


IgorPL222

LUA






Wiek: 26
Na forum: 3253 dni
Posty: 133
Nick w MP: mxgvr

Piwa: 746

Respekt: 55,3

Mateuusz, zastanawiam si? co robi? tutaj ?le, poniewa? to nie dzia?a.
Kod:

if firehose[i-1] then
        local xd = firehose[i]
        local xd2 = firehose[i-1]
        table.remove(firehose, xd.x, xd.y, xd.z, xd2.x, xd2.y, xd2.z)
        end


[ Dodano: 2018-04-03, 02:51 ]
Pomo?e kto??

Podpis
discord: mxgvr
Postaw piwo autorowi tego posta
 

 
Wysłany: 2018-04-03, 12:15


Mateuusz







Wiek: 26
Na forum: 3126 dni
Posty: 4
Nick w MP: Mateusz

Piwa: 2

Respekt: 60

Jak u?ywasz table.remove to jako drugi argument podajesz klucz w tabeli. W twoim wypadku tabela kluczuje si? numerycznie. Dlatego gdy chcesz usun?? z tabeli ostatni kawa?ek w??a to mo?esz jako drugiego argumentu u?y? ilo?? wpis?w w tabeli czyli:



table.remove(firehose,#firehose)

By bardziej wyt?umaczy? jak dzia?a table.remove to sp?jrz:

masz tabele

Tabela = {5,2,8,1,3}

u?ywaj?c table.remove(Tabela,3) usuniesz warto?? z tabeli o kluczu 3. W tym wypadku nie masz ?ci?le okre?lonych kluczy dlatego okre?laj? one si? automatycznie po kolei czyli warto?? 5 to klucz 1, warto?? 2 to klucz 2, warto?? 8 to klucz 3 etc.

po u?ycia table.remove(Tabela,3) tabela b?dzie wygl?da? tak

Tabela = {5,2,1,3}



Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
IgorPL222
Wysłany: 2018-04-03, 13:48


IgorPL222

LUA






Wiek: 26
Na forum: 3253 dni
Posty: 133
Nick w MP: mxgvr

Piwa: 746

Respekt: 55,3

Mateuusz, dzi?kuj? bardzo! Dzi?ki tobie zrozumia?em o co chodzi.

[ Dodano: 2018-04-03, 16:05 ]
Hmm, dalej nie dzia?a.

if firehose[i-1] then
          local b = firehose[i-1]
          local xd,yd,zd = getElementPosition(localPlayer)
          if getDistanceBetweenPoints3D(xd, yd, zd, b.x, b.y, b.z) < 1 then
            table.remove(firehose, #firehose)
        end
        end


[ Dodano: 2018-04-03, 16:10 ]
Dobra, ju? sobie poradzi?em, do zamkni?cia.

Podpis
discord: mxgvr
Postaw piwo autorowi tego posta
 

 
Tagi: wąż :: strażacki
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA 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