Jump to content

Setar + 1 um elento no getElementData


Recommended Posts

boa noite,

Pessoal preciso de um auxilo como eu faço para que o setElementData, salve + de 1 um elento dentro dele ou qual funçãod evo usar para que eu possa usar. Fiz um sistema na qual ele seta um sistema de permissao dentro de uma ColShope, so que cada colShope tem um nome diferente que é salva no XML com a conta do player. Quando jogador faz o loga no servidor ele seta o nome de cada base em um setElement data qual a base ele tem acesso.

O Script so esta setando para 1 colShope.

 

addEventHandler("onPlayerLogin",getRootElement(),function(thePreviousAccount,theCurrentAccount)
	local xml = xmlLoadFile("Bases.xml")
	for i,groupp in pairs(xmlNodeGetChildren(xml)) do
		for i,member in ipairs(xmlNodeGetChildren(xmlFindChild(groupp,"AllowedPlayers",0)))do
			if xmlNodeGetAttribute(member,"Account") == getAccountName(getPlayerAccount(source)) then
				setElementData(source,"BaseGroupBaseName",xmlNodeGetAttribute(groupp,"NomeBase"))
				setElementData(source,"BaseGroupAccount",xmlNodeGetAttribute(member,"Account"))
				setElementData(source,"BaseGroupRank",xmlNodeGetAttribute(member,"Rank"))
				setElementData(source,"BaseGroupJoined",xmlNodeGetAttribute(member,"Joined"))
			end
		end
	end
	xmlUnloadFile(xml)
end)

OBRIGADO

Link to post
--# Você pode usa esta base :

setElementData(source, "Aleatorio", { "A","B","C","D" } )

local valores = getElementData(source, "Aleatorio") or {nil,nil,nil,nil}
print(valores[1]) ==> A
print(valores[2]) ==> B
print(valores[3]) ==> C
print(valores[4]) ==> D

 

Link to post

nao vai da certo fazer dessa maneira eu fiz esse aqui 

usei um

 

for i, vs in ipairs ( totalData) do
end

 

ai coloquei uma tabela com nome de cada col ai ele puxa de acordo com a conta cadastrada em cada col, so que nao deu certo. Sabe a onde eu errei?

totalData = {
"BaseSVSF1",
"BaseCT1LS1",
"BaseCT2SF1",
}

addEventHandler("onPlayerLogin",getRootElement(),function(thePreviousAccount,theCurrentAccount)
	local xml = xmlLoadFile("Bases.xml")
	for i,groupp in pairs(xmlNodeGetChildren(xml)) do
		for i,member in ipairs(xmlNodeGetChildren(xmlFindChild(groupp,"AllowedPlayers",0)))do
			for i, vs in ipairs ( totalData) do
				if xmlNodeGetAttribute(member,"Account") == getAccountName(getPlayerAccount(source)) then
					local NameBase = tostring(xmlNodeGetAttribute(groupp,"NomeBase"))
					local Account = tostring(xmlNodeGetAttribute(member,"Account"))
					local Rank = tostring(xmlNodeGetAttribute(member,"Rank"))
					local Joined = tostring(xmlNodeGetAttribute(member,"Joined"))
					setElementData(source,"BaseGroupName_"..vs,xmlNodeGetAttribute(groupp,"NomeBase"))
					setElementData(source,"BaseGroupAccount_"..vs,Account)
					setElementData(source,"BaseGroupRank_"..vs,Rank)
					setElementData(source,"BaseGroupJoined_"..vs,Joined)
					outputChatBox("BASE: "..xmlNodeGetAttribute(groupp,"NomeBase").." / "..getElementData(source,"BaseGroupName_"..vs),source)
					
				end
			end
		end
	end
	xmlUnloadFile(xml)
end)

 

Link to post

apesar de haver erros no script, eu ainda não compreendi o que você esta tentando fazer.

Dessa forma que foi feito, setará sempre a col "BaseSVSF1" em todos.

o que eu faria (no meu entender do resource), salvar o nome da col, junto ao xml junto com as outras info, e logo depois apenas puxar esse informação.

addEventHandler("onPlayerLogin", getRootElement( ), function( thePreviousAccount,theCurrentAccount )
	local xml = xmlLoadFile("Bases.xml")
	for i, groupp in pairs ( xmlNodeGetChildren(xml) ) do
		for i, member in ipairs ( xmlNodeGetChildren(xmlFindChild(groupp,"AllowedPlayers",0)) ) do
			if xmlNodeGetAttribute(member,"Account") == getAccountName(getPlayerAccount(source)) then
				local col = tostring(xmlNodeGetAttribute(groupp,"col")) --/> exemplo. / AGREGAR ao seu XML.
				local base = tostring(xmlNodeGetAttribute(groupp,"NomeBase"))
				local acc = tostring(xmlNodeGetAttribute(member,"Account"))
				local rank = tostring(xmlNodeGetAttribute(member,"Rank"))
				local joined = tostring(xmlNodeGetAttribute(member,"Joined"))
                
				setElementData( source, "config:"..col.."", { base, acc, rank, joined } )
				
				local elementos = getElementData(source, "config_base:"..col.."") or {nil,nil,nil,nil)
				outputChatBox("BASE: "..elementos[1].." ==> "..base.."  ", source, 255, 255, 255, true)
			end
		end
	end
	xmlUnloadFile(xml)
end)

 

 

  • Thanks 1
Link to post

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