Jump to content

[Pregunta] Optimizacion (Recursividad)


Bc#

Recommended Posts

Mi pregunta es sobre recursividad, para el que no sabe que es esto, es cuando se llama una función a si misma. Ejemplo:

i=0 
function recursiva() 
    outputChatBox(i) 
    i=i+1 
    recursiva() 
end 

Es parecido como usar un for pero en el script que estoy haciendo la manera mas optima de hacerlo era usando recursividad. Ahora mi pregunta es si llamo a la función infinitamente (como en el ejemplo) ¿Consumirá mas recursos?¿Colapsará en algún momento?

Link to comment
En vez de incluir un infinite, incluye un timer con 50 ms, no se "petaria" el server y Lua y MTA no lo aborta
 i=0 
function recursiva() 
    outputChatBox(i) 
    i=i+1 
end 
setTimer(recursiva,50,0) 

Los temporizadores son la peor idea en MTA, sobre todo uno "infinito" con tan poco tiempo de retraso.

Link to comment
En vez de incluir un infinite, incluye un timer con 50 ms, no se "petaria" el server y Lua y MTA no lo aborta
 i=0 
function recursiva() 
    outputChatBox(i) 
    i=i+1 
end 
setTimer(recursiva,50,0) 

Los temporizadores son la peor idea en MTA, sobre todo uno "infinito" con tan poco tiempo de retraso.

Se supone que tengo que hacer un contador que valla variando cada 10 segundos, cuando llegue a cierto valor que vuelva a 0 y se repita el ciclo, pero en estos momentos no se me ocurre como.

Link to comment
Se supone que tengo que hacer un contador que valla variando cada 10 segundos, cuando llegue a cierto valor que vuelva a 0 y se repita el ciclo, pero en estos momentos no se me ocurre como.

Si puedes hacerlo en client-side, utiliza getTickCounty onClientRendery no un temporizador, en cuanto a un numero que sea alterado ciclicamente, se me ocurre algo así:

local limit = 10 
local i = 0 
  
function up() 
  i = i+1 > limit and 1 or i+1 
  return i 
end 
  
for i = 1, 50 do 
  print( up() ) 
end 

Link to comment
Un ejempló clásico de Recursividad, el factorial

1! = 1, 2! = 2, 3! = 6, 4! = 24, 5! = 120

function factorial(n) 
     return (n-1) >= 1 and n*factorial(n-1) or false 
end 
  

Es algo así, pero me explic0

Lo se, es una de las cosas básicas que vi en la universidad, pero mi pregunta era en torno a lo que pasa con lua al usar recursividad.

Link to comment
  • Recently Browsing   0 members

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