Jump to content

Pra que Server e Como Usar o "Return"


Recommended Posts

olá fiz esse topico pra uma duvida, porque vire mexe eu vejo, codigos usando um recurso chamado "return" e eu não sei pra que serve isso
queria saber porque pode ser algo bastante importante, tentei pesquisar sobre isso mais não entendi muito bem, e não tem muito sobre isso na internet
pelo o que eu vi.

Link to comment
  • Other Languages Moderators

E aí, @SciptNovato!

Majoritariamente, esse comando dentro da programação possui dois usos: seja para retornar algum valor ou para encerrar o bloco de execução de alguma função ou escopo. Por exemplo, numa função simples de somar dois números:

function somar(n1, n2)
    local valorSomado = n1 + n2 -- Atribui a soma de 'n1 + n2' à variável 'valorSomado'.
    return valorSomado -- Retorna o valor atribuído.
end

-- Agora, se nós chamarmos aquela função, ela irá retornar o valor somado.
local soma = somar(5, 2)
print(soma) -- Printa o número 7.

Mais um exemplo, um pouquinho mais complexo:

function obterTodosJogadoresNumCarro()
    local tempTable = {} -- Apenas uma tabela onde os jogadores que estão em um carro ficarão armazenados temporariamente.
    for i, v in pairs(getElementsByType("player")) do -- Iremos fazer um loop em todos os jogadores.
        local veh = getPedOccupiedVehicle(v) -- Verificaremos, então, para cada jogador, se ele está em um veículo.
        if veh then -- Caso esteja, colocamos ele na nossa tabela.
            table.insert(tempTable, v)
        end
    end
    return tempTable -- Depois de processar todos os jogadores, retornaremos a nossa tabela, contendo apenas os jogadores que estão num veiculo.
end

-- Agora que temos uma função que retorna algo, então vamos chamá-la.
local jogadoresNumVeiculo = obterTodosJogadoresNumCarro() -- A tabela contendo os jogadores ficará, agora, armazenada na nossa variável 'jogadoresNumVeiculo'.

print(#jogadoresNumVeiculo) -- Printando a variável, juntamente com #, irá aparecer o total de jogadores que estão num veículo.

Agora, um exemplo de como encerrar uma função ou escopo:

function blindarVeiculo(player)
    local veh = getPedOccupiedVehicle(player) -- Iremos pegar o jogador do veículo.
    if not veh then -- 'if not veh then', isto é, se NÃO houver um veículo, nós iremos retornar uma mensagem ao jogador, informando-o que só é possível blindar um veículo estando em um.
        return outputChatBox("#cccccc[SERVER] #ffffffEntre em um veículo para blindá-lo.", player, 255, 255, 255, true)
    end
    
    setVehicleDamageProof(veh, true) -- Se passar por aquela condição, então isso aqui será executado, ou seja, o veículo irá ser blindado.
    outputChatBox("#cccccc[SERVER] #ffffffO veículo foi blindado!", player, 255, 255, 255, true)
end

addCommandHandler("blindar", blindarVeiculo)

Apenas um adendo: nesse return poderia ter simplesmente nada, se não houvesse necessidade de informar ao jogador que ele deve estar num veículo para usar o comando. Coloquei para te mostrar uma possibilidade. Porém, sempre retorne false ou true. Deixar sem nada não é uma boa prática de programação.

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...