Jump to content

[AYUDA] Random tables (con pairs)


Recommended Posts

No me llamen noob, pero en ningun sitio de MTA explican como usar esto

Alguien me puede ayudar como se llama a las tablas y el uso correcto de pairs sin enviarme a la pagina de "LUA.org" que alla no entiendo nada ._. xD

spawn = {} 
spawn[1] = "16,354,8000" 
spawn[2] = "5,78,65" 
spawn[3] = "0,0,15" 
function sps () 
    for k,v in pairs (spawn) do 
        spawnPlayer(source,#spawn[math.random(1,3)]) 
    end 
end 
addEventHandler("onPlayerWasted",root,sps) 
addEventHandler("onPlayerJoin",root,sps) 

Lo sé xD

images?q=tbn:ANd9GcRhuoqEVMK-NTkXopGoe22YdVwEBpjKvEUO3H4d91dL6wfSvuoD

Link to comment
Hidden

Aquí tienes:

  
spawn = { 
    { x, y, z }, 
    { x, y, z  }, 
    { x, y, z } 
} 
  
function sps () 
     local spw = math.random (1,  #spawn ) 
     spawnPlayer(source , spawn[spw]) 
end 
addEventHandler("onPlayerWasted",root,sps) 
addEventHandler("onPlayerJoin",root,sps) 

Link to comment
Aquí tienes:
  
spawn = { 
    { x, y, z }, 
    { x, y, z  }, 
    { x, y, z } 
} 
  
function sps () 
     local spw = math.random (1,  #spawn ) 
     spawnPlayer(source , spawn[spw]) 
end 
addEventHandler("onPlayerWasted",root,sps) 
addEventHandler("onPlayerJoin",root,sps) 

aver si entendi..

  
spawn = {       --1 nivel 
    { x, y, z },   -- Se sube 2 niveles 
    { x, y, z  }, 
    { x, y, z } 
}                      -- cierres de la tabla 
  
function sps () 
     local spw = math.random (1,  #spawn ) -- El "1" significa el nivel, y "#spawn" la tabla 
     spawnPlayer(source , spawn[spw])           -- Como sale random? no entendi del todo, en math.random solo tiene "1" 
end 
addEventHandler("onPlayerWasted",root,sps) 
addEventHandler("onPlayerJoin",root,sps) 

Realmente no me interesa tener el script, sino entender lo que scripteo xD

Link to comment
Hidden

te lo dejo un poco mejor explicado D:

  
spawn = {       
    {16,354,8000},   -- aca  pones las cordenadas de los spawn si quieres mas solo agregas mas --  
    { 5,78,65 },  
    { 0,0,15 } 
}                       
  
function sps () 
     local spw = math.random (1,  #spawn )  -- aca se obtiene al asar las cordenadas de la tabla  -- 
     spawnPlayer(source , spawn[spw])      -- aca se ejecuta la funcion  spawnPlaye con las cordenadas tomadas al asar de la tabla -- 
end 
addEventHandler("onPlayerWasted",root,sps) 
addEventHandler("onPlayerJoin",root,sps) 

Link to comment
te lo dejo un poco mejor explicado D:
  
spawn = {       
    {16,354,8000},   -- aca  pones las cordenadas de los spawn si quieres mas solo agregas mas --  
    { 5,78,65 },  
    { 0,0,15 } 
}                       
  
function sps () 
     local spw = math.random (1,  #spawn )  -- aca se obtiene al asar las cordenadas de la tabla  -- 
     spawnPlayer(source , spawn[spw])      -- aca se ejecuta la funcion  spawnPlaye con las cordenadas tomadas al asar de la tabla -- 
end 
addEventHandler("onPlayerWasted",root,sps) 
addEventHandler("onPlayerJoin",root,sps) 

Ya veo como funciona xD

Pero por que spawn = { { x,y,z } } (Doble nivel) y el math.random(1,#spawn) le dice que escoga una sola opcion de la #<--- eso sirve para llamar a una tabla, no? #ejemploDeTabla

Link to comment
Hidden
te lo dejo un poco mejor explicado D:
  
spawn = {       
    {16,354,8000},   -- aca  pones las cordenadas de los spawn si quieres mas solo agregas mas --  
    { 5,78,65 },  
    { 0,0,15 } 
}                       
  
function sps () 
     local spw = math.random (1,  #spawn )  -- aca se obtiene al asar las cordenadas de la tabla  -- 
     spawnPlayer(source , spawn[spw])      -- aca se ejecuta la funcion  spawnPlaye con las cordenadas tomadas al asar de la tabla -- 
end 
addEventHandler("onPlayerWasted",root,sps) 
addEventHandler("onPlayerJoin",root,sps) 

Ya veo como funciona xD

Pero por que spawn = { { x,y,z } } (Doble nivel) y el math.random(1,#spawn) le dice que escoga una sola opcion de la #<--- eso sirve para llamar a una tabla, no? #ejemploDeTabla

spawn = {} es la tabla, y dentro de ésta está spawn = { {EJEMPLO}, {EJEMPLO} } entonces, el el math.random(1, #spawn) hace que desde el primero, todos los demás al ejecutarse lo hagan aleatoriamente. Después de eso el spawnPlayer(source, spawn[spw] hace que coja las coordenadas de la tabla spawn y entre corchetes [spw] coge la variable local del math.random y desde el primero los va ejecutando aleatoriamente.

Link to comment
Hidden

Poner tablas dentro de otra es lo mismo que lo que hiciste vos:

Esto:

 spawn = { {12, 14}, {16, 18}, {20, 22} } 

Es igual a poner esto

 spawn = {} 
spawn[1] = { 12, 14 } 
spawn[2] = { 14, 18 } 
spawn[3] = { 20, 22 } 
  

Luego el math.random(arg1 [, arg2]): lo que hace esta funcion es devolver un numero al azar que este entre el 1 y arg1, o en caso de especificar los 2 argumentos salga un numero al azar entre el arg1 y arg2.

*Recuerda que cuando esta especificado el argumento entre corchetes significa que es opcional.

Otra cosa es que cuando le pones un # delante de la variable de la tabla esta te devuelve el numero de elementos que hay dentro de ella. En el primer ejemplo que puse #spawn devolveria 3 porque hay 3 elementos(tabla, tabla, tabla).

Una correccion de los ejemplos de arriba porque no funcionaria seria que para obtener las coordenadas debes descomprimir (o como se diga en español) con la funcion unpack.

Lo correcto seria asi:

  
spawn = {       
    {16,354,8000},   -- aca  pones las cordenadas de los spawn si quieres mas solo agregas mas -- 
    { 5,78,65 }, 
    { 0,0,15 } 
}                       
  
function sps () 
     local spw = math.random (1,  #spawn ) 
     spawnPlayer(source , unpack(spawn[spw])) 
end 
addEventHandler("onPlayerWasted",root,sps) 
addEventHandler("onPlayerJoin",root,sps) 

Espero entiendas algo porque soy horrible explicando xD En fin, la intencion está.

Link to comment
  
spawn = {       
    {16,354,8000},   -- aca  pones las cordenadas de los spawn si quieres mas solo agregas mas -- 
    { 5,78,65 }, 
    { 0,0,15 } 
}                       
  
function sps () 
     local spw = math.random (1,  #spawn ) -- El script da network Trouble, con "unpack" aun no probé 
     spawnPlayer(source , unpack(spawn[spw])) --unpack sirve para que coja solo una opcion? o para que? 
end 
addEventHandler("onPlayerWasted",root,sps) 
addEventHandler("onPlayerJoin",root,sps) 

Link to comment
  • Recently Browsing   0 members

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