Veículos
Estas funções falam com o veículo que o jogador tem de fato na frente dele: o carro físico que este cliente carregou, com suas peças, rodas, rotor e estado de motor. É por isso que elas alcançam coisas que o servidor nunca vê — mexer numa peça isolada da lataria, mudar o tamanho das rodas, ler a marcha atual ou dar a um único carro a sua própria gravidade.
Tudo nesta página é local para o jogador que está rodando o script. Nada é enviado ao servidor nem aos outros jogadores: o carro fica diferente só nesta máquina.
Quando você passa algo que não é um veículo, a maioria das funções devolve false e escreve o motivo no console de debug. Algumas — cada página diz quais — geram um erro de Lua, que interrompe o código que as chamou.
Um veículo fora de stream (longe demais para este cliente tê-lo carregado) não tem carro físico, mas este cliente continua lembrando o que sabia dele por último e o que os scripts definiram nele. A maioria dos getters responde com essa memória, e a maioria dos setters guarda o novo valor e o aplica quando o carro volta para perto. Onde o comportamento é diferente, está dito na própria função.
Estas 61 funções existem somente no cliente. Chamá-las de um script de servidor resulta em erro de valor nulo.
Veja também as funções compartilhadas de Veículos, que funcionam nos dois lados.
Veículos criados no cliente
Seção intitulada “Veículos criados no cliente”Um veículo criado por um script de cliente existe só na máquina daquele jogador — ninguém mais o vê.
Para removê-lo, use destroyElement, que é a função de destruição de qualquer elemento:
local carro = createVehicle(411, 1959.55, -1714.46, 15.5)
-- some com ele dez segundos depoissetTimer(function() destroyElement(carro)end, 10000, 1)Um veículo que veio do servidor pertence ao servidor: destruí-lo no cliente é recusado.
Faróis e câmbio
Seção intitulada “Faróis e câmbio”Janelas
Seção intitulada “Janelas”Os índices de janela vão de 0 a 6. Fora disso, false, sem mensagem.
As rodas são numeradas na ordem dianteira esquerda, traseira esquerda, dianteira direita, traseira direita:
| Índice | Nome | Roda |
|---|---|---|
0 | "front_left" | Dianteira esquerda |
1 | "rear_left" | Traseira esquerda |
2 | "front_right" | Dianteira direita |
3 | "rear_right" | Traseira direita |
Motos têm só duas rodas, então nelas apenas os índices 0 e 1 significam alguma coisa.
Rotores e hélices
Seção intitulada “Rotores e hélices”Peça ajustável
Seção intitulada “Peça ajustável”Alguns modelos têm uma peça móvel: uma caçamba que bascula, um garfo que levanta, uma asa que dobra. As funções abaixo leem e escrevem o quanto essa peça andou, como um número inteiro.
| Modelo | Veículo | Modelo | Veículo |
|---|---|---|---|
406 | Dumper | 525 | Towtruck |
443 | Packer | 530 | Forklift |
486 | Dozer | 531 | Tractor |
520 | Hydra | 592 | Andromada |
524 | Cement Truck |
O nitro só existe num veículo depois que um dos upgrades de nitro (1008, 1009 ou 1010) é instalado com addVehicleUpgrade. Sem ele, todas as funções abaixo devolvem false.
Ligar e desligar o impulso é com setVehicleNitroActivated, na página compartilhada.
Gravidade
Seção intitulada “Gravidade”Cada veículo pode ter a sua própria direção de gravidade, na forma de um vetor. O padrão é 0, 0, -1 — para baixo.
Giro e congelamento
Seção intitulada “Giro e congelamento”Componentes
Seção intitulada “Componentes”Um componente é uma peça com nome dentro do modelo do veículo — uma porta, o capô, uma roda, o chassi. Dá para mover, girar, redimensionar e esconder cada uma separadamente. O getVehicleComponents mostra os nomes que aquele modelo realmente tem.
Posições, rotações e escalas são lidas e escritas em relação a uma base:
| Base | Significado |
|---|---|
"world" | Coordenadas do mundo. |
"root" | Em relação ao próprio veículo. |
"parent" | Em relação à peça da qual o componente depende. |
O argumento de base é sempre opcional, e cada função tem o seu padrão — "root" para posições, "parent" para rotações e escalas. Qualquer outro texto devolve false com um aviso no console de debug.
Um nome de componente que o modelo não tem devolve false.
Dummies
Seção intitulada “Dummies”Dummies são os pontos de referência que o modelo carrega: onde ficam os faróis, de onde sai a fumaça do escapamento, onde um reboque engata. Eles têm nome, não número:
| Nome | Ponto |
|---|---|
"light_front_main" | Faróis dianteiros principais |
"light_rear_main" | Lanternas traseiras principais |
"light_front_second" | Faróis dianteiros secundários |
"light_rear_second" | Lanternas traseiras secundárias |
"seat_front" | Banco da frente |
"seat_rear" | Banco de trás |
"exhaust" | Escapamento |
"engine" | Motor |
"gas_cap" | Tampa do tanque |
"trailer_attach" | Engate do reboque |
"hand_rest" | Guidão / apoio de mão |
"exhaust_second" | Segundo escapamento |
"wing_airtrail" | Ponta da asa de onde sai o rastro |
"veh_gun" | Arma do veículo |
O nome é comparado primeiro exatamente e depois em minúsculas. Qualquer outro nome é recusado: getVehicleDummyPosition, setVehicleDummyPosition e getVehicleModelDummyDefaultPosition geram um erro de Lua, as outras funções de modelo devolvem false com um aviso no console de debug.
São dois conjuntos de funções: as que recebem um veículo mexem naquele carro só, e as que recebem um ID de modelo mexem no modelo em si, e com ele em todos os veículos daquele modelo neste cliente.
Tamanho das rodas do modelo
Seção intitulada “Tamanho das rodas do modelo”O tamanho da roda é uma propriedade do modelo, então mudá-lo afeta todos os veículos daquele modelo neste cliente. Os dois eixos podem ter tamanhos diferentes:
| Grupo | Rodas |
|---|---|
"front_axle" | Rodas dianteiras |
"rear_axle" | Rodas traseiras |
"all_wheels" | Os dois eixos de uma vez |
Qualquer outro texto gera um erro de Lua.
Pontos de entrada
Seção intitulada “Pontos de entrada”Todo modelo de veículo tem um conjunto de configurações de som: qual banco de som de motor usa, a buzina, o rádio, o som das portas e assim por diante. Dá para mudá-las para um modelo inteiro ou para um só veículo; um veículo com configurações próprias ignora mudanças posteriores no modelo dele. Os nomes das configurações e os valores que cada uma aceita estão listados em setVehicleAudioSetting.
As seis funções geram um erro de Lua diante de um argumento inválido, e nenhuma delas chega ao servidor ou aos outros jogadores.