Обзор класса World|В этом уроке мы детальнее рассмотрим класс World.|wmysterio|wmysterio||||Начну с того, что класс позволяет создавать всевозможные игровые субъекты и управлять ними в мире. Так что давайте не будем терять время и рассмотрим какие функции имеет этот класс:
cs /* Создаёт взрыв в указанной точке: / World.AddExplosion(MyVec, ExplosionType.EMolotov, 750.0F, true, false, 10.0F) / Здесь: MyVec - координаты, объект класса Vector3 EMolotov - тип взрыва, экземпляр ExplosionType 750.0F - сила взрыва true - параметр указывает будет ли звучать звук самого взрыва false - параметр указывает что взрыв будет невидимым. 10.0F - указывает как сильно будет шататься камера при взрыве */
Пример в Sanny Builder:
0948: create_explosion_at 0@ 1@ 2@ type 11 camera_shake 10.0 0565: create_soundless_explosion_at 0@ 1@ 2@ type 11
</td></tr>
<tr><td>
cs /* Задать значение трафика автомобилей по дорогам. При значении 0.0 трафик будет отсутствовать и можно смело погонять по улицам: / World.CarDensity = 5.0F / Здесь: 5.0F - плотность трафика(float). 2.0F - поумолчанию. */
Пример в Sanny Builder:
01EB: set_traffic_density_multiplier_to 0.0
</td></tr>
<tr><td>
cs /* Создаёт поезд: / World.CreateMissionTrain(MyVec) / Здесь: MyVec - координаты, объект класса Vector3
Возвращаемый параметр: объект класса Vehicle. */
Пример в Sanny Builder:
06D8: 0@ = create_train_at 2285.152 -1257.5 23.0 type 13 direction 1
</td></tr>
<tr><td>
cs /* Создать объект в указанной точке: / World.CreateObject("03_graffiti_01_MH5", MyVec) / Здесь: "03_graffiti_01_MH5" - ID объекта MyVec - координаты, объект класса Vector3
Возвращаемый параметр: объект класса GTA.Object */
ID можно посмотреть в <a href="/dir/gta_iv/imena_modelej/2-1-0-47">общем списке</a>.<br><br>Пример в Sanny Builder:
029B: 0@ = init_object 1264 at 0.0 0.0 0.0 0107: 0@ = create_object 1264 at 0.0 0.0 0.0
</td></tr>
<tr><td>
cs /* Создать актёра в указанной точке: / World.CreatePed("M_Y_BOUNCER_02", MyVec, RelationshipGroup.GroupPed) / Здесь: "M_Y_BOUNCER_02" - модель актёра MyVec - координаты, класс Vector3 GroupPed - тип пешехода
Возвращаемый параметр: объект класса Ped. */
Модели можно посмотреть <a href="/dir/gta_iv/modeli_peshekhodov/2-1-0-49">здесь</a>.<br><br>Пример в Sanny Builder:
009A: 0@ = create_actor_type 4 model #MALE01 at 0.0 0.0 0.0
</td></tr>
<tr><td>
cs /* Создать транспорт в указанной точке: / World.CreateVehicle("BUS", MyVec) / Здесь: "BUS" - модель транспорта MyVec - координаты, объект класса Vector3
Возвращаемый параметр: объект класса Vehicle. */
Модели можно посмотреть <a href="/dir/gta_iv/modeli_transporta/2-1-0-50">здесь</a>.<br><br>Пример в Sanny Builder:
00A5: 0@ = create_car #PONY at 0.0 0.0 0.0
</td></tr>
<tr><td>
cs /* Получить текущую дату: / World.CurrentDate / Здесь: Возвращаемый параметр: объект класса System.DateTime */
Пример в Sanny Builder:
07D0: $W = weekday
</td></tr>
<tr><td>
cs /* Получить или задать текущее время дня: / World.CurrentDayTime; / Здесь: tm - время, объект класса System.TimeSpan
Возвращаемый параметр: объект класса System.TimeSpan */
cs /* Получить ближайший транспорт относительно точки: / World.GetClosestVehicle(MyVec, 20.0F); / Здесь: MyVec - координаты, объект класса Vector3 20.0F - радиус поиска (float)
cs /* Получить всех педов в указанной точке: / World.GetPeds(MyVec, 20.0F); / Здесь: MyVec - координаты, объект класса Vector3 20.0F - радиус поиска (float)
Возвращаемый параметр: массив класса Ped */
Пример в Sanny Builder: нет</td></tr>
<tr><td>
cs /* Получить случайную позицию (???): / World.GetPositionAround(MyVec, 5.0F); / Здесь: MyVec - координаты, объект класса Vector3 5.0F - радиус поиска (float) ???
Возвращаемый параметр: объект класса Vector3 */
Пример в Sanny Builder: не известно</td></tr>
<tr><td>
cs /* Получить случайного пешехода: / World.GetRandomPed(MyVec, 20.0F); / Здесь: MyVec - координаты, объект класса Vector3 20.0F - радиус поиска (float)
cs /* Очень забавная команда, которая включает/выключает гравитацию: / World.GravityEnabled = false; / Здесь: false/true - включить/выключить возможность */
Пример в Sanny Builder: нет</td></tr>
<tr><td>
cs /* Проверка "занято ли место чем-либо?": / World.isPositionBlockedByMissionEntity(MyVec, 5.0F); / Здесь: MyVec - координаты, объект класса Vector3 5.0F - радиус поиска (float)
Возвращаемый параметр: тип bool */
Пример в Sanny Builder: не нашел, но есть опкод</td></tr>
<tr><td>
cs /* загрузить среду что-ли о_О. (???) В общем эта команда у меня вызывает ошибку игры: / World.LoadEnvironmentNow(MyVec); / Здесь: MyVec - координаты, объект класса Vector3 */
Пример в Sanny Builder: неизвестно</td></tr>
<tr><td>
cs /* Закрепить (заморозить) время дня: */ World.LockDayTime();
Пример в Sanny Builder: неизвестно</td></tr>
<tr><td>
cs /* Пропускает текущий день в календаре: */ World.OneDayForward();
Пример в Sanny Builder:
088E: set_next_day
</td></tr>
<tr><td>
cs /* Задать значение частоты появления пешеходов на тротуарах. При значении 0.0 трафик будет отсутствовать: / World.PedDensity = 1.0F; / Здесь: 1.0F - плотность трафика. 2.0F - поумолчанию */
Пример в Sanny Builder:
03DE: set_pedestrians_density_multiplier_to 0.0
</td></tr>
<tr><td>
cs /* Задать двери(от домов походу) некий статус(???): / World.SetDoorState(DoorMod, MyVec, false, 20.0F); / Здесь: DoorMod - объект класса Model MyVec - координаты, объект класса Vector3 false/true - закрыть/открыть дверь 20.0F -угол поворота (???) */
Пример в Sanny Builder: неизвествно</td></tr>
<tr><td>
cs /* Задать отношение одного типа пешеходов к другому: / World.SetGroupRelationship( RelationshipGroup.Cop, Relationship.Like, RelationshipGroup.Crime ); / Здесь: Cop - тип пешеходов, которым задают отношение Like - само отношение Crime - тип пешехода, к которому будут относится */
cs /* Открывает всю территорию: */ World.UnlockAllIslands();
Пример в Sanny Builder:
0629: change_integer_stat 181 to 4
</td></tr>
<tr><td>
cs /* Открепить (розморозить) время дня: */ World.UnlockDayTime();
Пример в Sanny Builder: неизвестно</td></tr>
<tr><td>
cs /* Получить или задать текущую погоду: / World.Weather = Pogod; / Здесь: Pogod - объект Weather
Возвращаемый параметр: объект Weather */
Пример в Sanny Builder:
001B6: set_weather 1
</td></tr>
</tbody></table>
Давайте напишем пример, что бы закрепить наши знания. При нажатии кнопки <kdb>TAB</kdb>, пройдёт 5 секунд, после чего игра создаст актёра. Позиция берётся до отсчёта от самого игрока:
cs using System; using System.Windows.Forms; using GTA;
namespace TestScript { public class Thread : Script { public Thread() { Vector3 MyVec; Ped MyPed;