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

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


Tomakan

Człowiek






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

Piwa: 5

Respekt: 50

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 id, player 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", player, 255, 255, 255, true)
            end
            
            outputChatBox("#FF4053---------------------------------------------------------------------------------------", player, 255, 255, 255, true)
                
        end
    end, ogolnyczas, 0)
end

function start()
    
    local time = getRealTime()
    local minutes = time.minute
    local obliczonyczas = 60 - minutes
    local nowyobliczonyczas = obliczonyczas * 60 * 1000
    
    setTimer(function()    
        
        for id, player 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 ( player, kwota )
            
            outputChatBox("#FF4053------------------------------------WYP?ATA--------------------------------------", player, 255, 255, 255, true)
            outputChatBox("#FF808CNadesz?a godzina darowizny, otrzymujesz sum? #FFD1E0"..kwota.."$", player, 255, 255, 255, true)
            outputChatBox("#FF6373Pami?taj!#FF808C Czym wi?kszy level tym wi?cej dostajesz darowizny!", player, 255, 255, 255, true)
            
            if (flevel>levelup) then
                local nowylevel = level + 1
                setAccountData(acc, "flevel", 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", player, 255, 255, 255, true)
            end
            
            outputChatBox("#FF4053---------------------------------------------------------------------------------------", player, 255, 255, 255, true)
            
            setTimer(drugi, 1000, 1)
                
        end
    end, nowyobliczonyczas, 1)
    
end
addEventHandler("onResourceStart", root, start)


[ 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
 

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


Jurandovsky

Kurdebele






Wiek: 17
Na forum: 4979 dni
Posty: 915

Piwa: 2697

Respekt: 955,3
Respekt: 955,3Respekt: 955,3

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

Podpis
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
 

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


MeeShuffle

Programista/Grafik






Wiek: 33
Na forum: 4536 dni
Posty: 2758
Nick w MP: Shuffle

Piwa: 8578

Respekt: 535,3
Respekt: 535,3

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

Podpis

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

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


Tomakan

Człowiek






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

Piwa: 5

Respekt: 50

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 index, teamMate in ipairs( teamMates ) do
            outputChatBox("Za 15 sekund nast?pi respawn pojazd?w dla Twojej grupy.", teamMate, 255, 255, 255, true)
        end
        
        for index, teamMatedwa in ipairs( teamMatesdwa ) do
            outputChatBox("Za 15 sekund nast?pi respawn pojazd?w dla Twojej grupy.", teamMatedwa, 255, 255, 255, true)
        end
        
    end, dlateamow, 1)
    
    setTimer(function()    
        
        for id, player 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 ( player, kwota )
            
            outputChatBox("#FF4053------------------------------------WYP?ATA--------------------------------------", player, 255, 255, 255, true)
            outputChatBox("#FF808CNadesz?a godzina darowizny, otrzymujesz sum? #FFD1E0"..kwota.."$", player, 255, 255, 255, true)
            outputChatBox("#FF6373Pami?taj!#FF808C Czym wi?kszy level tym wi?cej dostajesz darowizny!", player, 255, 255, 255, true)
            
            if (flevel>levelup) then
                local nowylevel = level + 1
                setAccountData(acc, "flevel", 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", player, 255, 255, 255, true)
            end
            
            outputChatBox("#FF4053---------------------------------------------------------------------------------------", player, 255, 255, 255, true)
            
                setTimer(function()
        
                    local playerTeamPoli = getTeamFromName("Policja") 
                    local teamMates = getPlayersInTeam(playerTeamPoli)
        
                    local playerTeamSq = getTeamFromName("Squirrels") 
                    local teamMatesdwa = getPlayersInTeam(playerTeamSq)
            
                    -- nowe teamy next teams
        
                    for index, teamMate in ipairs( teamMates ) do
                        outputChatBox("Za 15 sekund nast?pi respawn pojazd?w dla Twojej grupy.", teamMate, 255, 255, 255, true)
                    end
        
                    for index, teamMatedwa in ipairs( teamMatesdwa ) do
                        outputChatBox("Za 15 sekund nast?pi respawn pojazd?w dla Twojej grupy.", teamMatedwa, 255, 255, 255, true)
                    end
        
                end, dlateamowtwo, 0)
            
            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 ( player, kwota )
            
                outputChatBox("#FF4053------------------------------------WYP?ATA--------------------------------------", player, 255, 255, 255, true)
                outputChatBox("#FF808CNadesz?a godzina darowizny, otrzymujesz sum? #FFD1E0"..kwota.."$", player, 255, 255, 255, true)
                outputChatBox("#FF6373Pami?taj!#FF808C Czym wi?kszy level tym wi?cej dostajesz darowizny!", player, 255, 255, 255, true)
            
 255, 255, true)
                end
            
                outputChatBox("#FF4053---------------------------------------------------------------------------------------", player, 255, 255, 255, true)
                
            end, ogolnyczas, 0)
                
        end
    end, nowyobliczonyczas, 1)
    
end
addEventHandler("onResourceStart", root, start)


[ 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





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