aka Blue Posted April 15, 2016 Posted April 15, 2016 Bueno, quiero hacer que una tabla normal almacene varios datos de un jugador y que, al triggearla, saque dichos valores y los pueda usar (los valores en éste caso son numéricos, pero vamos, podrían ser un string también). ¿Debo usar un simple for o debo realizar algo con lo que viene siendo toJSON y fromJSON? Aquí dejo un ejemplo de lo que quiero hacer: local tablaValores = { } addCommandHandler ( "comando", function ( p, cmd, valor, valor1, valor2 ) local valor = tonumber ( valor ) local valor1 = tonumber ( valor1 ) local valor2 = tonumber ( valor2 ) if valor and valor1 and valor2 then tablaValores [ p ] = { valor = valor, valor1 = valor1, valor2 = valor2 } triggerServerEvent ( "onEnviarValores", p, tablaValores [p], p ) outputChatBox ( "¡Valores cambiados!" ) end end ) addEvent ( "onEnviarValores", true ) addEventHandler ( "onEnviarValores", getRootElement ( ), function ( tabla, jugador ) outputChatBox ( "Valores del jugador "..jugador ) -- Y de aquí sacar los valores y almacenarlos en una variable end )
Simple0x47 Posted April 15, 2016 Posted April 15, 2016 Fijate en la manera de hacerlo Mabako en Paradise, ya que estás usando esa gm.
Tomas Posted April 15, 2016 Posted April 15, 2016 No entiendo qué intentas hacer, de todos modos, no es necesario que le especifiques un índice a la tabla ya que está en client--side, osea debería haber una por "sesión".
aka Blue Posted April 15, 2016 Author Posted April 15, 2016 Quiero almacenar varios datos de un jugador en una tabla y después sacarlos en otro script mediante un trigger o función exportable.
El_Zorro Posted April 15, 2016 Posted April 15, 2016 Por que mejor no creas una enorme tabla con setElementData o getAccountData?, que es mejor así y evitas confusiones.
aka Blue Posted April 15, 2016 Author Posted April 15, 2016 Es que son valores pequeños. Básicamente 1 o 0 y creo que estaría mejor hacerlo con tablas para no petar todo con elementData .
El_Zorro Posted April 15, 2016 Posted April 15, 2016 Bien lo puedes hacer con setElementData, no es tan grande.
aka Blue Posted April 15, 2016 Author Posted April 15, 2016 Ya, pero mi pregunta fue la extracción de una tabla si la misma se guarda así: tablaValores [ p ] = { valor = valor, valor1 = valor1, valor2 = valor2 } ¿Tengo que usar toJSON o fromJSON para almacenarla y después sacarla mediante un loop o cómo?
Tomas Posted April 15, 2016 Posted April 15, 2016 Ya, pero mi pregunta fue la extracción de una tabla si la misma se guarda así: tablaValores [ p ] = { valor = valor, valor1 = valor1, valor2 = valor2 } ¿Tengo que usar toJSON o fromJSON para almacenarla y después sacarla mediante un loop o cómo? ¿Para qué necesitas usar la tabla? print(tablaValores[p][1]['valor1']) --> valor1
aka Blue Posted April 15, 2016 Author Posted April 15, 2016 Básicamente quiero hacer el almacenamiento de varios tipos de daños al jugador. Esto: local daños = { } -- 3 = Torso -- 4 = Culo -- 5 = Brazo izquierdo -- 6 = Brazo derecho -- 7 = Pierna izquierda -- 8 = Pierna derecha -- 9 = Cabeza local armasNormales = { -- Puño [0] = true, -- Puño americano [1] = true, -- Palo de golf [2] = true, -- Porra [3] = true, } addEventHandler ( "onPlayerDamage", getRootElement ( ), function ( attacker, weapon, bodypart, loss ) local vida = getElementHealth ( source ) if armasNormales [ getPedWeapon ( attacker ) ] == weapon then if bodypart == 3 then setElementHealth ( source, vida - 3 ) daños [ source ] = { torso = 1, culo = 0, bI = 0, bD = 0, pI = 0, pD = 0, cabeza = 0 } outputChatBox ( "(( Has sido golpeado en el torso. ))", source, 255, 255, 0 ) end end end )
aka Blue Posted April 16, 2016 Author Posted April 16, 2016 Ya lo arregle, pueden cerrar. Básicamente quería hacer esto (zz seria cuando le añada los valores y zi seria al extraerlos): addCommandHandler ( "zz", function ( p ) tablaValores [ p ] = { valor1 = 1, valor2 = 2 } end ) addCommandHandler ( "zi", function ( p ) local tabla = tablaValores [ p ] if tabla then local z = tabla.valor1 local z1 = tabla.valor2 outputChatBox ( "Valor1 = "..z ) outputChatBox ( "Valor2 = "..z1 ) end end )
Recommended Posts