EW1611 Posted August 31, 2019 Share Posted August 31, 2019 olá, fiz um script que, quando ele inicia, era pra ser setado 1 voto para o player votar, mas da estes erros: https://imgur.com/a/phI8sMg o código server: function setVote(source) for i, source in ipairs(getElementsByType("player")) do local accountname = getAccountName(getPlayerAccount(source)) if isObjectInACLGroup("user."..accountname, aclGetGroup("Everyone")) then setAccountData("user."..accountname, "votos", 1) end end end addEventHandler("onResourceStart", getRootElement(), setVote) function teste(thePlayer) accountname = getAccountName(getPlayerAccount(thePlayer)) local votos = getAccountData(accountname, "votos", 1) outputChatBox("Você tem "..votos.." voto", thePlayer, 255, 255, 255, true) end addCommandHandler("votos", teste) Link to comment
Other Languages Moderators Lord Henry Posted August 31, 2019 Other Languages Moderators Share Posted August 31, 2019 Remova aquele source da linha 1. Não se usa source como parâmetro de função. 1 Link to comment
EW1611 Posted August 31, 2019 Author Share Posted August 31, 2019 Ainda da os mesmos erros na primeira função: WARNING: [--Script--]\Votação\server.Lua:5: Bad argument @ 'setAccountData' [Expected account at argument 1, got string 'user.EW1611'] E na segunda função: WARNING: [--Script--]\Votação\server.Lua:13: Bad argument @ 'getAccountData' [Expected account at argument 1, got string 'EW1611'] ERROR: [--Script--]\Votação\server.Lua:14: attempt to concatenate local 'votos' (a boolean value) Link to comment
EW1611 Posted August 31, 2019 Author Share Posted August 31, 2019 (edited) Agora está funcionando function setVote() for i, source in ipairs(getElementsByType("player")) do accountname = getAccountName(getPlayerAccount(source)) accountname1 = getPlayerAccount(source) if isObjectInACLGroup("user."..accountname, aclGetGroup("Everyone")) then setAccountData(accountname1, "votos", 1) end end end addEventHandler("onResourceStart", getRootElement(), setVote) function teste(thePlayer) accountname = getPlayerAccount(thePlayer) votos = getAccountData(accountname, "votos", 1) outputChatBox("Você tem "..votos.." voto", thePlayer, 255, 255, 255, true) end addCommandHandler("votos", teste) Edited August 31, 2019 by EW1611 Link to comment
Other Languages Moderators Lord Henry Posted August 31, 2019 Other Languages Moderators Share Posted August 31, 2019 Na sua linha 14, não existe aquele 1 depois de "votos". Link to comment
EW1611 Posted August 31, 2019 Author Share Posted August 31, 2019 Você diz o accountname? Consegue pfv me explicar o poque não se usa? Link to comment
Other Languages Moderators Lord Henry Posted August 31, 2019 Other Languages Moderators Share Posted August 31, 2019 Ali no getAccountData da linha 14. Só se usa dois parâmetros e não três. Remova aquele 1 depois do "votos". 1 Link to comment
EW1611 Posted August 31, 2019 Author Share Posted August 31, 2019 Ah sim, é que eu meio que copiei essas funções de um outro script q eu tinha, obg por me avisar Link to comment
DNL291 Posted September 1, 2019 Share Posted September 1, 2019 A verificação do grupo "Everyone" é desnecessária. Lembre-se de usar element-data para o salvamento dentro do jogo, account-data você armazena quando o jogador sai do jogo ou caso pare o resource, e também em sistemas de salvamento automático em um intervalo de tempo. Também troque getRootElement() por resourceRoot no evento "onResourceStart". 1 Link to comment
Other Languages Moderators Lord Henry Posted September 1, 2019 Other Languages Moderators Share Posted September 1, 2019 8 hours ago, DNL291 said: Também troque getRootElement() por resourceRoot no evento "onResourceStart". @EW1611 Caso não tenha entendido o porquê de fazer isso: Se deixar o getRootElement(), ele vai ativar essa função também quando outros resources forem iniciados. Para fazer com que só execute ao iniciar este resource, usa-se resourceRoot. 1 Link to comment
EW1611 Posted September 1, 2019 Author Share Posted September 1, 2019 Entendi, muito obrigado pela ajuda. o certo é usar setAccountData, para se caso o player saia do server sem votar, quando ele voltar, ele ainda possa votar? 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