Big Smoker Posted October 3, 2020 Share Posted October 3, 2020 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 comment
Angelo Pereira Posted October 3, 2020 Share Posted October 3, 2020 --# 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 comment
Big Smoker Posted October 4, 2020 Author Share Posted October 4, 2020 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 comment
Angelo Pereira Posted October 4, 2020 Share Posted October 4, 2020 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) 1 Link to comment
Big Smoker Posted October 4, 2020 Author Share Posted October 4, 2020 negativo ele vai pegar o nome BaseGroupName_ depois desse vem o nome da base, ja consegui aqui dessa forma eu tava errando pq coloquei a tabela era so colocar o nome da base que tem no XML 1 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