Jump to content

Buscar veiculos


Recommended Posts

Olá estou fazendo uma barra de busca em uma concessionaria para ficar mas fácil localizar os veiculos, porem não sei como fazer gostaria de fazer uma barra de busca igual quando vamos pegar um carro no painel P você digita "sa" ele filtra os veiculos que começam com "sa"

Link to comment
  • Other Languages Moderators

Olá!

Para fazer isso, primeiro você precisa salvar a tabela original em cache. Pois, caso não haja valores com o filtro digitado pelo usuário, ela volta para a estaca zero (lista completa).

Seria interessante nos dizer como você está tentando fazer, fica bem mais fácil pra gente te ajudar. :)

Todavia, supondo que seja uma lista em GUI, junto com um campo pra digitar, dá pra fazer desta forma:

Spoiler
local list = {} -- tabela que será usada no filtro
local cacheList = {} -- tabela que iremos salvar todos os dados, não haverá alteração nela

-- já de cara, iremos salvar a tabela contendo todos os veículos do servidor (poderia ser qualquer tipo de dado)
cacheList = getElementsByType("vehicle")

local field = guiCreateEdit(300, 400, 100, 25, "", false, false) -- cria um campo pra digitar, em algum lugar da tela (não testei, então sei lá onde vai estar :P)

-- definimos um evento para acionar sempre que houver alteração no campo
addEventHandler("onClientGUIChanged", field, function()
    list = {} -- recria a tabela sempre que houver alteração, para que não ocorra duplicação

    local input = guiGetText(source) -- obtém o texto digitado no campo
    if input:gsub("%s", ""):len() == 0 then -- uma verificação pra ver se tem algo digitado no campo, nosso filtro
        list = cacheList -- ...caso não tenha, então deixaremos a tabela original, com todos os veículos
    else
        for i, v in pairs(cacheList) do -- um laço de repetição que irá percorrer todos os itens da nossa tabela-mãe, onde tem os veículos
            local vehicleName = getVehicleName(v) -- obtém o nome do veículo
            if string.find(vehicleName, input, 1, true) then -- checa, se no nome do veículo tem o nosso 'input', ou seja, se o nome do veículo for Infernus e nós digitarmos, 'inf', 'nus' ou 'rn', ele estará na lista
                table.insert(list, vehicleName) -- insere naquela tabela o nome do veículo encontrado pelo filtro
            end
        end
    end
    
    iprint(list) -- mostra no '/debugscript 3' a nossa lista filtrada
end)

 

 

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

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