Jump to content

Error ao chamar método de OOP


Recommended Posts

Olá, estava criando uma função para testar a OOP do MTA, porém não estou conseguindo usa-lá. Estou recebendo o error: "attempt to call method getPosition (a nil value)", linha 2. Gostaria de saber porque o MTA não reconhece a chamada do método, segue minha função abaixo:

Server-Side
 

function createVehicle(playerSource, command, modelVehicle)
    local playerPosition = Vector3(playerSource:getPosition())
    playerposition = playerPosition + Vector3(0, 1, 0)
    local vehicle = createVehicle(modelVehicle, playerPosition)
    
    if (not vehicle) then
        outputChatBox("Erro ao criar veículo", playerSource)
        return false
    end

    vehicle:setDamageProof(true)
    vehicle:setFrozen(true)
    vehicle:setHealth(1000)
    vehicle:setVelocity(0.2, 0.2, 0.2)
end
addCommandHandler("veiculo", createVehicle)


OBS: Já habilitei a OOP no meta do meu script.

Link to comment
On 29/12/2021 at 17:50, ajobr said:

Olá, estava criando uma função para testar a OOP do MTA, porém não estou conseguindo usa-lá. Estou recebendo o error: "attempt to call method getPosition (a nil value)", linha 2. Gostaria de saber porque o MTA não reconhece a chamada do método, segue minha função abaixo:

Server-Side
 

function createVehicle(playerSource, command, modelVehicle)
    local playerPosition = Vector3(playerSource:getPosition())
    playerposition = playerPosition + Vector3(0, 1, 0)
    local vehicle = createVehicle(modelVehicle, playerPosition)
    
    if (not vehicle) then
        outputChatBox("Erro ao criar veículo", playerSource)
        return false
    end

    vehicle:setDamageProof(true)
    vehicle:setFrozen(true)
    vehicle:setHealth(1000)
    vehicle:setVelocity(0.2, 0.2, 0.2)
end
addCommandHandler("veiculo", createVehicle)


OBS: Já habilitei a OOP no meta do meu script.

Men, não sei explicar o porque (realmente)
Mas mudei o nome da função aqui e funcionou kk
Realmente da maneira que está não funciona...
 

Link to comment
  • Other Languages Moderators

E aí, @ajobr!

Não funciona pois a função que você usou para criar o veículo (createVehicle) não retorna uma instância. Você precisa usar desta forma:

local vehicle = Vehicle(411, Vector3(0, 0, 3))
vehicle:setColor(255, 0, 0)

Agora, usando a classe Vehicle, você está apto a usar todos métodos disponíveis.

Test: cat.zip

Edited by androksi
  • Like 1
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...