# 000120. Пути пешеходов и анимационные пути

Пути пешеходов и анимационные пути|Всем хай! С вами wmysterio! Относительно недавно мне удалось разобраться в путях пешеходов и научить актёров ходить по нужным точкам.|wmysterio|wmysterio||||Как я понял, есть несколько вариантов это организовать. Во-первых, через scm-пути. Следующие опкоды делают это:

```
05D6: clear_scmpath // Очищает ранее созданные scm-пути
05D7: add_point_to_scmpath 372.0 -120.1 1000.5 // Добавляет новую точку в scm-путь
05D8: AS_assign_scmpath to_actor 0@ flags 6 0 // Заставляет актёра двигаться по маршруту
07E7: AS_assign_scmpath_to_actor -1 in_car 0@ speed 25.0 flags 1 0 1 // Заставляет актёра двигаться по маршруту в транспорте
```

Как правило, указывают несколько точек, чтобы построить маршрут. Флаги для опкодов 05D8 и 07E7 мне пока не известны.

Во-вторых: через анимационные пути. Это вариант мне понравился больше, так как предыдущий как-то некорректно работает ( актёры двигаются стразу в последнюю точку, игнорируя остальные, во всяком случаи это было так раньше ). Давайте знакомится! Первый опкод создаёт новый анимационный путь, очищая все остальные:

```
0754: define_new_animation_path
```

Дальше идёт перечисление точек маршрута и анимации воспроизведения:

```
0755: add_animation_path_3D_coord -2699.4812 92.5335 4.3359 animation "NONE" IFP_file "NONE"
```

Здесь:\
-2699.4812 92.5335 4.3359 - координаты новой точки\
"NONE" - название IFP-файла и имени анимации. Если нам не нужно ничего воспроизводить, то оставляем "NONE"

Чтобы заставить актёра идти по этому пути, нужно использовать следующий опкод:

```
0817: assign_actor 0@ to_animation_path_with_walk_mode 4 route_mode 3
```

Здесь:\
0@ - хэндл актёра\
4 - режим походки актёра\
3 - режим маршрута

Я не вникал в параметры режимов, поэтому оставляю те, что были. Особенность этих параметров в том, что они заставляют актёра идти по кругу. Как только актёр достиг последней точки, он возвращается в первую и начинает маршрут сначала. Таким образом, можно использовать это в миссиях: актёры могут выступают в качестве охранников территории. Вот простой пример:

```
{$CLEO}
0000: NOP
actor.PutAt($PLAYER_ACTOR, -2706.4333, 101.8569, 4.1797)
Model.Load(#WBDYG1)
038B: load_requested_models
01EB: set_traffic_density_multiplier_to 0.0
03DE: set_pedestrians_density_multiplier_to 0.0
0395: clear_area 0 at -2699.7943 116.97724.336 radius 300.0
3@ = Actor.Create(Mission1, #WBDYG1, -2699.4812, 92.5335, 4.3359)
model.Destroy(#WBDYG1)
Actor.Angle(3@) = 358.83
0754: define_new_animation_path
0755: add_animation_path_3D_coord -2699.4812 92.5335 4.3359 animation "NONE" IFP_file "NONE"
0755: add_animation_path_3D_coord -2712.856 92.3864 4.3359 animation "NONE" IFP_file "NONE" 
0755: add_animation_path_3D_coord -2712.6179 116.1146 4.3359 animation "NONE" IFP_file "NONE"
0755: add_animation_path_3D_coord -2699.7942 116.9771 4.3359 animation "NONE" IFP_file "NONE" 
0817: assign_actor 3@ to_animation_path_with_walk_mode 4 route_mode 3
0A93: end_custom_thread
```

Результат: актёр двигается по нужным координатам:

![](https://github.com/wmysterio/scm-scripting-lessons/raw/resources/_pu/1/04086996.png)

Вот такой неожиданный для меня урок сочинился. Надеюсь, Вам он пригодится в Ваших модах :)|1944|1|0|04086996`png`600`337`400\`224\`\`||puti\_peshekhodov|1504589559


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://lessons.sannybuilder.com/00100/00200/000120.-puti-peshekhodov-i-animacionnye-puti.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
