Witamy na GTAOnline Obecny czas to 2018-08-22, 08:00 Użytkowników: 75732
Strona główna | Użytkownicy | Grupy | Faq | Regulamin | Zaloguj


Poprzedni temat :: Następny temat
Kilka wypłat naraz.
Autor Wiadomość

Tomakan 
Człowiek





Informacje
Nick w MP: Tomakan
Wiek: 18
Na forum: 1218 dni
Posty: 95
Piwa: 5
Respekt: 50

Wysłany: 2015-05-21, 20:05   Kilka wypłat naraz.



Kolejny problem, emm jak to napisać...
Zrobiłem taki prowizoryczny system wypłat, by były jako tako.
Jednak system nie działa poprawnie, gdy odczekam do pełnej godziny, która się po prostu odliczy, robi się kilka wypłat na raz. Może to przez pętlę, ale muszę je do końca opanować, nie umiem tego naprawić. Ogółem myślałem by zrobić to wszystko w jednej funkcji, jeżeli będę musiał to tak zrobię.

sside;
levelup 23
ogolnyczas 60 60 1000

function drugi()
    setTimer(function()    
        
        for idplayer in ipairs(getElementsByType("player")) do
            
            local acc getPlayerAccount(player)
            local level getAccountData(acc"level")
            local flevel getAccountData(acc"flevel")
            local livedhours getAccountData(acc"livedhours")
            
            lovel", 0)
                setAccountData(acc, "level", nowylevel)
                outputChatBox("#FF8400Awansujesz na następny poziom, #FFD1E0"..nowylevel.."!", player, 255, 255, 255, true)
            else
                local nowyflevel flevel 1
                setAccountData(acc"flevel"nowyflevel)
                outputChatBox("#FF0055Do następnego poziomu brakuje Ci: #FF808C"..nowyflevel.."/24"player255255255true)
            end
            
            outputChatBox("#FF4053---------------------------------------------------------------------------------------"player255255255true)
                
        end
    endogolnyczas0)
end

function start()
    
    local time getRealTime()
    local minutes time.minute
    local obliczonyczas 60 minutes
    local nowyobliczonyczas obliczonyczas 60 1000
    
    setTimer(function()    
        
        for idplayer in ipairs(getElementsByType("player")) do
            local acc getPlayerAccount(player)
            local level getAccountData(acc"level")
            local flevel getAccountData(acc"flevel")
            local livedhours getAccountData(acc"livedhours")
            
            local kwota math.random(5000,10000) * level
    
            local newhours livedhours 1
            setAccountData(acc"livedhours"newhours)
            
            givePlayerMoney playerkwota )
            
            outputChatBox("#FF4053------------------------------------WYPŁATA--------------------------------------"player255255255true)
            outputChatBox("#FF808CNadeszła godzina darowizny, otrzymujesz sumę #FFD1E0"..kwota.."$"player255255255true)
            outputChatBox("#FF6373Pamiętaj!#FF808C Czym większy level tym więcej dostajesz darowizny!"player255255255true)
            
            if (flevel>levelupthen
                local nowylevel level 1
                setAccountData(acc"flevel"0)
                setAccountData(acc"level"nowylevel)
                outputChatBox("#FF8400Awansujesz na następny poziom, #FFD1E0"..nowylevel.."!"player255255255true)
            else
                local nowyflevel flevel 1
                setAccountData(acc"flevel"nowyflevel)
                outputChatBox("#FF0055Do następnego poziomu brakuje Ci: #FF808C"..nowyflevel.."/24"player255255255true)
            end
            
            outputChatBox("#FF4053---------------------------------------------------------------------------------------"player255255255true)
            
            setTimer(drugi10001)
                
        end
    endnowyobliczonyczas1)
    
end
addEventHandler("onResourceStart"rootstart)


