# calculatePathRoute (Compartilhado)

> Calcula a rota mais curta pelos nós de caminho entre dois pontos, partindo do nó mais perto de cada um. Para carros, respeita as ruas de mão única.

- **Plataforma**: MY Multiplayer (MYMP)
- **Tipo**: Função Lua
- **Lado**: Compartilhado
- **Categoria**: Ruas e caminhos
- **URL**: https://wiki.mymp.gg/pt/calculatePathRoute

## Sintaxe

```lua
table, float|false calculatePathRoute(float fromX, fromY, fromZ, float toX, toY, toZ [, string type = car, bool water = false])
```

## Parâmetros

| Nome | Tipo | Descrição |
| --- | --- | --- |
| `fromX, fromY, fromZ` | `float` | De onde a rota sai. |
| `toX, toY, toZ` | `float` | Aonde a rota chega. |
| `type` | `string` | `car` para as ruas, `ped` para as calçadas e caminhos de pedestres. *(padrão: `car`)* |
| `water` | `bool` | `true` procura só nos caminhos de barco na água; `false`, só em terra. *(padrão: `false`)* |

## Retorno

A lista de ids de nó do início ao fim e o comprimento da rota em metros. `false` se não há rota.

Quando os dois pontos têm o mesmo nó mais perto, a lista vem vazia e o comprimento é 0.

## Exemplo

```lua
local position = getElementPosition(localPlayer)
local route, length = calculatePathRoute(position.x, position.y, position.z, 1481.0, -1740.0, 13.5)
if route then
    outputDebugString(("%d nodes, %.0f m"):format(#route, length))
end
```

### Atenção

A busca só passa por áreas carregadas. Para uma rota longa, peça a área com `requestPathNodesInArea` antes.

## Veja também

- [getPathNodeNeighbours (Compartilhado)](https://wiki.mymp.gg/pt/getPathNodeNeighbours.md): Lista os nós ligados a um nó de caminho e como é cada ligação.
- [getPathNodePosition (Compartilhado)](https://wiki.mymp.gg/pt/getPathNodePosition.md): Devolve a posição de um nó de caminho.
- [requestPathNodesInArea (Cliente)](https://wiki.mymp.gg/pt/requestPathNodesInArea.md): Pede que os nós de caminho de uma área sejam carregados além dos que estão perto do jogador. A área fica carregada até releasePathNodes.
