Jump to content

Insertar valor en la tabla de otro jugador


Discipline

Recommended Posts

Posted

Hola, quisiera saber cómo puedo hacer para insertar un dato en una tabla, pero que no sea la tabla del jugador local, sino, por ejemplo, la del jugador llamado "PrivateBeach". 

He intentado poniendo como índice el elemento player, pero no pasa nada. 

Posted
local players = {}

function insertarEnTabla()
	local player = getPlayerFromName("PrivateBeach")
	players[player] = "Esto es un dato"
end
insertarEnTabla()

 

Posted

@Arsilex Eso es reemplazar un dato. A lo mejor quiere añadir con table.insert (?

Para ello creo que era:

local tabla = { }

function insertarEnTabla()
	local player = getPlayerFromName("PrivateBeach")
	table.insert( tabla, player, "DATO A AÑADIR" )
end

 

Posted
3 hours ago, aka Blue said:

@Arsilex Eso es reemplazar un dato. A lo mejor quiere añadir con table.insert (?

Para ello creo que era:


local tabla = { }

function insertarEnTabla()
	local player = getPlayerFromName("PrivateBeach")
	table.insert( tabla, player, "DATO A AÑADIR" )
end

 

Me da error en el argumento #2 de table.insert, dice que espera un número pero obtiene un string.

Y si, como dice Blue lo que quiero es añadir con table.insert.

Posted

Quizas no funcione pero has intentado con table.insert( tabla[player], value )?

El elemento player lo obtienes con getPlayerFromName si lo quieres obtener por nombre

Posted (edited)
5 hours ago, Discipline said:

Me da error en el argumento #2 de table.insert, dice que espera un número pero obtiene un string.

Y si, como dice Blue lo que quiero es añadir con table.insert.

No puedes hacer eso. Es decir el table.insert tiene 2 argumentos 1º Tabla 2º Valor

En este caso como en la tabla inicial tienes como index al jugador no puedes meter directamente el valor con table.insert si no defines

players[player] = {}

Ya que el table.insert solo funciona con arrays.

 

8 hours ago, aka Blue said:

@Arsilex Eso es reemplazar un dato. A lo mejor quiere añadir con table.insert (?

Para ello creo que era:


local tabla = { }

function insertarEnTabla()
	local player = getPlayerFromName("PrivateBeach")
	table.insert( tabla, player, "DATO A AÑADIR" )
end

 

No es remplazar es asignar un dato ya que estamos asignando el dado al jugador si quiere asignar varios datos simplemente usa una array dentro players[player]

y dentro de esa array como dije anteriormente usa table.insert.

 

 

 

Si realmente estas empeñado en seguir usando table.insert este es el código correcto

 

local players = {}

addEventHandler("onPlayerJoin", root,
function()
   	if source and isElement(source) then
    	players[source] = {}  
    end
end)


function insertarEnTabla()
	local player = getPlayerFromName("PrivateBeach")
	table.insert(players[player], "Este es un valor.")
end
insertarEnTabla()

 

Edited by Arsilex
Posted

@Arsilex Asignando y reemplazando a la hora de querer editarlo. Él lo que quiere es añadir. Es como hacer:

tabla[1] = "Hola",
tabla[2] = "Que",
tabla[3] = "Tal"

Bueno, te lo estoy explicando como si fueras tonto o algo (xd). De todos modos, creo que en vez de usar arrays y tonterías, con table.insert le es suficiente.

Posted
2 minutes ago, aka Blue said:

@Arsilex Asignando y reemplazando a la hora de querer editarlo. Él lo que quiere es añadir. Es como hacer:


tabla[1] = "Hola",
tabla[2] = "Que",
tabla[3] = "Tal"

Bueno, te lo estoy explicando como si fueras tonto o algo (xd). De todos modos, creo que en vez de usar arrays y tonterías, con table.insert le es suficiente.

Si no me equivoco el código que he publicado hace exactamente ese efecto, el ultimo código me refiero.

  • Recently Browsing   0 members

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