• TibiaFace

    Tibiaface | Una comunidad Open Tibia donde encontras : mapas, scripts, Otserver, npc y amigos etc ...

    .
    demo menumenu

    Afiliados



    Votar:

    [Function] getAllThingsFromPosition | TFS 0.4

    Compartir:

    Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje (Página 1 de 1.)

    1Cảnh báo [Function] getAllThingsFromPosition | TFS 0.4 el Vie Dic 28, 2018 11:37 pm

    FUNCTION PARA TFS 0.4

    Click para ver mas:

    Código:

    ---@ function getAllThingsFromPosition(pos [, Filter = string - default value: nil ])
    --# Parameter pos: table position { x, y, z }
    --# Parameter Filter: [[onlyPlayers]] | [[onlyMonsters]] | [[onlyItems]] | [[onlyCreatures]] | [[onlyNpcs]] | for ignore this parameter pass false or nil value parameter
    --# Return table of values
    function getAllThingsFromPosition(pos, Filter)
     local array, already = {}, {}
     for stackIndex = 0, 255 do
     local newPosition = { x = pos.x, y = pos.y, z = pos.z, stackpos = stackIndex }
     local thing = getThingfromPos(newPosition)
     if thing.uid ~= 0 and not isInArray(already, thing.uid) then
     table.insert(already, thing.uid)
     if not Filter then
     table.insert(array, thing)
     elseif (tostring(Filter) == [[onlyPlayers]] and isPlayer(thing.uid))
     or (tostring(Filter) == [[onlyMonsters]] and isMonster(thing.uid))
     or (tostring(Filter) == [[onlyCreatures]] and isCreature(thing.uid))
     or (tostring(Filter) == [[onlyNpcs]] and thing.type == 3)
     or (tostring(Filter) == [[onlyItems]] and thing.itemid > 1) then
     table.insert(array, thing)
     end
     end
     end
     return array
    end

    Una pequeña explicación:
    Con esta funcion podras obtener una lista con todos los objetos encontrados en cierta posicion, y lo mejor de todo es que puedes usar un parametro opcional que te permite filtrar el tipo de objeto que quieres que se registren en la lista devuelta por la funcion.


    Ejemplo Numero 1:

    En este ejemplo puedes ver como se puede crear una nueva funcion que hace uso de la funcion getAllThingsFromPosition.
    Código:

    function getItemByIdOnPos(pos, itemId)
     local found = false
     local items = getAllThingsFromPosition(pos, [[onlyItems]])
     for index, item in pairs(items) do
     if item.itemid == itemId then
     found = item
     break
     end
     end
     return found
    end
    Con esta nueva funcion que acabamos de crear podemos encontrar un cierto articulo en la posicion que indiques, solo le pasas como parametro la posicion y el ID del item que quieres encontrar, simula la funcion Tile.getItemById de los TFS 1.x+

    Espero que les guste y le encuentren algo de utilidad, recuerden que el limite es tu imaginación.

    Si encuentran algun error en la función o si notan que le hace falta algo porfavor dejar en los comentarios.

    Se les agradece no comentar cualquier cosa aleatoria, o preguntar si es para otra version, en el titulo del post esta bien definido que es para TFS 0.4




    Si necesitas hospedaje para tu servidor usa este enlace y mira los buenos planes de Windows y Linux:
    Si tu cuenta de PayPal no esta verificada no importara, igual aceptan pagos con cuentas no verificadas.


    [Function] getAllThingsFromPosition | TFS 0.4 TRJEB8aSRYK5IulEU6ilJw
    Ver perfil de usuario

    [Admin] God Maya

    [Admin] God Maya
    Administrador
    Administrador
    genial gracia por el aporte +(y)



    [Function] getAllThingsFromPosition | TFS 0.4 YNU5B25
    Ver perfil de usuario https://www.tibiaface.com

    Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje (Página 1 de 1.)

    Permisos de este foro:
    No puedes responder a temas en este foro.

    Temas Recomendados×+

       

      BienvenidosTibiaFace es una comunidad de Open Tibia. Para participar debes estar registrado (click para Regístrate).