Jump to content

Crear funciones useful


aka Blue

Recommended Posts

Posted

Bueno, esto puede sonar bastante n00b por mi parte pero estoy intentando hace funciones tipo isPlayerAdmin o cosas así. ¿Cómo lo podría hacer?

Mi duda prácticamente es en el return supongo.

Posted

El return será lo que devuelva la función al llamarla,puede devolver tablas, strings, elementos, cualquier cosa, incluso funciones.

  
isPlayerAdmin = function (player) 
return isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)), aclGetGroup("Admin")) end 
  

Posted

Tomás tiene más experiencia que yo, no sé si esté bien lo que el dice o si es un ejemplo para que te hagas una idea, pero yo la verdad no la entiendo, si me la pueden explicar les agradecería mucho

El return será lo que devuelva la función al llamarla,puede devolver tablas, strings, elementos, cualquier cosa, incluso funciones.
  
isPlayerAdmin = function (player) 
return isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)), aclGetGroup("Admin")) end 
  

Creo que sería algo así

function isPlayerAdmin (player) 
     if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)),aclGetGroup("Admin")) then 
          return true 
     else 
          return false 
     end 
end 

Para llamarla sería:

if isPlayerAdmin (jugador) then 

Posted
Tomás tiene más experiencia que yo, no sé si esté bien lo que el dice o si es un ejemplo para que te hagas una idea, pero yo la verdad no la entiendo, si me la pueden explicar les agradecería mucho
El return será lo que devuelva la función al llamarla,puede devolver tablas, strings, elementos, cualquier cosa, incluso funciones.
  
isPlayerAdmin = function (player) 
return isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)), aclGetGroup("Admin")) end 
  

Creo que sería algo así

function isPlayerAdmin (player) 
     if isObjectInACLGroup("user."..getAccountName(getPlayerAccount(player)),aclGetGroup("Admin")) then 
          return true 
     else 
          return false 
     end 
end 

Para llamarla sería:

if isPlayerAdmin (jugador) then 

isObjectInACLGroup devolverá true en caso de que la condición dada (el jugador esté en el acl-group 'Admin) sea verdadera, de lo contrario devolverá false, así que simplemente agregar la función en el return te ahorrará usar los ifs, aunque de todos modos no está mal.

Posted (edited)

Aqui te dejo un ejemplo que verifica si el serial de tal jugador esta en una tabla.

  
cache = {} 
function isPlayerSerialExistInTable( player ) 
    --Verifica el tipo de elemento 
    --Siendo un jugador procede a lo siguiente. 
    assert( ( player:getType( ) == 'player' ), "Bad argument @ 'player' [ Expected at argument 1 got "..tostring( player ).." ]" ); --Assert es mejor que usar if condicion then --bloque osino --bloque2 --FinSi, Ahorras lineas. 
    --Obten el serial del jugador. 
    local serial = player:getSerial(); 
    --Loop. 
    --Has un ciclo que te mande todos los datos de la tabla. 
    for i, data in ipairs( cache ) do 
        --Verificamos los datos dados. 
        --Si el dato 'serial' seria igual a un elemento de la tabla. 
        if serial == data[1] then 
            --Procede a retornar un valor verdadero. 
            return true 
            --O si el dato dado 'serial' no es igual a un elemento de la tabla. 
        else 
            --Retorna un valor falso. 
            return false 
            --FinSi 
        end 
        --FinSi 
    end 
    --FinSi 
end 

Edited by Guest
Posted
Aqui te dejo un ejemplo que verifica si el serial de tal jugador esta en una tabla.
function isPlayerSerialExistInTable( player ) 
    --Verifica el tipo de elemento 
    --Siendo un jugador procede a lo siguiente. 
    assert( ( player:getType( ) == 'player' ), "Bad argument @ 'player' [ Expected at argument 1 got "..tostring( player ).." ]" ); 
    --Obten el serial del jugador. 
    local serial = player:getSerial(); 
    --Loop. 
    --Has un ciclo que te mande todos los datos de la tabla. 
    for i, data in ipairs( cache ) do 
        --Verificamos los datos dados. 
        --Si el dato 'serial' seria igual a un elemento de la tabla. 
        if serial == data[1] then 
            --Procede a retornar un valor verdadero. 
            return true 
            --O si el dato dado 'serial' no es igual a un elemento de la tabla. 
        else 
            --Retorna un valor falso. 
            return false 
            --FinSi 
        end 
        --FinSi 
    end 
    --FinSi 
end 

dat name.. hopeninglich.con

Posted
Justo estaba corregiendo errores ortograficos ¬¬ , ahora sale editado mi reply D:

Me refería al nombre de la función, podrías llamar'e doesPlayerSerialExistInTable', 'isSerialInTable', 'isPlayerSerialInTable', pero el nombre actual no tiene mucho sentido xD

  • Recently Browsing   0 members

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