Jump to content

Tabla con varios contenidos


aka Blue

Recommended Posts

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 
) 

Link to comment

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?

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

Link to comment

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 
) 

Link to comment

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 
) 

Link to comment
  • Recently Browsing   0 members

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