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

Wysłany: 2015-04-26, 15:52


Tomakan

Człowiek






Wiek: 26
Na forum: 4061 dni
Posty: 94
Nick w MP: Tomakan

Piwa: 5

Respekt: 50

Mojego ostatniego posta nikt si? nie podj??,
dotyczy? on wyp?at, poniewa? zrobi?em wyp?aty co godzin? poprzez onClientRender, poniewa? chodzi?o mi o wyp?aty zgodne z naszym zegarkiem, gdy 12 wyp?ata, gdy 18 wyp?ata, jednak jedna taka wyp?ata wykonuje si? oko?o 20 razy, poniewa? jest to event onClientRender, chc? to naprawi?, jakiego zdarzenia u?y?? Czy mo?e p?tli?
To kod:
addEventHandler("onClientRender"root,
    function()
        local time getRealTime() 
        local hours time.hour 
        local minutes time.minute 
        local seconds time.second
        
        if (hours==0) and (minutes==0) and (seconds==0then
            triggerServerEvent("update",localPlayer)
            
        elseif (hours==1) and (minutes==0) and (seconds==0then
            triggerServerEvent("update",localPlayer)
            
        elseif (hours==and (minutes==0)) and (seconds==0then
            triggerServerEvent("update",localPlayer)
            
        elseif (hours==3) and (minutes==0) and (seconds==0then
            triggerServerEvent("update",localPlayer)
            
        elseif (hours==4) and (minutes==0) and (seconds==0then
            triggerServerEvent("update",localPlayer)
            
        elseif (hours==5) and (minutes==0) and (seconds==0then
            triggerServerEvent("update",localPlayer)
            
        elseif (hours==6) and (minutes==0) and (seconds==0then
            triggerServerEvent("update",localPlayer)
            
        elseif (hours==7) and (minutes==0) and (seconds==0then
            triggerServerEvent("update",localPlayer)
            
        elseif (hours==8) and (minutes==0) and (seconds==0then
            triggerServerEvent("update",localPlayer)
            
        elseif (hours==9) and (minutes==0) and (seconds==0then
            triggerServerEvent("update",localPlayer)
            
        elseif (hours==10) and (minutes==0) and (seconds==0then
            triggerServerEvent("update",localPlayer)
            
        elseif (hours==11) and (minutes==0) and (seconds==0then
            triggerServerEvent("update",localPlayer)
            
        elseif (hours==12) and (minutes==0) and (seconds==0then
            triggerServerEvent("update",localPlayer)    
            
        elseif (hours==13) and (minutes==0) and (seconds==0then
            triggerServerEvent("update",localPlayer)    
            
        elseif (hours==14) and (minutes==0) and (seconds==0then
            triggerServerEvent("update",localPlayer)
            
        elseif (hours==15) and (minutes==0) and (seconds==0then
            triggerServerEvent("update",localPlayer)
            
        elseif (hours==16) and (minutes==0) and (seconds==0then
            triggerServerEvent("update",localPlayer)
            
        elseif (hours==17) and (minutes==0) and (seconds==0then
            triggerServerEvent("update",localPlayer)
            
        elseif (hours==18) and (minutes==0) and (seconds==0then
            triggerServerEvent("update",localPlayer)
            
        elseif (hours==19) and (minutes==0) and (seconds==0then
            triggerServerEvent("update",localPlayer)
            
        elseif (hours==20) and (minutes==0) and (seconds==0then
            triggerServerEvent("update",localPlayer)    
            
        elseif (hours==21) and (minutes==0) and (seconds==0then
            triggerServerEvent("update",localPlayer)
            
        elseif (hours==22) and (minutes==0) and (seconds==0then
            triggerServerEvent("update",localPlayer)
            
        elseif (hours==23) and (minutes==0) and (seconds==0then
            triggerServerEvent("update",localPlayer)        
        end        
    end
)


Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-04-26, 15:54


KukiX







Wiek: 34
Na forum: 6718 dni
Posty: 567

Piwa: 17560

Respekt: 160
Respekt: 160Respekt: 160

U?yj funkcji setTimer.
onClientRender nie u?ywa si? do takich rzeczy.

Podpis
Moje skrypty MTA:
¤PlayDM
¤Mini-Games v0.2
Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-04-26, 16:09


Tomakan

Człowiek






Wiek: 26
Na forum: 4061 dni
Posty: 94
Nick w MP: Tomakan

Piwa: 5

Respekt: 50

Nie mog? u?y? setTimer, bo wyp?aty maj? by? r?wno co godzin?, a gdy odpal? serwer o 18:31 to wyp?ata b?dzie o 19:31, dlatego tam jest tyle warunk?w.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-04-26, 21:53


zabijaka2000







Wiek: 26
Na forum: 4983 dni
Posty: 147
Nick w MP: aleks556

Piwa: 13

Respekt: 80

Ostrzeżeń: 20%
Ustawiasz timer, kt?ry wykonuje si? co minut? i dajesz te warunki na t? r?wn? godzin?.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-04-27, 13:41


MeeShuffle

Programista/Grafik






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

Piwa: 8575

Respekt: 535,3
Respekt: 535,3

sekunda=60000
godzina=sekunda*60
setTimer(funkcja,godzina,0)


Po co warunki?

Podpis

https://shufflecode.pl
Static Codes and Graphics - Join our discord!
Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-04-27, 14:28


Piorun







Wiek: 32
Na forum: 6712 dni
Posty: 1837
Nick w MP: Piorun

Piwa: 516

Respekt: 480,7
Respekt: 480,7

To jak odpalisz serwer o 18:30 to oblicz ile czasu zosta?o do pe?nej godziny, ustaw taki timer, a potem jak on si? wykona ustaw timer cykliczny co 60000 ms. Mo?e przyk?ad:


addEventHandler("onResourceStart",resourceRoot,function()
local rt getRealTime()
setTimer(function()
-- tutaj kolejny setTimer tylko z odpowiednim parametrem
end,TUTAJ_WRZUCASZ_ODPOWIEDNIE_OBLICZENIE_CZASU,1)
end


W tym TUTAJ_WRZUCASZ_ODPOWIEDNIE_OBLICZENIE CZASU wrzucasz r??nic? mi?dzy czasem 00, a aktualn? godzin? (mam na my?li zar?wno minuty jak i sekundy). Czyli powiedzmy jak odpalasz o 18:30:33 to do 19:00:00 masz 30:27. Przeliczasz na ms i masz.

Podpis
Możesz mnie znaleźć na: Facebook
Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-04-27, 17:30


Tomakan

Człowiek






Wiek: 26
Na forum: 4061 dni
Posty: 94
Nick w MP: Tomakan

Piwa: 5

Respekt: 50

No dobra, wiem ?e mog? to wyliczy? w ten spos?b,

time.minute 

xy 60 x

Tylko ?e to ma sw?j minus, bo ju? si? pogubi?em, bo to tylko oblicza ile minut zosta?o do nast?pnej godziny, ale nie wiem jak zsynchronizowa? to z aktualn? godzin?. :|

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-04-27, 17:33


Piorun







Wiek: 32
Na forum: 6712 dni
Posty: 1837
Nick w MP: Piorun

Piwa: 516

Respekt: 480,7
Respekt: 480,7

Na kij Ci godzina :D ? Po prostu jak zegar dobije do pe?nej godziny (oboj?tnie kt?rej) to funkcja podpi?ta do timera si? wykona. Tyle.

Podpis
Możesz mnie znaleźć na: Facebook
Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-04-27, 17:44


Tomakan

Człowiek






Wiek: 26
Na forum: 4061 dni
Posty: 94
Nick w MP: Tomakan

Piwa: 5

Respekt: 50

local x time.minute 
local xy 60 x
local xy xy 1000


No dobra, no to tak, czyli to Up, +

addEventHandler("onResourceStart",resourceRoot,function()

local time getRealTime()
local x time.minute 
local xy 60 x
local xy xy 1000

    setTimer(function()
        setTimer(function()
            triggerServerEvent() -- To tak ma wygl?da?? :x
        end,5000,1)    
    end,xy,1)

end


I jak zrobi? by to si? np wykonywa?o cyklicznie,

[ Dodano: 2015-04-27, 17:45 ]
blee w sumie ten timer w ?rodku nie potrzebny

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-04-28, 00:53


Tey







Wiek: 31
Na forum: 4876 dni
Posty: 155
Nick w MP: l0nger

Piwa: 280

Respekt: 193
Respekt: 193Respekt: 193

Nie lepiej skonstruowa? funkcje tak, ze timer wykonuje sie co minute, a w tej funkcji pobierana i sprawdzana jest minuta jezeli 0 to inaczej pelna godzina po czym wykonujemy kod dalej?


setTimer(function()
    local time=getRealTime()
    if time.minute==and time.second==0 then
        -- dla przykladu trigger dla wszystkich graczy
        triggerClientEvent('wyplata'root) 
    end
end60*10000)


@Down Teraz powinno byc ok. :P

Ostatnio zmieniony przez Tey 2015-04-28, 12:51, w całości zmieniany 1 raz  
Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-04-28, 08:35


Piorun







Wiek: 32
Na forum: 6712 dni
Posty: 1837
Nick w MP: Piorun

Piwa: 516

Respekt: 480,7
Respekt: 480,7

Co si? stanie wg. twojego algosa jak uruchomisz serwer o powiedzmy 19:59:45 ?
Funkcja wykona si? dopiero o 20:00:45. Niby ma?a r??nica ale wiele os?b si? zastanowi :D .

Podpis
Możesz mnie znaleźć na: Facebook
Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-04-28, 22:14


Tomakan

Człowiek






Wiek: 26
Na forum: 4061 dni
Posty: 94
Nick w MP: Tomakan

Piwa: 5

Respekt: 50

Znaczy, okej, tylko chcia?bym wiedzie? jak zrobi? to by po wykonaniu jednej wyp?aty odliczy?o czas do drugiej, mam da? return? i zn?w do tej funkcji?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-04-29, 18:41


Piorun







Wiek: 32
Na forum: 6712 dni
Posty: 1837
Nick w MP: Piorun

Piwa: 516

Respekt: 480,7
Respekt: 480,7

Nie, po prostu w funkcji podpi?tej do tego timera deklarujesz nowy, cykliczny (czyli taki, ktory sie bedzie powtarzal w nieskonczono??).

Podpis
Możesz mnie znaleźć na: Facebook
Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-04-29, 22:24


Tomakan

Człowiek






Wiek: 26
Na forum: 4061 dni
Posty: 94
Nick w MP: Tomakan

Piwa: 5

Respekt: 50

M?g?by? da? przyk?ad?
Przecie? to by wygl?da?o w ten spos?b,

function x()
  setTimer(function()
    setTimer(function()
     -- Przecie musiabym ty wypisywato 24 razyale wiem ?e mo?na to inaczej zrobiale jak ;x
    endtutenwynikse1)
  endtutenwynikse1)
end


Staram si? to ogarn?? uwierz mi ale kompletnie nie wiem jak zrobi? to by to odtwarza?o si? w niesko?czono??, gdybym wiedzia? tego tematu by nie by?o, og??em samo pytanie dotyczy?o r?wnie? tego.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-04-29, 23:20


Piorun







Wiek: 32
Na forum: 6712 dni
Posty: 1837
Nick w MP: Piorun

Piwa: 516

Respekt: 480,7
Respekt: 480,7

Prawie dobrze tyle, ?e usu? w 2 timerze jedynk?, kt?ra oznacza, ?e timer ma si? powt?rzy? tylko raz.

Podpis
Możesz mnie znaleźć na: Facebook
Postaw piwo autorowi tego posta
 

 
Tagi: pętla :: warunek
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






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