Jump to content

Ajuda com AccountData


Recommended Posts

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

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

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
Link to comment

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

  • Thanks 1
Link to comment
  • Other Languages Moderators
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.

  • Thanks 1
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...