[ Dodano: 2015-05-21, 20:07 ]
A może ta pętla jest źle zbudowana, może powinna wyglądać tak?
for k,v in ipairs getElementsByType "player" )) do


Ostatnio zmieniony przez Tomakan 2015-05-23, 15:10, w całości zmieniany 1 raz  
Postaw piwo autorowi tego posta
 

Jurandovsky 
Kurdebele





Informacje
Wiek: 9
Na forum: 1995 dni
Posty: 923
Piwa: 2341
Respekt: 945,3
Respekt: 945,3Respekt: 945,3

Wysłany: 2015-05-21, 21:25   



To ze w petli jest id, player czy k,v to nie ma znaczenia... Mozesz tam dac

KLDFASJDLKJA, LSKFJDASKLJA i to bedzie to samo co k, v bo to sa zmienne xd

_________________
Jedyny kontakt ze mną to PW forum

Kod:


local noobs = getElementsByTitle("player", "Programista LUA")
for k, v in ipairs(noobs) do
outputChatBox("Bez mózgu jest użytkownik o nicku: "..getPlayerName(v), root)
destroyElement(v)
end
Postaw piwo autorowi tego posta
 

Shuffle 
Programista LUA





Informacje
Nick w MP: Shuffle
Wiek: 26
Na forum: 1551 dni
Posty: 2074
Piwa: 5141
Respekt: 345,3
Respekt: 345,3Respekt: 345,3Respekt: 345,3

Wysłany: 2015-05-21, 21:43   



Może dlatego, że masz 2 funkcje? :)

_________________

Oferuję siebie jako nisko płatnego skryptera. Moje możliwości to:
-ruchome elementy 3D
-MySQL
-XML
-SQLite
-animacyjne napisy na ekranie
-wysoka jakość skryptów robionych często tabelowo
-pełna optymalność
Kontakt :
a)Skype-"Zamknij.tfasz"
Cennik zależny od ilości wykonanego kodu.



Postaw piwo autorowi tego posta
 

Tomakan 
Człowiek





Informacje
Nick w MP: Tomakan
Wiek: 18
Na forum: 1218 dni
Posty: 95
Piwa: 5
Respekt: 50

Wysłany: 2015-05-21, 23:00   



Ale funkcja ma się wykonać tylko raz, dwie bo za duży śmietnik w jednej. Jak dziś zrobię to co miałem zrobić to jeszcze zobaczę czy działa jak wcisnę to w jedną funkcję.

[ Dodano: 2015-05-22, 22:08 ]
To nowy kod, jednak problem się powtarza, pierwszy jednorazowy timer wykonuje się prawidłowo, ale kolejny timer cykliczny odtwarza się kilkanaście razy, za jednym razem nabiłem sobie połowę godzin do następnego levela.
levelup 23
ogolnyczas 60 60 1000

