# 000116. Обзор класса World

Обзор класса World|В этом уроке мы детальнее рассмотрим класс World.|wmysterio|wmysterio||||Начну с того, что класс позволяет создавать всевозможные игровые субъекты и управлять ними в мире. Так что давайте не будем терять время и рассмотрим какие функции имеет этот класс:

<table data-header-hidden><thead><tr><th></th></tr></thead><tbody><tr><td><p>```</p><p>cs /* Создаёт взрыв в указанной точке: <em>/ World.AddExplosion(MyVec, ExplosionType.EMolotov, 750.0F, true, false, 10.0F) /</em> Здесь: MyVec - координаты, объект класса Vector3 EMolotov - тип взрыва, экземпляр ExplosionType 750.0F - сила взрыва true - параметр указывает будет ли звучать звук самого взрыва false - параметр указывает что взрыв будет невидимым. 10.0F - указывает как сильно будет шататься камера при взрыве */</p><pre><code>Пример в Sanny Builder:
</code></pre><p>0948: create_explosion_at 0@ 1@ 2@ type 11 camera_shake 10.0 0565: create_soundless_explosion_at 0@ 1@ 2@ type 11</p><pre><code>&#x3C;/td>&#x3C;/tr>

\<tr>\<td> </code></pre><p>cs /\* Задать значение трафика автомобилей по дорогам. При значении 0.0 трафик будет отсутствовать и можно смело погонять по улицам: <em>/ World.CarDensity = 5.0F /</em> Здесь: 5.0F - плотность трафика(float). 2.0F - поумолчанию. \*/</p><pre><code>Пример в Sanny Builder: </code></pre><p>01EB: set\_traffic\_density\_multiplier\_to 0.0</p><pre><code>\</td>\</tr>

\<tr>\<td> </code></pre><p>cs /\* Создаёт поезд: <em>/ World.CreateMissionTrain(MyVec) /</em> Здесь: MyVec - координаты, объект класса Vector3</p><p>Возвращаемый параметр: объект класса Vehicle. \*/</p><pre><code>Пример в Sanny Builder: </code></pre><p>06D8: 0@ = create\_train\_at 2285.152 -1257.5 23.0 type 13 direction 1</p><pre><code>\</td>\</tr>

\<tr>\<td> </code></pre><p>cs /\* Создать объект в указанной точке: <em>/ World.CreateObject("03\_graffiti\_01\_MH5", MyVec) /</em> Здесь: "03\_graffiti\_01\_MH5" - ID объекта MyVec - координаты, объект класса Vector3</p><p>Возвращаемый параметр: объект класса GTA.Object \*/</p><pre><code>ID можно посмотреть в \<a href="/dir/gta\_iv/imena\_modelej/2-1-0-47">общем списке\</a>.\<br>\<br>Пример в Sanny Builder: </code></pre><p>029B: 0@ = init\_object 1264 at 0.0 0.0 0.0 0107: 0@ = create\_object 1264 at 0.0 0.0 0.0</p><pre><code>\</td>\</tr>

\<tr>\<td> </code></pre><p>cs /\* Создать актёра в указанной точке: <em>/ World.CreatePed("M\_Y\_BOUNCER\_02", MyVec, RelationshipGroup.GroupPed) /</em> Здесь: "M\_Y\_BOUNCER\_02" - модель актёра MyVec - координаты, класс Vector3 GroupPed - тип пешехода</p><p>Возвращаемый параметр: объект класса Ped. \*/</p><pre><code>Модели можно посмотреть \<a href="/dir/gta\_iv/modeli\_peshekhodov/2-1-0-49">здесь\</a>.\<br>\<br>Пример в Sanny Builder: </code></pre><p>009A: 0@ = create\_actor\_type 4 model #MALE01 at 0.0 0.0 0.0</p><pre><code>\</td>\</tr>

\<tr>\<td> </code></pre><p>cs /\* Создать транспорт в указанной точке: <em>/ World.CreateVehicle("BUS", MyVec) /</em> Здесь: "BUS" - модель транспорта MyVec - координаты, объект класса Vector3</p><p>Возвращаемый параметр: объект класса Vehicle. \*/</p><pre><code>Модели можно посмотреть \<a href="/dir/gta\_iv/modeli\_transporta/2-1-0-50">здесь\</a>.\<br>\<br>Пример в Sanny Builder: </code></pre><p>00A5: 0@ = create\_car #PONY at 0.0 0.0 0.0</p><pre><code>\</td>\</tr>

\<tr>\<td> </code></pre><p>cs /\* Получить текущую дату: <em>/ World.CurrentDate /</em> Здесь: Возвращаемый параметр: объект класса System.DateTime \*/</p><pre><code>Пример в Sanny Builder: </code></pre><p>07D0: $W = weekday</p><pre><code>\</td>\</tr>

\<tr>\<td> </code></pre><p>cs /\* Получить или задать текущее время дня: <em>/ World.CurrentDayTime; /</em> Здесь: tm - время, объект класса System.TimeSpan</p><p>Возвращаемый параметр: объект класса System.TimeSpan \*/</p><pre><code>Пример в Sanny Builder: </code></pre><p>00BF: $TH = current\_time\_hours, $TM = current\_time\_minutes 00C0: set\_current\_time 8 0</p><pre><code>\</td>\</tr>

\<tr>\<td> </code></pre><p>cs /\* Потушить огни(огонь) везде: \*/ World.ExtinguishAllScriptFires();</p><pre><code>Пример в Sanny Builder: </code></pre><p>031A: remove\_all\_fires</p><pre><code>\</td>\</tr>

\<tr>\<td> </code></pre><p>cs /\* Потушить огонь в указанной точке: <em>/ World.ExtinguishFire(MyVec, 200.0F); /</em> Здесь: MyVec - координаты, объект класса Vector3 200.0F - радиус (float) \*/</p><pre><code>Пример в Sanny Builder: </code></pre><p>0980: extinguish\_all\_fires\_at 100.0 -20.0 8.0 radius 200.0</p><pre><code>\</td>\</tr>

\<tr>\<td> </code></pre><p>cs /\* Получить все объекты: <em>/ World.GetAllObjects(); /</em> Здесь: Возвращаемый параметр: массив класса GTA.Object \*/</p><pre><code>Пример в Sanny Builder: нет\</td>\</tr>

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

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

\<tr>\<td> </code></pre><p>cs /\* Получить ближайшего актёра относительно точки: <em>/ World.GetClosestPed(MyVec, 20.0F); /</em> Здесь: MyVec - координаты, объект класса Vector3 20.0F - радиус поиска (float)</p><p>Возвращаемый параметр: объект класса Ped \*/</p><pre><code>Пример в Sanny Builder: </code></pre><p>08E5: get\_actor\_in\_sphere 0.0 0.0 0.0 radius 5.0 handle 0@</p><pre><code>\</td>\</tr>

\<tr>\<td> </code></pre><p>cs /\* Получить ближайший транспорт относительно точки: <em>/ World.GetClosestVehicle(MyVec, 20.0F); /</em> Здесь: MyVec - координаты, объект класса Vector3 20.0F - радиус поиска (float)</p><p>Возвращаемый параметр: объект класса Vehicle \*/</p><pre><code>Пример в Sanny Builder: </code></pre><p>073E: get\_car\_in\_sphere 0.0 0.0 0.0 radius 50.0 model 0 handle 0@</p><pre><code>\</td>\</tr>

\<tr>\<td> </code></pre><p>cs /\* Получить координаты земли относительно точки: <em>/ World.GetGroundPosition(MyVec); /</em> Здесь: MyVec - координаты, объект класса Vector3</p><p>Возвращаемый параметр: объект класса Vector3 \*/</p><pre><code>Пример в Sanny Builder: нет\</td>\</tr>

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

\<tr>\<td> </code></pre><p>cs /\* Получить координаты ближайшего тротуара: <em>/ World.GetNextPositionOnPavement(MyVec); /</em> Здесь: MyVec - координаты, объект класса Vector3</p><p>Возвращаемый параметр: объект класса Vector3 \*/</p><pre><code>Пример в Sanny Builder: </code></pre><p>02C0: store\_to 0@ 1@ 2@ ped\_path\_coords\_closest\_to 0@ 1@ 2@</p><pre><code>\</td>\</tr>

\<tr>\<td> </code></pre><p>cs /\* Получить координаты ближайшего маршрута дороги: <em>/ World.GetNextPositionOnStreet(MyVec); /</em> Здесь: MyVec - координаты, объект класса Vector3</p><p>Возвращаемый параметр: объект класса Vector3 \*/</p><pre><code>Пример в Sanny Builder: </code></pre><p>02C1: store\_to 0@ 1@ 1@ car\_path\_coords\_closest\_to 0@ 1@ 2@</p><pre><code>\</td>\</tr>

\<tr>\<td> </code></pre><p>cs /\* Получить всех педов в указанной точке: <em>/ World.GetPeds(MyVec, 20.0F); /</em> Здесь: MyVec - координаты, объект класса Vector3 20.0F - радиус поиска (float)</p><p>Возвращаемый параметр: массив класса Ped \*/</p><pre><code>Пример в Sanny Builder: нет\</td>\</tr>

\<tr>\<td> </code></pre><p>cs /\* Получить случайную позицию (???): <em>/ World.GetPositionAround(MyVec, 5.0F); /</em> Здесь: MyVec - координаты, объект класса Vector3 5.0F - радиус поиска (float) ???</p><p>Возвращаемый параметр: объект класса Vector3 \*/</p><pre><code>Пример в Sanny Builder: не известно\</td>\</tr>

\<tr>\<td> </code></pre><p>cs /\* Получить случайного пешехода: <em>/ World.GetRandomPed(MyVec, 20.0F); /</em> Здесь: MyVec - координаты, объект класса Vector3 20.0F - радиус поиска (float)</p><p>Возвращаемый параметр: объект класса Ped \*/</p><pre><code>Пример в Sanny Builder: </code></pre><p>0A3E: unknown\_get\_actor\_in\_sphere 0@ 1@ 2@ radius 0.6 0.6 1.0 handle\_as 3@</p><pre><code>\</td>\</tr>

\<tr>\<td> </code></pre><p>cs /\* Получить имя улицы: <em>/ World.GetStreetName(MyVec); /</em> Здесь: MyVec - координаты, объект класса Vector3</p><p>Возвращаемый параметр: имя (string) \*/</p><pre><code>Пример в Sanny Builder: нет\</td>\</tr>

\<tr>\<td> </code></pre><p>cs /\* Получить весь транспорт: <em>/ World.GetVehicles(MyVec, 20.0F); /</em> Здесь: MyVec - координаты, объект класса Vector3 20.0F - радиус поиска (float)</p><p>Возвращаемый параметр: массив класса Vehicle \*/</p><pre><code>Пример в Sanny Builder: нет\</td>\</tr>

\<tr>\<td> </code></pre><p>cs /\* Получить имя зоны: <em>/ World.GetZoneName(MyVec); /</em> Здесь: MyVec - координаты, объект класса Vector3</p><p>Возвращаемый параметр: название (string) \*/</p><pre><code>Пример в Sanny Builder: </code></pre><p>08F1: get\_zone\_at 1@ 2@ 3@ nameB\_to 0\@s 0843: get\_zone\_at 1@ 2@ 3@ nameA\_to 0\@s</p><pre><code>\</td>\</tr>

\<tr>\<td> </code></pre><p>cs /\* Очень забавная команда, которая включает/выключает гравитацию: <em>/ World.GravityEnabled = false; /</em> Здесь: false/true - включить/выключить возможность \*/</p><pre><code>Пример в Sanny Builder: нет\</td>\</tr>

\<tr>\<td> </code></pre><p>cs /\* Проверка "занято ли место чем-либо?": <em>/ World.isPositionBlockedByMissionEntity(MyVec, 5.0F); /</em> Здесь: MyVec - координаты, объект класса Vector3 5.0F - радиус поиска (float)</p><p>Возвращаемый параметр: тип bool \*/</p><pre><code>Пример в Sanny Builder: не нашел, но есть опкод\</td>\</tr>

\<tr>\<td> </code></pre><p>cs /\* загрузить среду что-ли о\_О. (???) В общем эта команда у меня вызывает ошибку игры: <em>/ World.LoadEnvironmentNow(MyVec); /</em> Здесь: MyVec - координаты, объект класса Vector3 \*/</p><pre><code>Пример в Sanny Builder: неизвестно\</td>\</tr>

\<tr>\<td> </code></pre><p>cs /\* Закрепить (заморозить) время дня: \*/ World.LockDayTime();</p><pre><code>Пример в Sanny Builder: неизвестно\</td>\</tr>

\<tr>\<td> </code></pre><p>cs /\* Пропускает текущий день в календаре: \*/ World.OneDayForward();</p><pre><code>Пример в Sanny Builder: </code></pre><p>088E: set\_next\_day</p><pre><code>\</td>\</tr>

\<tr>\<td> </code></pre><p>cs /\* Задать значение частоты появления пешеходов на тротуарах. При значении 0.0 трафик будет отсутствовать: <em>/ World.PedDensity = 1.0F; /</em> Здесь: 1.0F - плотность трафика. 2.0F - поумолчанию \*/</p><pre><code>Пример в Sanny Builder: </code></pre><p>03DE: set\_pedestrians\_density\_multiplier\_to 0.0</p><pre><code>\</td>\</tr>

\<tr>\<td> </code></pre><p>cs /\* Задать двери(от домов походу) некий статус(???): <em>/ World.SetDoorState(DoorMod, MyVec, false, 20.0F); /</em> Здесь: DoorMod - объект класса Model MyVec - координаты, объект класса Vector3 false/true - закрыть/открыть дверь 20.0F -угол поворота (???) \*/</p><pre><code>Пример в Sanny Builder: неизвествно\</td>\</tr>

\<tr>\<td> </code></pre><p>cs /\* Задать отношение одного типа пешеходов к другому: <em>/ World.SetGroupRelationship( RelationshipGroup.Cop, Relationship.Like, RelationshipGroup.Crime ); /</em> Здесь: Cop - тип пешеходов, которым задают отношение Like - само отношение Crime - тип пешехода, к которому будут относится \*/</p><pre><code>Пример в Sanny Builder: </code></pre><p>0746: set\_acquaintance 1 of\_actors\_pedtype 8 to\_actors\_pedtype 0</p><pre><code>\</td>\</tr>

\<tr>\<td> </code></pre><p>cs /\* Открывает всю территорию: \*/ World.UnlockAllIslands();</p><pre><code>Пример в Sanny Builder: </code></pre><p>0629: change\_integer\_stat 181 to 4</p><pre><code>\</td>\</tr>

\<tr>\<td> </code></pre><p>cs /\* Открепить (розморозить) время дня: \*/ World.UnlockDayTime();</p><pre><code>Пример в Sanny Builder: неизвестно\</td>\</tr>

\<tr>\<td> </code></pre><p>cs /\* Получить или задать текущую погоду: <em>/ World.Weather = Pogod; /</em> Здесь: Pogod - объект Weather</p><p>Возвращаемый параметр: объект Weather \*/</p><pre><code>Пример в Sanny Builder: </code></pre><p>001B6: set\_weather 1</p><pre><code>\</td>\</tr>

\</tbody>\</table>

Давайте напишем пример, что бы закрепить наши знания. При нажатии кнопки \<kdb>TAB\</kdb>, пройдёт 5 секунд, после чего игра создаст актёра. Позиция берётся до отсчёта от самого игрока:

</code></pre><p>cs using System; using System.Windows.Forms; using GTA;</p><p>namespace TestScript { public class Thread : Script { public Thread() { Vector3 MyVec; Ped MyPed;</p><p>while (true) { MyVec = Player.Character.Position;</p><p>if (Game.isKeyPressed(Keys.Tab)) { Wait(5000); MyPed = World.CreatePed("M\_Y\_BOUNCER\_02", MyVec, RelationshipGroup.Civillian\_Male); Game.DisplayText("Ped Created!"); } Wait(0); }</p><p>}}}</p><pre><code>|1046|1|0||obzor\_klassa\_world|1554383494 </code></pre></td></tr></tbody></table>
