Рейтинг - 5.0 (2)

В этом уроке мы детальнее рассмотрим класс World.

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

/* Создаёт взрыв в указанной точке: */
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
/* Задать значение трафика автомобилей по дорогам.
При значении 0.0 трафик будет отсутствовать и можно смело погонять по улицам: */
World.CarDensity = 5.0F
/* Здесь:
5.0F - плотность трафика(float). 2.0F - поумолчанию.
*/
Пример в Sanny Builder:
01EB: set_traffic_density_multiplier_to 0.0
/* Создаёт поезд: */
World.CreateMissionTrain(MyVec)
/* Здесь:
MyVec - координаты, объект класса Vector3

Возвращаемый параметр: объект класса Vehicle.
*/
Пример в Sanny Builder:
06D8: 0@ = create_train_at 2285.152 -1257.5 23.0 type 13 direction 1
/* Создать объект в указанной точке: */
World.CreateObject("03_graffiti_01_MH5", MyVec)
/* Здесь:
"03_graffiti_01_MH5" - ID объекта
MyVec - координаты, объект класса Vector3

Возвращаемый параметр: объект класса GTA.Object
*/
ID можно посмотреть в общем списке.

Пример в 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
/* Создать актёра в указанной точке: */
World.CreatePed("M_Y_BOUNCER_02", MyVec, RelationshipGroup.GroupPed)
/* Здесь:
"M_Y_BOUNCER_02" - модель актёра
MyVec - координаты, класс Vector3
GroupPed - тип пешехода

Возвращаемый параметр: объект класса Ped.
*/
Модели можно посмотреть здесь.

Пример в Sanny Builder:
009A: 0@ = create_actor_type 4 model #MALE01 at 0.0 0.0 0.0
/* Создать транспорт в указанной точке: */
World.CreateVehicle("BUS", MyVec)
/* Здесь:
"BUS" - модель транспорта
MyVec - координаты, объект класса Vector3

Возвращаемый параметр: объект класса Vehicle.
*/
Модели можно посмотреть здесь.

