Vazern Posted December 8, 2018 Share Posted December 8, 2018 (edited) Olá pessoal! Como eu posso obter dados de uma tabela em server-side, no client-side (ou vice-versa)? Imaginei que poderia ser utilizando um trigger, mas não sei como utilizá-lo para tal. (Estou fazendo isto para tentar parar de utilizar o element-data o máximo possível) Edited December 8, 2018 by VazErn Link to comment
Other Languages Moderators Lord Henry Posted December 8, 2018 Other Languages Moderators Share Posted December 8, 2018 (edited) Coloque a tabela inteira numa variável e passe essa variável como argumento no triggerClientEvent. Então no client você poderá acessar esse argumento e obter a table. Exemplo maroto: Server-side: tabela = { [1] = "Elemento 1", [2] = "Elemento 2", [3] = "Elemento 3" } addCommandHandler ("eae", function (thePlayer, cmd) triggerClientEvent (thePlayer, "recebeTable", thePlayer, tabela) end) Client-side: addEvent ("recebeTable", true) addEventHandler ("recebeTable", getRootElement(), function (tabelaQualquer) outputChatBox ("Tabela recebida do server:") for i, valor in ipairs (tabelaQualquer) do outputChatBox (i.." = "..valor, 255, 255, 255) end end) (código não testado, avise se houver erros) Boa sorte. Edited December 8, 2018 by Lord Henry 1 2 Link to comment
Vazern Posted December 9, 2018 Author Share Posted December 9, 2018 Muito obrigado maninho! Assim que possível testo, qualquer coisa retorno um erro. Link to comment
Vazern Posted December 9, 2018 Author Share Posted December 9, 2018 Amigo, não havia imaginado que era tão fácil, as vezes acontece de dar uma "falta de lógica" na minha mente, rs. (Element-data abandonado de vez, rs) (Como usei no meu sistema de gasolina) Client-side (funções para obter, e definir dados da tabela): addEvent("setVehicleFuel", true) addEventHandler("setVehicleFuel", root, function(localPlayer, fuelData) local veh = localPlayer:getOccupiedVehicle() if type(fuelData) == "number" then data.fuel[veh] = fuelData return fuelData end end ) addEvent("getVehicleFuel", true) addEventHandler("getVehicleFuel", root, function() local veh = localPlayer:getOccupiedVehicle() return data.fuel[veh] end ) Server-side (exemplo que usei para definir o dado da tabela que está no client-side): addCommandHandler("fuel", function() outputChatBox(tostring(triggerClientEvent("getVehicleFuel", source))) end ) Testei todas as funções que fiz, e estão funcionando normalmente. Obrigado! Link to comment
Other Languages Moderators Lord Henry Posted December 9, 2018 Other Languages Moderators Share Posted December 9, 2018 De nada mano. Qualquer coisa estamos aqui. Não se esqueça de deixar um Thanks lá na resposta pra me ajudar. Abraço. 1 Link to comment
Vazern Posted December 10, 2018 Author Share Posted December 10, 2018 10 hours ago, Lord Henry said: De nada mano. Qualquer coisa estamos aqui. Não se esqueça de deixar um Thanks lá na resposta pra me ajudar. Abraço. Bom, da um trabalhinho a mais do que usar element-data, mas para ter um servidor bom, esforços são necessários. 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