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

Wysłany: 2020-07-13, 12:04


MrVip615

witam






Wiek: 22
Na forum: 4307 dni
Posty: 167
Nick w MP: ramzes

Piwa: 207

Respekt: 85,3

Czesc,


Zrobilem cos takiego:

local screenWscreenH guiGetScreenSize()

addEventHandler('onClientRender',root,function()
    dxDrawLine((screenW 0.7757) - 1, (screenH 0.2331) - 1, (screenW 0.7757) - 1screenH 0.2630tocolor(000254), 1false)
    dxDrawLine(screenW 0.9507, (screenH 0.2331) - 1, (screenW 0.7757) - 1, (screenH 0.2331) - 1tocolor(000254), 1false)
    dxDrawLine((screenW 0.7757) - 1screenH 0.2630screenW 0.9507screenH 0.2630tocolor(000254), 1false)
    dxDrawLine(screenW 0.9507screenH 0.2630screenW 0.9507, (screenH 0.2331) - 1tocolor(000254), 1false)
    dxDrawRectangle(screenW*0.7757,screenH*0.2331,screenW*0.1,screenH*0.0299,tocolor(0,100,255,255),false)
    dxDrawRectangle(screenW 0.7757screenH 0.2331screenW 0.1750screenH 0.0299tocolor(0000), false)
end)


jak mozecie zauwazyc jest to w relatywnym skalowaniu, mam problem odnosnie obliczania. Chcialbym zrobic aby ten pasek sie uzupelnial (potrzebne do skryptu, wlasciwie nie potrzebuje tego, zeby ten skrypt dzialal, ale dzieki temu bedzie to dosyc ladnie sie prezentowac).
Pierwsze dxDrawRectangle to ejst ten prostokat ktory ma uzupelniac ten prostokat. Nie wiem jak mam obliczyc by ten prostokat zaczynal sie w odpowiednim miejscu (na poczatku tego drugiego), lub zaczynal np. w srodku, i jednoczesnie, zeby nie byl na caly prostokat tylko na okreslona dlugosc. Mam nadzieje, ze napisalem to w miare zrozumiale.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-07-13, 12:43


Hemoglobina

Tylko Hema






Wiek: 29
Na forum: 3397 dni
Posty: 89
Nick w MP: Answer

Piwa: 1386

Respekt: 90

W dxDrawRectangle 3 oraz 4 argument to szeroko?? i wysoko?c, 1 i 2 argument to po?o?enie na osi X oraz po?o?enie na osi Y, jako 3 i 4 argument podajesz po?o?enia, nie widz?, ?eby? robi? tam jak?? animacje wi?c po prostu wpisz tam szeroko?? i wysoko?? np. 100x50, sprawd? jak dok?adnie dzia?a skalowanie relatywne i dostosuj pod szeroko?? i wysok??.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-07-13, 12:48


MrVip615

witam






Wiek: 22
Na forum: 4307 dni
Posty: 167
Nick w MP: ramzes

Piwa: 207

Respekt: 85,3

"Hemoglobina" napisał/a:

W dxDrawRectangle 3 oraz 4 argument to szeroko?? i wysoko?c, 1 i 2 argument to po?o?enie na osi X oraz po?o?enie na osi Y, jako 3 i 4 argument podajesz po?o?enia, nie widz?, ?eby? robi? tam jak?? animacje wi?c po prostu wpisz tam szeroko?? i wysoko?? np. 100x50, sprawd? jak dok?adnie dzia?a skalowanie relatywne i dostosuj pod szeroko?? i wysok??.

Wlasnie, co do animacji to mialem w planach ja zrobic :P w kazdym razie dzieki za pomoc, jak bede mial z czyms problem to napisze tu, badz powiem, ze temat do zamkniecia.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-07-13, 16:05


MeeShuffle

Programista/Grafik






Wiek: 32
Na forum: 4395 dni
Posty: 2758
Nick w MP: Shuffle

Piwa: 8575

Respekt: 535,3
Respekt: 535,3

Zale?y co ma by? pod to podpi?te, czy zwyczajne ?adowanie np zasobu czyli pasek progressu czy np pasek ?ycia.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-07-13, 17:38


MrVip615

witam






Wiek: 22
Na forum: 4307 dni
Posty: 167
Nick w MP: ramzes

Piwa: 207

Respekt: 85,3

"Shuffle" napisał/a:

Zale?y co ma by? pod to podpi?te, czy zwyczajne ?adowanie np zasobu czyli pasek progressu czy np pasek ?ycia.


