Jump to content

[Solucionado] Solo me devuelve el primer valor de la tabla


UserToDelete

Recommended Posts

function getGangs (key) 
    if key == 1332 then 
    local x = exports.gang_system:getGangList() 
        for k,gangs in ipairs(x) do 
        triggerClientEvent("listingGangs", client, gangs.gang_name) 
        outputChatBox(gangs.gang_name, root) 
        return gangs.gang_name 
        end 
    end 
end 
  
function _test (source, c, _) 
local key = 1332 
local x = getGangs(key) 
outputChatBox(tostring(x), source, 255,255,255,true) 
end 
addCommandHandler("/test", _test) 
  
addEvent("getGangs", true) 
addEventHandler("getGangs", root, getGangs) 

Hay dos valores, y solo me devuelve uno (El primero), solucion?

Edited by Guest
Link to comment
Hidden

Si no me equivoco con lo que quieres hacer, es esto.

Si quieres que retorne una tabla tienes que hacerlo de otra forma, pero recuerda usar variables para guardar datos y después retornar.

function getGangs (key) 
    local txt = "" 
    if key == 1332 then 
    local x = exports.gang_system:getGangList() 
        for k,gangs in ipairs(x) do 
            triggerClientEvent("listingGangs", client, gangs.gang_name) 
            outputChatBox(gangs.gang_name, root) 
            txt = txt..tostring(gangs.gang_name)..". " 
        end 
        return txt 
    end 
end 
  
function _test (source, c, _) 
local key = 1332 
local x = getGangs(key) 
outputChatBox(x, source, 255,255,255,true) 
end 
addCommandHandler("/test", _test) 
  
addEvent("getGangs", true) 
addEventHandler("getGangs", root, getGangs) 

Link to comment
Hidden
Con el ejemplo de Bc no te saldrá una gang por linea, sino que te saldrá todo en la misma linea, lo que puedes hacer es insertar la información en una tabla y luego loopearla.

No conoces la parte del cliente, tal vez ese evento ejecuta una funcion donde crea una linea, aunque eso resultaria poco eficiente.

Link to comment
Con el ejemplo de Bc no te saldrá una gang por linea, sino que te saldrá todo en la misma linea, lo que puedes hacer es insertar la información en una tabla y luego loopearla.

No conoces la parte del cliente, tal vez ese evento ejecuta una funcion donde crea una linea, aunque eso resultaria poco eficiente.

Está usando un outputChatBox ._. (la función está abajo)

Link to comment
Hidden

Creo que así se hace. No estoy al 100% seguro si es así como se asigna una tabla en lua.

function getGangs (key) 
    local var = {} 
    if key == 1332 then 
        local x = exports.gang_system:getGangList() 
        for k,gangs in ipairs(x) do 
            triggerClientEvent("listingGangs", client, gangs.gang_name) 
            outputChatBox(gangs.gang_name, root) 
            var.k = gangs.gang_name 
        end 
        return var 
    end 
end 
  
function _test (source, c, _) 
    local x = {} 
    local key = 1332 
    local x = getGangs(key) 
    for k, gang in ipairs(x) do 
        outputChatBox(tostring(gang), source, 255,255,255,true) 
    end 
end 
addCommandHandler("/test", _test) 
  
addEvent("getGangs", true) 
addEventHandler("getGangs", root, getGangs) 

Link to comment

Tan simple es como:

--return.

function getGangs (key) 
    if key == 1332 then 
    local x = exports.gang_system:getGangList() 
        for k,gangs in ipairs(x) do 
            if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(client)), aclGetGroup("Admin")) then 
            triggerClientEvent("listingGangs", client, gangs.gang_name) 
            --outputChatBox(gangs.gang_name, client) 
            --return gangs.gang_name 
            end 
        end 
    end 
end 

Funciona perfecto

Como bien dijo castillo, "return" corta el loop.

Estas terminado el bucle al usar "return".
Link to comment
  • Recently Browsing   0 members

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