Jump to content

Iniciante - Dúvidas


Recommended Posts

Fala galera! 

Em meus estudos em programação, para ser mais específico MTA. Me deparei com a seguinte situação:

 

Este código simples de verificar o nome do carro ao entrar não funciona (Dá erro de boolean value)

function vei(player)        
    nome = getVehicleName(player)
    outputChatBox("O nome do veículo atual é: "..nome)
end
addEventHandler("onVehicleEnter", getRootElement(), vei)

Estava fazendo algumas pesquisas e vi que esse sim funciona.

function vei(player)        
    nome = getVehicleName(player)
    outputChatBox("O nome do veículo atual é: "..nome)
end
addEventHandler("onPlayerVehicleEnter", getRootElement(), vei)

Esse também funciona
 

function vei(player)
    carro = getPedOccupiedVehicle(player)         
    nome = getVehicleName(carro)
    outputChatBox("O nome do veículo atual é: "..nome)
end
addEventHandler("onVehicleEnter", getRootElement(), vei)

Mais uma vez, sou iniciante... Mas tenho essas dúvidas que gostaria de esclarecer para evoluir.

 

Acredito que estou me perdendo muito no que usar dentro de "function ()"... 

Também peco para saber qual a diferença entre type: server/client/shared (Sei que no MTA explica mas na hora de aplicar tenho dificuldade, até agora uso mais o type: server)

Também acredito que erro muito em passar os parâmetros para os métodos, como getVehicleName devo indicar o parâmetro:  theVehicle


Alguma dica ou exemplo para eu não me embananar mais nessas questões? Estou praticando todos os dias para ver se entra na cabeça! 

Obrigado galera.

Link to post

a dica principal é primeiro ver se o evento ou método é clientside ou serverside/shared, resumindo os 3 tipos: client/shared/server:

client: os scripts clientside são baixados no pc do player, e executados na grande maioria das vezes sem sincronia com os outros, exemplo: setVehicleComponentVisible para esconder componentes do carro, só é visível para o player que solicitou, para ser visto por todos, precisaria de triggers e funções server para sincronizar/ser visível para outros

shared: são funções que funcionam tanto em serverside quanto clientside, createObject é um exemplo, a versão client cria um objeto visível só para o player que requisitou, a server é visivel pra todos (em uso normal), as vezes a versão client tem parâmetros diferentes da server, exemplo o setPlayerMoney

server: aqui o resultado do método/evento fica visível/disponível pra todos no server, a não ser que vc especifique que seja pra um player ou mais específicos, exemplo: outputChatBox

veja no artigo da wiki nos 2 eventos, um tem como primeiro parametro o player, e o outro o veiculo, vc deve ter se confundido com a palavra player que na verdade poderia ser qualquer coisa, os parâmetros vc pode usar qualquer palavra, exemplo server:
 

function vei()
    outputChatBox("O nome do veículo atual é: "..getVehicleName(source))--o source desse evento é o veiculo que o player entrou (wiki)
end
addEventHandler("onVehicleEnter", getRootElement(), vei)

--outro exemplo:

function vei(carroqueentrou)
    outputChatBox("O nome do veículo atual é: "..getVehicleName(carroqueentrou))--primeiro parametro = o carro que entraram, pode ser qualquer nome
end
addEventHandler("onPlayerVehicleEnter", getRootElement(), vei)

a dica tbm é lembrar que quando é evento, cada um tem seus parâmetros, e vc tbm pode usar o source de cada evento, e quanto usar comandos, tbm muda de server pra client (addCommandHandler)

  • Thanks 1
Link to post

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