Chce zrobic skrypt na kondycje, ten pasek ma pokazywac ile kondycji graczowi zostalo (ma byc to animacja, ze sie zapelnia pasek wraz z uplywem czasu, i gdy bedzie 100% to bedzie animacja jak pasek spada)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-07-13, 18:00


MeeShuffle

Programista/Grafik






Wiek: 32
Na forum: 4395 dni
Posty: 2758
Nick w MP: Shuffle

Piwa: 8575

Respekt: 535,3
Respekt: 535,3

Mo?e nie b?dzie to optymalne ale w evencie onClientRender je?li podepniesz nie b?dziesz potrzebowa? ?adnej animacji, samo za siebie b?dzie dzia?a? :D

Pisz?c kiedy? takie co? zrozumia?em ?e jednak w szkole matematyka do czego? si? przyda?a. Oblicz g??wn? warto?? jako 100%, nast?pnie podziel j? przez aktualny stan kondycji.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-07-13, 20:54


MrVip615

witam






Wiek: 22
Na forum: 4307 dni
Posty: 167
Nick w MP: ramzes

Piwa: 207

Respekt: 85,3

"Shuffle" napisał/a:

Mo?e nie b?dzie to optymalne ale w evencie onClientRender je?li podepniesz nie b?dziesz potrzebowa? ?adnej animacji, samo za siebie b?dzie dzia?a? :D

Pisz?c kiedy? takie co? zrozumia?em ?e jednak w szkole matematyka do czego? si? przyda?a. Oblicz g??wn? warto?? jako 100%, nast?pnie podziel j? przez aktualny stan kondycji.

Wlasnie zrobilem juz cos takiego (tzn. Ogarnalme sobie ten pasek odnosnie kazdego procenta, wystarczy jedna liczbe zmienic), tylko jak proponujesz to zrobic? Nie pokaze teraz jak to wyglada bo nie mam dostepu do komputera na ten moment.

A,i zrobilem tot ak poki co, ze kazdemu graczowi wyswietla pasek, a jesli ktos biega to uzupelnia mu pasek osobno (jest to robione osobna funkcja dxDrawRectangle)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-07-13, 21:32


MeeShuffle

Programista/Grafik






Wiek: 32
Na forum: 4395 dni
Posty: 2758
Nick w MP: Shuffle

Piwa: 8575

Respekt: 535,3
Respekt: 535,3

No nie widz? opcji ?eby? zrobi? to inaczej. Napisa??m ci wy?ej jak to zrobi?

Masz dzia?aj?cy przyk?ad, kod opiera si? na procentach, czyli kondycja to maksimum 100%, wi?c zmienna kondycja max 100 min 0. Sprawdz jak wyglada teraz skalowanie bo nie testowa?em tego.


local screenWscreenH guiGetScreenSize()

kondycja=80

addEventHandler('onClientRender',root,function()
    dxDrawLine((screenW 0.7757) - 1, (screenH 0.2331) - 1, (screenW 0.7757) - 1screenH 0.2630tocolor(000254), 1false)
    dxDrawLine(screenW 0.9507, (screenH 0.2331) - 1, (screenW 0.7757) - 1, (screenH 0.2331) - 1tocolor(000254), 1false)
    dxDrawLine((screenW 0.7757) - 1screenH 0.2630screenW 0.9507screenH 0.2630tocolor(000254), 1false)
    dxDrawLine(screenW 0.9507screenH 0.2630screenW 0.9507, (screenH 0.2331) - 1tocolor(000254), 1false)
    if kondycja>100 then
        kondycja=100
    end
    x=screenW 1.75/1000*kondycja
    dxDrawRectangle(screenW 0.7757screenH 0.2331xscreenH 0.0299,tocolor(0,100,255,255),false)
    dxDrawRectangle(screenW 0.7757screenH 0.2331screenW 0.1screenH 0.0299tocolor(0000), false)
end)


Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-07-14, 21:20


MrVip615

witam






Wiek: 22
Na forum: 4307 dni
Posty: 167
Nick w MP: ramzes

Piwa: 207

Respekt: 85,3

Wydaje mi sie, ze kod mam ogarniety (musialem na nowo go pisac bo zrabalem pare warunkow), lecz warunek getPedControlState cos mi nie chce dzialac

