aka Blue Posted December 26, 2015 Share Posted December 26, 2015 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. Link to comment
Tomas Posted December 26, 2015 Share Posted December 26, 2015 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 Link to comment
xPipeZ Posted December 26, 2015 Share Posted December 26, 2015 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 Link to comment
Tomas Posted December 26, 2015 Share Posted December 26, 2015 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. Link to comment
starksZ Posted December 26, 2015 Share Posted December 26, 2015 (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 December 26, 2015 by Guest Link to comment
Tomas Posted December 26, 2015 Share Posted December 26, 2015 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 Link to comment
starksZ Posted December 26, 2015 Share Posted December 26, 2015 Justo estaba corregiendo errores ortograficos , ahora sale editado mi reply D: Link to comment
Tomas Posted December 26, 2015 Share Posted December 26, 2015 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 Link to comment
starksZ Posted December 26, 2015 Share Posted December 26, 2015 En mi pc ya la tenia como 'isPlayerDataInTable' , Como lo puse como ejemplo le cambie el Nombre, Pero bueh que mal ingles tengo :v Link to comment
Recommended Posts