Jump to content

[Ajuda/Duvida] Simples


Recommended Posts

Olá galera, estou querendo fazer um sistema que dá dinheiro aos players a cada 1 hora, como se fosse um payday, porem existem 5 grupos no acl, 5 ranks que vao do 1 até o 5, e gostaria de fazer quanto maior o rank, mais valor ele recebe por hora.

Esses valores sao randomicos, mas estou mais preocupado com os if's, ir na tentativa e ir testando pode demorar mto pois meu pc é lento, creio que isso é coisa simples para voces aqui do forum, poderiam me dizer se isso está correto, se funcionaria, ou senao, o que está errado? Muito obrigado.

  
setTimer(function () 
if isObjectInACLGroup("user." .. getAccountName(getPlayerAccount(source)), aclGetGroup("Rank1")) then 
    local amount = math.random(50,300) 
    for id, player in ipairs(getElementsByType("player")) do 
    givePlayerMoney ( player, amount ) 
    outputChatBox ( "** Obrigado por jogar no servidor da Intinity Gaming **", player, 255, 255, 255, true ) 
    outputChatBox ( "** Seu rank atual é:#00FF00 1 **", player, 255, 255, 255, true ) 
    outputChatBox ( "** Voce recebeu : #00FF00$"..amount.."#FFFFFF **", player, 255, 255, 255, true ) 
    end 
else if isObjectInACLGroup("user." .. getAccountName(getPlayerAccount(source)), aclGetGroup("Rank2")) then 
    local amount = math.random(300,600) 
    for id, player in ipairs(getElementsByType("player")) do 
    givePlayerMoney ( player, amount ) 
    outputChatBox ( "** Obrigado por jogar no servidor da Intinity Gaming **", player, 255, 255, 255, true ) 
    outputChatBox ( "** Seu rank atual é:#00FF00 1 **", player, 255, 255, 255, true ) 
    outputChatBox ( "** Voce recebeu : #00FF00$"..amount.."#FFFFFF **", player, 255, 255, 255, true ) 
    end 
else if isObjectInACLGroup("user." .. getAccountName(getPlayerAccount(source)), aclGetGroup("Rank3")) then 
    local amount = math.random(600,1000) 
    for id, player in ipairs(getElementsByType("player")) do 
    givePlayerMoney ( player, amount ) 
    outputChatBox ( "** Obrigado por jogar no servidor da Intinity Gaming **", player, 255, 255, 255, true ) 
    outputChatBox ( "** Seu rank atual é:#00FF00 1 **", player, 255, 255, 255, true ) 
    outputChatBox ( "** Voce recebeu : #00FF00$"..amount.."#FFFFFF **", player, 255, 255, 255, true ) 
    end 
else if isObjectInACLGroup("user." .. getAccountName(getPlayerAccount(source)), aclGetGroup("Rank4")) then 
    local amount = math.random(1000,1500) 
    for id, player in ipairs(getElementsByType("player")) do 
    givePlayerMoney ( player, amount ) 
    outputChatBox ( "** Obrigado por jogar no servidor da Intinity Gaming **", player, 255, 255, 255, true ) 
    outputChatBox ( "** Seu rank atual é:#00FF00 1 **", player, 255, 255, 255, true ) 
    outputChatBox ( "** Voce recebeu : #00FF00$"..amount.."#FFFFFF **", player, 255, 255, 255, true ) 
    end 
else if isObjectInACLGroup("user." .. getAccountName(getPlayerAccount(source)), aclGetGroup("Rank5")) then 
    local amount = math.random(1500,2000) 
    for id, player in ipairs(getElementsByType("player")) do 
    givePlayerMoney ( player, amount ) 
    outputChatBox ( "** Obrigado por jogar no servidor da Intinity Gaming **", player, 255, 255, 255, true ) 
    outputChatBox ( "** Seu rank atual é:#00FF00 1 **", player, 255, 255, 255, true ) 
    outputChatBox ( "** Voce recebeu : #00FF00$"..amount.."#FFFFFF **", player, 255, 255, 255, true ) 
    end 
else 
    local amount = math.random(1,50) 
    for id, player in ipairs(getElementsByType("player")) do 
    givePlayerMoney ( player, amount ) 
    outputChatBox ( "** Obrigado por jogar no servidor da Intinity Gaming **", player, 255, 255, 255, true ) 
    outputChatBox ( "** Seu rank atual é:#00FF00 1 **", player, 255, 255, 255, true ) 
    outputChatBox ( "** Voce recebeu : #00FF00$"..amount.."#FFFFFF **", player, 255, 255, 255, true ) 
    end 
end,60000*60,0) 
  

Estou mais na duvida se tenho que declarar a variavel amount varias vezes, e se eu coloca esse end com o timer no final e tals

Link to comment

Pode simplificar isso usando tabelas:

Grupos = { 
    -- { ACL, valor_minimo, valor_maximo }, 
    { "Rank1", 50, 300 }, 
    { "Rank2", 300, 600 }, 
    { "Rank3", 600, 1000 }, 
    { "Rank4", 1000, 1500 }, 
    { "Rank5", 1500, 2000 } 
} 
  
setTimer( 
function() 
    local foiPago = {} 
    for _, player in ipairs ( getElementsByType ( "player" ) ) do 
     
        for _, v in ipairs ( Grupos ) do 
            if isObjectInACLGroup ("user."..getAccountName ( getPlayerAccount ( player ) ), aclGetGroup ( v[1] ) ) and not foiPago[player] then 
                local quantidade = math.random ( v[2], v[3] ) 
                givePlayerMoney ( player, quantidade ) 
                outputChatBox ( "** Obrigado por jogar no servidor da Intinity Gaming **", player, 255, 255, 255, true ) 
                outputChatBox ( "** Seu rank atual é:#00FF00 "..v[1]:sub ( -1, -1 ).." **", player, 255, 255, 255, true ) 
                outputChatBox ( "** Voce recebeu : #00FF00$"..quantidade.."#FFFFFF **", player, 255, 255, 255, true ) 
                foiPago[player] = true 
            end 
        end 
         
        if not foiPago[player] then -- se não foi pago ainda (n esta em nenhuma acl) 
            local quantidade = math.random ( 1, 50 ) 
            givePlayerMoney ( player, quantidade ) 
            outputChatBox ( "** Obrigado por jogar no servidor da Intinity Gaming **", player, 255, 255, 255, true ) 
            outputChatBox ( "** Seu rank atual é:#00FF00 0 **", player, 255, 255, 255, true ) 
            outputChatBox ( "** Voce recebeu : #00FF00$"..quantidade.."#FFFFFF **", player, 255, 255, 255, true ) 
        end 
    end 
    foiPago = {} 
end ,60000*60,0) 

Não testei o codigo mais deve tar funcionando :P

Edited by Guest
Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...