if getPedControlState(localPlayer,'sprint')=='true' then

        if not getElementData(localPlayer,'player:fitness'then
            setElementData(localPlayer,'player:fitness',0)
        end

        fill setTimer(function() -- poczatek timera 'fill'
            local fit getElementData(localPlayer,'player:fitness')
            if fit<100 then
                setElementData(localPlayer,'player:fitness',getElementData(localPlayer,'player:fitness')+1)
            else
                toggleControl('sprint',false)
                clearingFunction=setTimer(function() -- POCZATEK TIMERA 'clearingFunction'
                    local fit=getElementData(localPlayer,'player:fitness')
                    if fit==0 then
                        toggleControl('sprint',true)
                        killTimer(clearingFunction)
                    elseif fit<0 then
                        toggleControl('sprint',true)
                        setElementData(localPlayer,'player:fitness',0)
                        killTimer(clearingFunction)
                    else
                        setElementData(localPlayer,'player:fitness',fit-1)
                    end
                end,200,getElementData(localPlayer,'player:fitness')) -- KONIEC TIMERA 'clearingFunction'

                killTimer(fill)
            end
        end,100,0) -- koniec timera 'fill'
    else
        if checkFitness('==',0then
            toggleControl('sprint',true)
        end
    end


[ Dodano: 2020-07-14, 21:21 ]
0 bledow w db3

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-07-14, 21:48


MeeShuffle

Programista/Grafik






Wiek: 32
Na forum: 4395 dni
Posty: 2758
Nick w MP: Shuffle

Piwa: 8575

Respekt: 535,3
Respekt: 535,3

if getPedControlState(localPlayer,"sprint"then


Spr?buj w ten spos?b

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-07-14, 21:52


MrVip615

witam






Wiek: 22
Na forum: 4307 dni
Posty: 167
Nick w MP: ramzes

Piwa: 207

Respekt: 85,3

"Shuffle" napisał/a:

if getPedControlState(localPlayer,"sprint"then


Spr?buj w ten spos?b


Juz probowalem, tez nic.

Debugscript caly czas czysty, 0 bledow/ostrzezen.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-07-14, 21:57


MeeShuffle

Programista/Grafik






Wiek: 32
Na forum: 4395 dni
Posty: 2758
Nick w MP: Shuffle

Piwa: 8575

Respekt: 535,3
Respekt: 535,3

Czy oby na pewno ten warunek ci blokuje kod?

Wstaw przyk?adow? linijk? po tym warunku np outputChatBox("test") i sprawd? czy ci si? wy?wietli

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-07-14, 22:07


MrVip615

witam






Wiek: 22
Na forum: 4307 dni
Posty: 167
Nick w MP: ramzes

Piwa: 207

Respekt: 85,3

"Shuffle" napisał/a:

Czy oby na pewno ten warunek ci blokuje kod?

Wstaw przyk?adow? linijk? po tym warunku np outputChatBox("test") i sprawd? czy ci si? wy?wietli

sprawdzalem tak, na discordzie znalazlem pomoc. Problemem bylo to, ze nie sprintuje sie natychmiastowo, musialem ustawic timer na 250 ms zanim wykona sie to co ma sie wykonac, nie wiem czy to jest idealny czas ale nie zmienia dzialania skryptu takze nie bede sei tym przejmowac.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-07-14, 22:35


MeeShuffle

Programista/Grafik






Wiek: 32
Na forum: 4395 dni
Posty: 2758
Nick w MP: Shuffle

Piwa: 8575

Respekt: 535,3
Respekt: 535,3

Dzia?ania nie, ale optymalno?? i dalsze dzia?anie tego skryptu z innymi mo?e kolidowa?. Po co timer? To znak, ?e jaki? inny skrypt blokuje ci kod. Spr?buj odpali? go bez tego timera ale jako jedyny skrypt na serwerze, bez innych

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-07-14, 22:54


MrVip615

witam






Wiek: 22
Na forum: 4307 dni
Posty: 167
Nick w MP: ramzes

Piwa: 207

Respekt: 85,3

"Shuffle" napisał/a:

Dzia?ania nie, ale optymalno?? i dalsze dzia?anie tego skryptu z innymi mo?e kolidowa?. Po co timer? To znak, ?e jaki? inny skrypt blokuje ci kod. Spr?buj odpali? go bez tego timera ale jako jedyny skrypt na serwerze, bez innych


Nie zrozumiales chyba. Chodzi o to, ze mam warunek do spelnienia, czy gracz sprintuje (jesli nie to kod sie nie wykona), a animacja i ogolnie sprint maja jakis timer ustawiony odgornie, w sensie nie zaczyna sie sprintowac od razu tylko po krotkiej chwili, dlatego tez musze zrobic timer zanim bede sprawdzac czy ktos sprintuje.

Postaw piwo autorowi tego posta
 

 
Tagi: uzupelnianie :: prostokatu :: (dxdrawrectangle)
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






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