Jump to content

Ajuda com AccountData


Recommended Posts

Posted

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)

 

  • Moderators
Posted

Remova aquele source da linha 1. Não se usa source como parâmetro de função.

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

Posted

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)

Posted (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 by EW1611
  • Moderators
Posted

Na sua linha 14, não existe aquele 1 depois de "votos".

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

  • Moderators
Posted

Ali no getAccountData da linha 14. Só se usa dois parâmetros e não três. Remova aquele 1 depois do "votos".

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

Posted

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".

Please do not PM me with scripting related question nor support, use the forums instead.

  • Moderators
Posted
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.

Eu te ajudei ou achou meu comentário útil? Não esqueça de deixar um Thanksspacer.png

Minhas contribuições para a comunidade: LordHenry - MTA Wiki Profile
Inscreva-se no meu canal do YouTube: Lord Henry - Entertainment
Discord Oficial do MTA: https://mtasa.com/discord
Blacklist e Whitelist de Scripters: Planilha

Por favor, não me envie mensagens privadas solicitando suporte. Crie um tópico no fórum em vez disso.

Posted

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?

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...