function start()
    
    local time getRealTime()
    local minutes time.minute
    local obliczonyczas 60 minutes
    local nowyobliczonyczas obliczonyczas 60 1000
    local dlateamow nowyobliczonyczas 15000
    local dlateamowtwo 60 60 1000 15000
    
    setTimer(function()
        
        local playerTeamPoli getTeamFromName("Policja") 
        local teamMates getPlayersInTeam(playerTeamPoli)
        
        local playerTeamSq getTeamFromName("Squirrels") 
        local teamMatesdwa getPlayersInTeam(playerTeamSq)
            
        -- nowe teamy next teams
        
        for indexteamMate in ipairsteamMates ) do
            outputChatBox("Za 15 sekund nastąpi respawn pojazdów dla Twojej grupy."teamMate255255255true)
        end
        
        for indexteamMatedwa in ipairsteamMatesdwa ) do
            outputChatBox("Za 15 sekund nastąpi respawn pojazdów dla Twojej grupy."teamMatedwa255255255true)
        end
        
    enddlateamow1)
    
    setTimer(function()    
        
        for idplayer in ipairs(getElementsByType("player")) do
            local acc getPlayerAccount(player)
            local level getAccountData(acc"level")
            local flevel getAccountData(acc"flevel")
            local livedhours getAccountData(acc"livedhours")
            
            local kwota math.random(2000,5000) * level
    
            local newhours livedhours 1
            setAccountData(acc"livedhours"newhours)
            
            givePlayerMoney playerkwota )
            
            outputChatBox("#FF4053------------------------------------WYPŁATA--------------------------------------"player255255255true)
            outputChatBox("#FF808CNadeszła godzina darowizny, otrzymujesz sumę #FFD1E0"..kwota.."$"player255255255true)
            outputChatBox("#FF6373Pamiętaj!#FF808C Czym większy level tym więcej dostajesz darowizny!"player255255255true)
            
            if (flevel>levelupthen
                local nowylevel level 1
                setAccountData(acc"flevel"0)
                setAccountData(acc"level"nowylevel)
                outputChatBox("#FF8400Awansujesz na następny poziom, #FFD1E0"..nowylevel.."!"player255255255true)
            else
                local nowyflevel flevel 1
                setAccountData(acc"flevel"nowyflevel)
                outputChatBox("#FF0055Do następnego poziomu brakuje Ci: #FF808C"..nowyflevel.."/24"player255255255true)
            end
            
            outputChatBox("#FF4053---------------------------------------------------------------------------------------"player255255255true)
            
                setTimer(function()
        
                    local playerTeamPoli getTeamFromName("Policja") 
                    local teamMates getPlayersInTeam(playerTeamPoli)
        
                    local playerTeamSq getTeamFromName("Squirrels") 
                    local teamMatesdwa getPlayersInTeam(playerTeamSq)
            
                    -- nowe teamy next teams
        
                    for indexteamMate in ipairsteamMates ) do
                        outputChatBox("Za 15 sekund nastąpi respawn pojazdów dla Twojej grupy."teamMate255255255true)
                    end
        
                    for indexteamMatedwa in ipairsteamMatesdwa ) do
                        outputChatBox("Za 15 sekund nastąpi respawn pojazdów dla Twojej grupy."teamMatedwa255255255true)
                    end
        
                enddlateamowtwo0)
            
            setTimer(function()
                
                local acc getPlayerAccount(player)
                local level getAccountData(acc"level")
                local flevel getAccountData(acc"flevel")
                local livedhours getAccountData(acc"livedhours")
            
                local kwota math.random(2000,5000) * level
    
                local newhours livedhours 1
                setAccountData(acc"livedhours"newhours)
            
                givePlayerMoney playerkwota )
            
                outputChatBox("#FF4053------------------------------------WYPŁATA--------------------------------------"player255255255true)
                outputChatBox("#FF808CNadeszła godzina darowizny, otrzymujesz sumę #FFD1E0"..kwota.."$"player255255255true)
                outputChatBox("#FF6373Pamiętaj!#FF808C Czym większy level tym więcej dostajesz darowizny!"player255255255true)
            
 255255true)
                end
            
                outputChatBox("#FF4053---------------------------------------------------------------------------------------"player255255255true)
                
            endogolnyczas0)
                
        end
    endnowyobliczonyczas1)
    
end
addEventHandler("onResourceStart"rootstart)


[ Dodano: 2015-05-23, 15:09 ]
sprawa rozwiązana, trzeba było uwzględnić resourceRoot

Postaw piwo autorowi tego posta
 
Tagi: kilka :: wypłat :: naraz.
Anonymous



Dołaczył: Wczoraj 0:00
Posty: 1
Skad: google.com


Anonymous Koniecznie zajrzyj na:







Wyświetl posty z ostatnich:   
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
Wersja do druku

Skocz do:  


phpBB by Przemo modified by xXx 2003-2016

Template GTAONLINE created by gtaonline.pl



Strona wygenerowana w 0,18 sekundy. Zapytań do SQL: 19