Calculador Posted July 18, 2017 Share Posted July 18, 2017 Buenas, me surgió una pregunta, quizá sea algo tonto para algunos, pero realmente tengo esa duda. Bueno, lo que me pregunto es, ¿Cómo puedo hacer para utilizar una variable local que esta dentro de una función en otra función? Para que me entiendan mejor, un ejemplo: -- Como hago esto: function Funcion () local variable = valor; end function OtraFuncion () -- interactuar con "Variable" end Gracias de ante mano. Link to comment
Rose Posted July 18, 2017 Share Posted July 18, 2017 No se puede según tengo entendido, pero puedes simplemente retornar el valor de la variable o crear la variable global. Link to comment
Calculador Posted July 18, 2017 Author Share Posted July 18, 2017 8 hours ago, Rose said: No se puede según tengo entendido, pero puedes simplemente retornar el valor de la variable o crear la variable global. No me sirve crear la variable global, porque si estoy en un archivo server voy a tener bugs. Link to comment
aka Blue Posted July 18, 2017 Share Posted July 18, 2017 Si no explicas para qué es, poco podemos hacer. Yo de mi parte te recomiendo quizás usar tablas para eso. Es decir: -- Como hago esto: variables = { } function Funcion (p) variables[p] = variable; end function OtraFuncion (p) setElementModel( p, variables[p] ) -- Por ejemplo end Link to comment
Simple0x47 Posted July 19, 2017 Share Posted July 19, 2017 local variable = nil function Funcion () variable = valor end function OtraFuncion () print( variable ) end Si estás en un archivo server pero si el problema no se encuentra con interactuar en el mismo archivo entonces usa esto. Link to comment
Calculador Posted July 19, 2017 Author Share Posted July 19, 2017 2 hours ago, Uknown. said: local variable = nil function Funcion () variable = valor end function OtraFuncion () print( variable ) end Si estás en un archivo server pero si el problema no se encuentra con interactuar en el mismo archivo entonces usa esto. Respondiendo de una vez a lo que posteó @aka Blue, no tengo ningún problema simplemente me surgió esa duda. Puesto que, cuando estoy trabajando en server y no pongo una variable local en una función se bugea cuando lo que estoy haciendo lo usan mas de dos personas, ya que se modifica para todos los que ejecuten la función. Lo que dices tu, tampoco me serviría porque la variable ya estaría global en la función. Link to comment
Simple0x47 Posted July 19, 2017 Share Posted July 19, 2017 Nunca estaría global según tu dices. Para llevar a cabo lo que estas buscando tienes que encontrar la manera de enlazar dichas funciones a una función núcleo para llevar a cabo estas acciones. Una idea es almacenar al jugador como llave de una tabla y asignarle el valor deseado. Link to comment
Renkon Posted July 22, 2017 Share Posted July 22, 2017 On 19/7/2017 at 01:39, Calculador said: Respondiendo de una vez a lo que posteó @aka Blue, no tengo ningún problema simplemente me surgió esa duda. Puesto que, cuando estoy trabajando en server y no pongo una variable local en una función se bugea cuando lo que estoy haciendo lo usan mas de dos personas, ya que se modifica para todos los que ejecuten la función. Lo que dices tu, tampoco me serviría porque la variable ya estaría global en la función. En todo caso, no es un "bug", es un error tuyo de codificación. Consideras una sola variable de usuario para todo el servidor, entonces más vale que no realizará lo que deseas. En todo caso tu solución es tener un arreglo de n variables (donde n = cantidad de jugadores), y ahí seteas el valor que deseas. Link to comment
alex17" Posted July 22, 2017 Share Posted July 22, 2017 (edited) On 18/7/2017 at 23:39, Calculador said: Respondiendo de una vez a lo que posteó @aka Blue, no tengo ningún problema simplemente me surgió esa duda. Puesto que, cuando estoy trabajando en server y no pongo una variable local en una función se bugea cuando lo que estoy haciendo lo usan mas de dos personas, ya que se modifica para todos los que ejecuten la función. Lo que dices tu, tampoco me serviría porque la variable ya estaría global en la función. pues tendrias que usar tablas y asi cada jugador tendría su variable sin que se modifiquen para todos algo así variable = {} function Funcion () variable[source] = valor end function OtraFuncion () -- interactuar con "Variable" print (variable[source]) end -- source vendria ser el jugador que se estará ejecutando en tu función Edited July 22, 2017 by alex17" Link to comment
Simple0x47 Posted July 23, 2017 Share Posted July 23, 2017 Tanta variable global para nada... bueno si para ser menos eficiente. Link to comment
Calculador Posted July 24, 2017 Author Share Posted July 24, 2017 (edited) Los tres dijeron lo mismo con diferentes palabras, crear una tabla donde se almacene la variable para cada jugador. Y sí, efectivamente funciona y ya lo sabía. Aun así mi pregunta únicamente era esa; si se podía hacer una variable local e interactuar con la misma en otra función, pero creo que no es posible. ¿Porque quería saber si se podía lograr esto?, puesto que cuando usas una variable global en un archivo server, se toma para todos aquellos que hagan uso de ella y no solo para un jugador, mientras que si es local, lo toma para el jugador en si. Lo de las tablas es una solución evidentemente, pero pensé que había otra manera para hacer lo que digo. De todas formas, gracias a todos por responder. Edited July 24, 2017 by Calculador 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