FelipeMallmann Posted May 1, 2015 Share Posted May 1, 2015 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
n3wage Posted May 1, 2015 Share Posted May 1, 2015 (edited) 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 Edited May 1, 2015 by Guest Link to comment
#RooTs Posted May 1, 2015 Share Posted May 1, 2015 @n3wage, não precisa de evento ? addEventHandler Link to comment
n3wage Posted May 1, 2015 Share Posted May 1, 2015 @n3wage, não precisa de evento ? addEventHandler Não, O timer ja executa a função pra dar o dinheiro. Link to comment
#RooTs Posted May 1, 2015 Share Posted May 1, 2015 Não, O timer ja executa a função pra dar o dinheiro. entendi Link to comment
FelipeMallmann Posted May 2, 2015 Author Share Posted May 2, 2015 Entendi, muito obrigado n3wage ! Link to comment
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now