> For the complete documentation index, see [llms.txt](https://docs.bestway.com.ua/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.bestway.com.ua/gem-rts-v1-ru/nastroiki-igrovykh-parametrov/dvizhenie-po-sklonam.md).

# Движение по склонам

Штрафы за движение по склонам для юнитов в зависимости от направления (вверх или вниз) задаются в файле `pather.set`.\
В зависимости от угла наклона ячейки карты, скорость движения может меняться, что особенно важно для танков и других тяжелых единиц.

## Ключевые параметры

* `SlopeDown` – задает штрафы для движения вниз по склону. Аналог параметра `Height` из **Men of War**.
* `SlopeUp` – задает штрафы для движения вверх по склону.

### Примеры

#### Пример штрафов для движения вниз

```plaintext
{SlopeDown
    0  0  0  0  0
    0.1 0.3  0.5  0.8  1
    1  1  1 -1 -1
}
```

Комментарии в файле `pather.set` поясняют, как интерпретируются значения:

* `cost < 0` – движение запрещено.
* `cost = 0` – движение без штрафов.
* `cost > 0` – движение с штрафом, где путь вычисляется по формуле:

$$
pathCost = distance \* (terrainCost + slopeCost)
$$

#### Пример штрафов для движения вверх

```plaintext
{SlopeUp
    0  0  0  0  0 ;свободное движение до 30 градусов
    1 -1  -1  -1  -1 ;с 30 градусов вводятся штрафы
    -1 -1 -1 -1 -1 ;с 60 до 90 градусов движение запрещено
}
```

{% hint style="info" %}
При загрузке таблицы `SlopeDown`, она автоматически применяется и для `SlopeUp`, если последняя не указана отдельно.\
Если нужно сделать другие настройки для движения вверх, таблицу `SlopeUp` надо указать после`SlopeDown`.
{% endhint %}

## Отладка

Квантованные значения углов наклона для рассчетов Поиска Пути можно увидеть вместе с сеткой карты высот, включив её через сочетание клавиш `Alt+H` или установив флажок `heightmap` в интерфейсе вкладки [Редактора высот](/gem-rts-v1-ru/redaktor/redaktor-kart/redaktor-landshafta/redaktor-vysot.md#dopolnitelnye-funkcii-redaktora-vysot) `Heights`.\
Например, если в ячейке сетки `heightmap` отображается значение 5, это значит, что выбран угол в 30 градусов, соответствующий ячейке с индексом 5.

<figure><img src="https://2052154247-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx2fkAZ6oKGGdByFhKPpa%2Fuploads%2FKewIepVm5gES0o0Q7LlI%2FPath%20planner%20heightmap.png?alt=media&amp;token=19ef3451-5d69-4ddc-8051-0b7f5d7aad37" alt=""><figcaption><p>Карта поиска пути</p></figcaption></figure>

## Рекомендации для настройки

* **Юниты техники**\
  Предполагается, что юниты техники движутся прямо вниз без специального пересчета поиска пути.\
  При движении вверх рекомендуется выбирать альтернативный маршрут.
* **Юниты пехоты**\
  Предполагается, что юниты пехоты не должны пытаться преодолевать обрывы. Они должны автоматически выбирать обходные пути.

## Особенности использования

В **сетевом режиме игры** для юнитов типа `human` параметр `SlopeUp` в Поиске Пути не поддерживается. Штрафы настраиваются через таблицу `Height\SlopeDown`.

Для юнитов техники необходимо настроить обе таблицы (`SlopeDown` и `SlopeUp`).

## Требования к картам

Движение по склонам работает согласно таблиц (`SlopeDown` и `SlopeUp`) при условии, что на картах нет участков, размеченных флагом `no_pass`.