Пример в Sanny Builder:
00A5: 0@ = create_car #PONY at 0.0 0.0 0.0
/* Получить текущую дату: */
World.CurrentDate
/* Здесь:
Возвращаемый параметр: объект класса System.DateTime
*/
Пример в Sanny Builder:
07D0: $W = weekday
/* Получить или задать текущее время дня: */
World.CurrentDayTime;
/* Здесь:
tm - время, объект класса System.TimeSpan

Возвращаемый параметр: объект класса System.TimeSpan
*/
Пример в Sanny Builder:
00BF: $TH = current_time_hours, $TM = current_time_minutes
00C0: set_current_time 8 0
/* Потушить огни(огонь) везде: */
World.ExtinguishAllScriptFires();
Пример в Sanny Builder:
031A: remove_all_fires
/* Потушить огонь в указанной точке: */
World.ExtinguishFire(MyVec, 200.0F);
/* Здесь:
MyVec - координаты, объект класса Vector3
200.0F - радиус (float)
*/
Пример в Sanny Builder:
0980: extinguish_all_fires_at 100.0 -20.0 8.0 radius 200.0
/* Получить все объекты: */
World.GetAllObjects();
/* Здесь:
Возвращаемый параметр: массив класса GTA.Object
*/
Пример в Sanny Builder: нет
/* Получить всех пешеходов: */
World.GetAllPeds();
/* Здесь:
Возвращаемый параметр: массив класса Ped
*/
Пример в Sanny Builder: нет
/* Получить транспорт, который сейчас существует: */
World.GetAllVehicles();
/* Здесь:
Возвращаемый параметр: массив класса Vehicle
*/
Пример в Sanny Builder: нет
/* Получить ближайшего актёра относительно точки: */
World.GetClosestPed(MyVec, 20.0F);
/* Здесь:
MyVec - координаты, объект класса Vector3
20.0F - радиус поиска (float)

Возвращаемый параметр: объект класса Ped
*/
Пример в Sanny Builder:
08E5: get_actor_in_sphere 0.0 0.0 0.0 radius 5.0 handle 0@
/* Получить ближайший транспорт относительно точки: */
World.GetClosestVehicle(MyVec, 20.0F);
/* Здесь:
MyVec - координаты, объект класса Vector3
20.0F - радиус поиска (float)

Возвращаемый параметр: объект класса Vehicle
*/
Пример в Sanny Builder:
073E: get_car_in_sphere 0.0 0.0 0.0 radius 50.0 model 0 handle 0@
/* Получить координаты земли относительно точки: */
World.GetGroundPosition(MyVec);
/* Здесь:
MyVec - координаты, объект класса Vector3

Возвращаемый параметр: объект класса Vector3
*/
Пример в Sanny Builder: нет
/* Получает Z-координату земли: */
World.GetGroundZ(MyVec);
/* Здесь:
MyVec - координаты, объект класса Vector3

Возвращаемый параметр: число float
*/
Пример в Sanny Builder:
02CE: 4@ = ground_z_at 2@ 3@ 4@
/* Получить координаты ближайшего тротуара: */
World.GetNextPositionOnPavement(MyVec);
/* Здесь:
MyVec - координаты, объект класса Vector3

Возвращаемый параметр: объект класса Vector3
*/
Пример в Sanny Builder:
02C0: store_to 0@ 1@ 2@ ped_path_coords_closest_to 0@ 1@ 2@
/* Получить координаты ближайшего маршрута дороги: */
World.GetNextPositionOnStreet(MyVec);
/* Здесь:
MyVec - координаты, объект класса Vector3

Возвращаемый параметр: объект класса Vector3
*/
Пример в Sanny Builder:
02C1: store_to 0@ 1@ 1@ car_path_coords_closest_to 0@ 1@ 2@
/* Получить всех педов в указанной точке: */
World.GetPeds(MyVec, 20.0F);
/* Здесь:
MyVec - координаты, объект класса Vector3
20.0F - радиус поиска (float)

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

Возвращаемый параметр: объект класса Vector3
*/
Пример в Sanny Builder: не известно
/* Получить случайного пешехода: */
World.GetRandomPed(MyVec, 20.0F);
/* Здесь:
MyVec - координаты, объект класса Vector3
20.0F - радиус поиска (float)

Возвращаемый параметр: объект класса Ped
*/
Пример в Sanny Builder:
0A3E: unknown_get_actor_in_sphere 0@ 1@ 2@ radius 0.6 0.6 1.0 handle_as 3@
/* Получить имя улицы: */
World.GetStreetName(MyVec);
/* Здесь:
MyVec - координаты, объект класса Vector3

Возвращаемый параметр: имя (string)
*/
Пример в Sanny Builder: нет
/* Получить весь транспорт: */
World.GetVehicles(MyVec, 20.0F);
/* Здесь:
MyVec - координаты, объект класса Vector3
20.0F - радиус поиска (float)

Возвращаемый параметр: массив класса Vehicle
*/
Пример в Sanny Builder: нет
/* Получить имя зоны: */
World.GetZoneName(MyVec);
/* Здесь:
MyVec - координаты, объект класса Vector3

Возвращаемый параметр: название (string)
*/
Пример в Sanny Builder:
08F1: get_zone_at 1@ 2@ 3@ nameB_to 0@s
0843: get_zone_at 1@ 2@ 3@ nameA_to 0@s
/* Очень забавная команда, которая включает/выключает гравитацию: */
World.GravityEnabled = false;
/* Здесь:
false/true - включить/выключить возможность
*/
Пример в Sanny Builder: нет
/* Проверка "занято ли место чем-либо?": */
World.isPositionBlockedByMissionEntity(MyVec, 5.0F);
/* Здесь:
MyVec - координаты, объект класса Vector3
5.0F - радиус поиска (float)

Возвращаемый параметр: тип bool
*/
Пример в Sanny Builder: не нашел, но есть опкод
/* загрузить среду что-ли о_О. (???)
В общем эта команда у меня вызывает ошибку игры: */
World.LoadEnvironmentNow(MyVec);
/* Здесь:
MyVec - координаты, объект класса Vector3
*/
Пример в Sanny Builder: неизвестно
/* Закрепить (заморозить) время дня: */
World.LockDayTime();
Пример в Sanny Builder: неизвестно
/* Пропускает текущий день в календаре: */
World.OneDayForward();
Пример в Sanny Builder:
088E: set_next_day
/* Задать значение частоты появления пешеходов на тротуарах.
При значении 0.0 трафик будет отсутствовать: */
World.PedDensity = 1.0F;
/* Здесь:
1.0F - плотность трафика. 2.0F - поумолчанию
*/
Пример в Sanny Builder:
03DE: set_pedestrians_density_multiplier_to 0.0
/* Задать двери(от домов походу) некий статус(???): */
World.SetDoorState(DoorMod, MyVec, false, 20.0F);
/* Здесь:
DoorMod - объект класса Model
MyVec - координаты, объект класса Vector3
false/true - закрыть/открыть дверь
20.0F -угол поворота (???)
*/
Пример в Sanny Builder: неизвествно
/* Задать отношение одного типа пешеходов к другому: */
World.SetGroupRelationship( RelationshipGroup.Cop, Relationship.Like, RelationshipGroup.Crime );
/* Здесь:
Cop - тип пешеходов, которым задают отношение
Like - само отношение
Crime - тип пешехода, к которому будут относится
*/
Пример в Sanny Builder:
0746: set_acquaintance 1 of_actors_pedtype 8 to_actors_pedtype 0
/* Открывает всю территорию: */
World.UnlockAllIslands();
Пример в Sanny Builder:
0629: change_integer_stat 181 to 4
/* Открепить (розморозить) время дня: */
World.UnlockDayTime();
Пример в Sanny Builder: неизвестно
/* Получить или задать текущую погоду: */
World.Weather = Pogod;
/* Здесь:
Pogod - объект Weather

Возвращаемый параметр: объект Weather
*/
Пример в Sanny Builder:
001B6: set_weather 1

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

using System;
using System.Windows.Forms;
using GTA;

namespace TestScript {
 public class Thread : Script {
 public Thread() {
 Vector3 MyVec; Ped MyPed;

 while (true) {
 MyVec = Player.Character.Position;

 if (Game.isKeyPressed(Keys.Tab)) {
 Wait(5000);
 MyPed = World.CreatePed("M_Y_BOUNCER_02", MyVec, RelationshipGroup.Civillian_Male);
 Game.DisplayText("Ped Created!");
 }
 Wait(0);
 }

}}}

Теги: Мир, world
Вход на сайт

Поиск
Категории раздела
Мини-чат
Пожалуйста, все вопросы по скриптингу задавать на форуме!
Наш опрос
Какие GTA вы прошли ( сюжетная линия )?
Всего ответов: 32
Активность на сайте
Пожертвования
Кошельки WebMoney:
U859420971000
R407741810602
Z331072372430
E314272616890
Друзья сайта
Полезные ресурсы
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Сегодня нас посетили:
Рекомендую