# 000111. Vector - Что это такое и с чем его едят

Vector - Что это такое и с чем его едят|В этом уроке речь в этом уроке пойдёт о векторах.|wmysterio|wmysterio||||Всем привет! Мы продолжаем изучать скриптинг GTA IV. На очереди в нас "вектор". Термин весьма широкий и нужно сделать уточнение о том, что это в скриптинге.

В SannyBuilder мы писали координаты как последовательность чисел. В таком формате в C# обычно не пишут. Для этого создали несколько классов, которые описывают эту последовательность. Эти числа не всегда отвечают именно за координаты. Их можно представить в виде углов и прочего. На примере координат их легче всего понять.

А таких видов в нас три:

```
cs
Vector2 MyVect2;
Vector3 MyVect3;
Vector4 MyVect4;
```

Разница в них только в том, что хранят они разное к-во параметров "координат". Например, для**Vector3** существуют три основных свойства, для хранения этих "координат":

```
cs
MyVect3.X = 0.5F;
MyVect3.Y = 0.1F;
MyVect3.Z = 5.0F;
```

Кроме этого, есть одно удобство - структура имеет много методов, которые полезно будет использовать в скриптах. Рассмотрим эти функции:

<table data-header-hidden><thead><tr><th></th></tr></thead><tbody><tr><td><p>```</p><p>cs /* Получает дистанцию между двумя точками: <em>/ MyVect3.DistanceTo(MyVect3_1); /</em> Здесь: MyVect3_1 - другой объект Vector3</p><p>Возвращаемый тип: float */</p><pre><code>Пример в Sanny Builder:
</code></pre><p>050A: 0@ = dist_XYZ 1@ 2@ 3@ and_XYZ 4@ 5@ 6@</p><pre><code>&#x3C;/td>&#x3C;/tr>

\<tr>\<td> </code></pre><p>cs /\* Получает случайную точку, относительно вектора: <em>/ MyVect3.Around(30.0F); /</em> Здесь: 30.0F - радиус поиска</p><p>Возвращаемый тип: объект Vector3 \*/</p><pre><code>Пример в Sanny Builder: </code></pre><p>02C0: store 1@ 2@ 3@ ped\_path 4@ 5@ 6@ 02C1: store 1@ 2@ 3@ car\_path 4@ 5@ 6@</p><pre><code>\</td>\</tr>

\<tr>\<td> </code></pre><p>cs /\* Получить длину вектора (точно не скажу какую именно): <em>/ MyVect3.Length(); /</em> Здесь: Возвращаемый тип: float \*/</p><pre><code>Пример в Sanny Builder: нет\</td>\</tr>

\<tr>\<td> </code></pre><p>cs /\* Получить грунт вектора: <em>/ MyVect3.ToGround(); /</em> Здесь: Возвращаемый тип: объект Vector3 \*/</p><pre><code>Пример в Sanny Builder: </code></pre><p>02CE: 4@ = ground\_z\_at 1@ 2@ 4@</p><pre><code>\</td>\</tr>

\</tbody>\</table>

Для примера, сделаем следующий скрипт:

</code></pre><p>cs using System; using System.Windows.Forms; using GTA; namespace TestScript { public class Thread : Script { public Thread() {</p><p>Vector3 MyVect3; MyVect3.X = 10.0F; MyVect3.Y = 10.0F; MyVect3.Z = 2.0F;</p><p>while (true) { if ( Game.isKeyPressed(Keys.Tab)) { Player.TeleportTo(MyVect3); } Wait(0); }</p><p>} } }</p><pre><code>

Я подобрал координаты случайным образом, так как никаких программ для вычисления координат я не находил, но если постараюсь, то сделаю свою прогу.

Остальные типы векторов имеют похожие методы, только работают уже со своей последовательностью чисел. На этом краткий обзор завершен. До следующего урока!|733|1|0||vector\_chto\_ehto\_takoe\_i\_s\_chem\_ego\_edjat|1552392983 </code></pre></td></tr></tbody></table>


---

# 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/00200/00100/000111.-vector-chto-eto-takoe-i-s-chem-ego-edyat.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.
