-Rex- Posted July 28, 2016 Share Posted July 28, 2016 Bueno como dicen algunos en el foro, Que los elementData ocupan muchos recursos. Pensaba que en vez de usar setElementData, se pueda Almacenar todo en una tabla. Y quisiera saber que ocupa mas recursos, Usar setElementData para guardar Datos o Usar Tablas? PD: Estoy tratando de optimizar mi DayZ Link to comment
Enargy, Posted July 28, 2016 Share Posted July 28, 2016 los elementData consumen cpu porque tiene que sincronizarse ambos lados (cliente y servidor), pero al usar setElementData hay un argumento que funciona para manipular esa sincronización, si lo pasas a false solamente el valor va ser asignado en el lado donde está y no podrá leerse el dato desde el otro lado. Al usar tabla es lo mismo que setElementData sin haberse sincronizado. setElementData(element, "dataname", toJSON({"valor1", "valor2", "valor3"}), false) -- ó tabla = {"valor1", "valor2", "valor3"} Link to comment
-Rex- Posted July 28, 2016 Author Share Posted July 28, 2016 los elementData consumen cpu porque tiene que sincronizarse ambos lados (cliente y servidor), pero al usar setElementData hay un argumento que funciona para manipular esa sincronización, si lo pasas a false solamente el valor va ser asignado en el lado donde está y no podrá leerse el dato desde el otro lado. Al usar tabla es lo mismo que setElementData sin haberse sincronizado. setElementData(element, "dataname", toJSON({"valor1", "valor2", "valor3"}), false) -- ó tabla = {"valor1", "valor2", "valor3"} Entonces eso significa, que saldría lo mismo usando tablas? Link to comment
EstrategiaGTA Posted July 28, 2016 Share Posted July 28, 2016 Yo te recomendaría en la medida de lo posible utilizar tablas. Utiliza elementData cuando necesites acceder a esos datos desde otro resource, o desde el otro lado (client-server). Link to comment
Enargy, Posted July 28, 2016 Share Posted July 28, 2016 los elementData consumen cpu porque tiene que sincronizarse ambos lados (cliente y servidor), pero al usar setElementData hay un argumento que funciona para manipular esa sincronización, si lo pasas a false solamente el valor va ser asignado en el lado donde está y no podrá leerse el dato desde el otro lado. Al usar tabla es lo mismo que setElementData sin haberse sincronizado. setElementData(element, "dataname", toJSON({"valor1", "valor2", "valor3"}), false) -- ó tabla = {"valor1", "valor2", "valor3"} Entonces eso significa, que saldría lo mismo usando tablas? Si, salvo que al usar el método de setElementData que te di tendrías que llamar dos funciones al momento de leer la tabla, getElementData y fromJSON. es mas practico y eficiente para mi usar tablas comunes Link to comment
MisterQuestions Posted July 30, 2016 Share Posted July 30, 2016 Usar setElementData, con una tabla si tiene bastantes datos no creo sea conveniente. Esto se debe a que cuando se setea un dato ya sea en el cliente o el servidor, se sincronizan. Y por ende consume un ancho de banda, y si no es nada ligero, no será conveniente. Link to comment
Enargy, Posted July 30, 2016 Share Posted July 30, 2016 Usar setElementData, con una tabla si tiene bastantes datos no creo sea conveniente.Esto se debe a que cuando se setea un dato ya sea en el cliente o el servidor, se sincronizan. Y por ende consume un ancho de banda, y si no es nada ligero, no será conveniente. Para eso esta la opción de activar o desactivar dicha sincronización. Link to comment
aka Blue Posted July 30, 2016 Share Posted July 30, 2016 Yo uso los elementData para cosas pequeñas (valores numéricos más que nada), aunque si lo quieres optimizado, usa tablas, es bastante recomendable. Yo las uso de esta forma: local p = { } -- Cuando entra, por ejemplo p[ player ].sed = tonumber( sed ) p[ player ].hambre = tonumber( hambre ) -- Get valores function getSed( player ) if player then local sed = p[ player ].sed if sed then return sed end return false end return false end function getHambre( player ) if player then local hambre = p[ player ].hambre if hambre then return hambre end return false end return false end Link to comment
-Rex- Posted July 30, 2016 Author Share Posted July 30, 2016 Para que tantos return? Basta con uno. local p = { } -- Cuando entra, por ejemplo p[ player ].sed = tonumber( sed ) p[ player ].hambre = tonumber( hambre ) -- Get valores function getSed( player ) if player then local sed = p[ player ].sed if sed then return sed end end end function getHambre( player ) if player then local hambre = p[ player ].hambre if hambre then return hambre end end end Link to comment
aka Blue Posted July 30, 2016 Share Posted July 30, 2016 Es para enviar false en caso de que no se haya usado correctamente la función, pero claro, eso es gusto de cada uno. Link to comment
Tomas Posted July 30, 2016 Share Posted July 30, 2016 Es para enviar false en caso de que no se haya usado correctamente la función, pero claro, eso es gusto de cada uno. function getSed( player ) return player and p[ player ].sed or false end Mas simple. Link to comment
Recommended Posts