Ansu Posted February 4, 2021 Share Posted February 4, 2021 Olá estou criando um sistema de inventario que está funcionando bem, player pega o item do lado do server, e faço um trigger evento para o lado do client, entao coloco ele em uma gridlist que pode ser aberta pelo player logicamente e ver seu inventario, o problema está quando ele sai do server, queria poder pegar o item da grid list, e salvar no setAccountData, entao quando player entrar, usar um getAccountData e transferir informações para o client, e do lado do client refazer o inventario dele! não sei se isso ta certo, porem eu acredito que isso seja a solução, por enquanto parte do codigo está assim! function SalvarInv() item1 = guiGridListGetItemText(coluna,1,1) item2 = guiGridListGetItemText(coluna,2,1) item3 = guiGridListGetItemText(coluna,3,1) item4 = guiGridListGetItemText(coluna,4,1)... ... item40 = guiGridListGetItemText(coluna,40,1) triggerServerEvent("SalvarInventario1",localPlayer) end addEventHandler("onClientPlayerQuit",getRootElement(),SalvarInv) tentei pegar os items da grid list e mandei para o server addEvent("SalvarInventario1",true) function saveAccountData(localPlayer) if isGuestAccount (localPlayer) then return end setAccountData(localPlayer,"Item1",item1) setAccountData(localPlayer,"Item2",item2)... ... setAccountData(localPlayer,"Item39",item39) setAccountData(localPlayer,"Item40",item40) end addEventHandler("SalvarInventario1",getRootElement(),saveAccountData) tentei isso, entao quando o player entrar pegar o elemento e mandar a informação para o client refazer sua gridlist, porem acredito que aqui esta o problema, pois fazendo alguns testes vi que nao esta conseguindo pegar os itens (talvez nem tenha salvado) function SetandoItem( _,localPlayer ) if isGuestAccount ( localPlayer ) then return end local accountData = getAccountData (localPlayer, "Item1") if (accountData) then item1 = getAccountData(localPlayer,"Item1") item2 =getAccountData(localPlayer,"Item2")... ... item38=getAccountData(localPlayer,"Item38") item39=getAccountData(localPlayer,"Item39") item40=getAccountData(localPlayer,"Item40") triggerClientEvent(localPlayer,"ItensCarregadosDataBase",localPlayer) else setElementData(source,"Mochila","Lancheira Escolar")--ele ta pulando para essa parte, fiz o teste com a linha de baixo setElementData(source,"Tamanho",10) end end addEventHandler ( 'onPlayerLogin', root,SetandoItem) apos isso tento por ele no lado do client e colocalo na gridlist addEventHandler("ItensCarregadosDataBase",true) function Adicionandoitem() row = guiGridListAddRow(coluna)--coluna é o nome da gridlist guiGridListSetItemText(coluna,row,citem,tostring(item1),false,false) guiGridListSetItemText(coluna,row,qitem,1,false,false) row2 = guiGridListAddRow(coluna) guiGridListSetItemText(coluna,row2,citem,tostring(item2),false,false) guiGridListSetItemText(coluna,row2,qitem,1,false,false)... ... row40 = guiGridListAddRow(coluna) guiGridListSetItemText(coluna,row40,citem,tostring(item40),false,false) guiGridListSetItemText(coluna,row40,qitem,1,false,false) end addEventHandler("ItensCarregadosDataBase",getRootElement(),Adicionandoitem) É a primeira vez que to usando o AccountData, não sei bem como funciona então o codigo tem erros, porem nao sei como consertar! Link to comment
Ansu Posted February 6, 2021 Author Share Posted February 6, 2021 estudando um pouco mais descobrir que posso salvar tabela em uma função toJSON, e pegar ela com fromJSON, porem nao sei mexer nisso, tentei fazer isso, alguem sabe consertar este erro? Link to comment
LucasST Posted February 10, 2021 Share Posted February 10, 2021 Você não precisa utilizar o toJson, para setar uma Tabela em um AccountData, você pode setar ele direto. Exemplo : Tabela = {100,200} function setAccount(player) local acc = getPlayerAccount(player) setAccountData(acc,"tabelaItens",Tabela) end addCommandHandler("set",setAccount) Link to comment
Other Languages Moderators Lord Henry Posted February 10, 2021 Other Languages Moderators Share Posted February 10, 2021 Cuidado com informações equivocadas. 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