Jump to content

Question


Recommended Posts

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

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
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

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
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
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 by alex17"
Link to comment

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 by Calculador
Link to comment

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...