В этом уроке мы изучим: CreateObject, CreatePickup, DestroyPickup, CreateExplosion, CreateVehicle, AddStaticVehicle(Ex) и AddPlayerClass(Ex). Описание: CreateObject – Создает объект на карте сервера в определённом месте. CreatePickup – Создает на сервер в определённом месте динамический пикап, который можно подобрать. DestroyPickup – Удаляет созданный пикап. CreateExplosion – Создает на сервере в определённом месте взрыв CreateVehicle – Создает на сервере в определённом месте транспортное средство. AddStaticVehicle – То же самое, что и CreateVehicle, но при этом транспортное средство не может быть удалено. AddStaticVehicleEx – То же самое, что и AddStaticVehicle, но добавлена функция спавна транспортного средства. AddPlayerClass – Добавляет новый SkinID (ID скина) при выборе персонажа перед спавном (обычно несколько раз используется на DM/Drift) AddPlayerClassEx – То же самое, что и AddPlayerClass, только присутствует ещё и выбор команды (банды). Начну как по содержанию - с CreateObject. Эта команда создаёт объект на карте, который будет виден всем игрокам в определённом мире. Используются только ID объектов. Вид:
CreateObject(objid, pX, pY, pZ, rX, rY,rZ, VD);
Функции: objid – ID объекта. Как можно узнать ID объекта, написано в этом учебнике. pX – позиция X, например pX=186.82 – наземное движение влево/вправо по отношению севера (N) игры. pY – позиция Y, например pY=296.25 – наземное движение вперёд/назад по отношению к N игры pZ – позиция Z, например pZ=12.78 – высота rX – поворот модели на «x» градусов вниз или вверх относительно северу влево или вправо. rY – поворот модели на «x» градусов вниз или вверх относительно северу вперёд или назад. rZ – поворот модели влево или вправо на «x» градусов. VD – дистанция вида, можно её в коде не использовать Использование:
в public OnGameModeInit() создам два объекта:{ CreateObject(2587, 2001.195679, 1547.113892, 14.283400, 0.0, 0.0, 96.0); //Объект будет отображаться стандартно CreateObject(2587, 2001.195679, 1547.113892, 14.283400, 0.0, 0.0, 96.0, 250.0); //Объект будет виден на расстоянии 250 игровых метра return 1;}
Следующее по содержанию – CreatePickup. Эта команда создает пикап, который умеет вращаться. Его можно подобрать. Вид:
CreatePickup(objid, type, pX, pY, pZ, VW);
Описание: objid – ID модели для пикапа (может быть любая модель) type – тип пикапа: Так как я знаю не все типы пикапов, я процитирую их из википедии:
0 - Пикап не отображается.1 - Не берется, существует все время.2 - Берется, через некоторое время появляется заново. 3 - Берется, появляется снова после смерти4 - Исчезает через некоторое время после создания (используется для выпадающего оружия?)5 - Исчезает через некоторое время после создания (используется для выпадающего оружия?)8 - Берется, но не производит эффекта. Исчезает автоматически.11 - Взрывается через несколько секунд после создания (бомбы?)12 - Взрывается через несколько секунд после создания.13 - Медленно опускается к земле.14 - Берется, но только в машине. Падает сквозь объекты, созданные по CreateObject, и т.п.15 - Берется, появляется снова после смерти.19 - Берется, но не производит эффекта (иконки информации?)22 - Берется, появляется снова после смерти.23 - Берется, но не исчезает.
pX – позиция X pY – позиция Y pZ – высота VW – номер виртуального мира (-1 – объект отображается во всех 12 мирах) Использование:
Создаю пикап с названием PU new PU;
Далее: в public OnGameModeInit() записываю: { pickup = CreatePickup(1248, 2, 15.7, 125.105, 11.13, -1); return 1; }
Здесь был создан пикап «не понять где» со значком «GTA 3» (id 1248) Следом за CreatePickup пойдёт команда DestroyPickup, которая удаляет созданный пикап. Вид: На основе созданного пикапа с название PU, мы получаем:
DestroyPickup(PU);
Описание: PU – название созданного пикапа (записано в new и в CreatePickup) Использование:
в public OnPlayerPickUpPickup(playerid, pickupid) записываю:{ if (pickupid == PU) DestroyPickup(PU);}
Команда CreateExplosion создаёт любой существующий взрыв в определённом месте на карте. Вид:
CreateExplosion( pX, pY, pZ, type, R );
Описание: pX – позиция X pY – позиция Y pZ - высота type – тип Типы:
R – Радиус взрыва в метрах Использование:
в public OnGameModeInit() записываю:{ CreateExplosion(12,74.1,23,2,10.0); return 1;}
Здесь создаётся большой взрыв (expID 2), видимый, без взрывной волны, создающий огонь и наносящий физический урон, созданный опять же на «не понять каком месте». Команда CreateVehicle создаёт транспортное средство, которое можно удалить и задержать перед респавном. Вид:
Описание: vehid – ID транспортного средства (ТС) pX – позиция X pY – позиция Y pZ - высота rZ – поворот ТС c1 – цвет 1 c2 – цвет 2 res – время до респавна (через «x» секунд после выхода из ТС, оно респавнится) ID цветов (Colors):
Использование:
в public OnGameModeInit( ) записываю:{ CreateVehicle(555, 128.6, 642.1, 54.4, 90, 3, 0, 60); return 1;}
Здесь создан Виндзор (vehid 555), на неопределённой позиции, повернутый на 90 градусов с внешним цветом – красным, и внутренним – чёрным, который зареспавнится через 60 секунд (aka 1 минута). Следующая команда – AddStaticVehicle — добавляет на карту ТС, которое нельзя удалить и нельзя задержать перед респавном. Вид:
AddStaticVehicle(vehid, pX, pY, pZ, rZ, c1, c2);
Описание: vehid – ID транспортного средства (ТС) pX – позиция X pY – позиция Y pZ - высота rZ – поворот ТС c1 – цвет 1 c2 – цвет 2 Использование:
в public OnGameModeInit( ) записываю:{ AddStaticVehicle(555, 128.6, 642.1, 54.4, 90, 3, 0); return 1;}
Команда AddStaticVehicleEx - это то же самое, что и CreateVehicle, но удалить это ТС нельзя. Вид:
Описание: vehid – ID транспортного средства (ТС) pX – позиция X pY – позиция Y pZ - высота rZ – поворот ТС c1 – цвет 1 c2 – цвет 2 Использование:
в public OnGameModeInit( ) записываю:{ AddStaticVehicleEx(555, 128.6, 642.1, 54.4, 90, 3, 0, 60); return 1;}
Следующая команда – это AddPlayerClass. При входе на сервер (если это не РП режим) игрок может себе выбрать персонажа, которым будет играть. Чтобы игрок выбрал персонажа, нужно его добавить в мод. Вид:
Описание: SkinID – ID скина персонажа pX – позиция X pY – позиция Y pZ - высота rZ – поворот скина персонажа w1 – оружие 1 wa1 – патроны к оружию 1 w2 – оружие 2 wa2 – патроны к оружию 2 w3 – оружие 3 wa3 – патроны к оружию 3 Использование
в public OnGameModeInit() записываю:{ AddPlayerClass(299, -1689.6,1346.38,7.17, 75, 26, 30, 28, 150, 0, 0); return 1;}
Создает Клода (SkinID 299) с оружием: SawnOff (двуствольный пистолет-дробовик) с 30 патронами Micro SMG (Микро УЗИ) с 150 патронами 3й слот не используется Заспавнить должно где-то на Pier 69 И последняя команда - это AddPlayerClassEx. При входе на сервер (если это не РП режим) игрок может себе выбрать персонажа и команду (банду), которым будет играть. Чтобы игрок выбрал персонажа, нужно его добавить в мод. Вид:
Описание: BD - банда SkinID – ID скина персонажа pX – позиция X pY – позиция Y pZ - высота rZ – поворот скина персонажа w1 – оружие 1 wa1 – патроны к оружию 1 w2 – оружие 2 wa2 – патроны к оружию 2 w3 – оружие 3 wa3 – патроны к оружию 3 Использование:
в public OnGameModeInit() записываю:{ AddPlayerClassEx(1, 298, -1689.6,1346.38,7.17, 75, 22, 100, 25, 150, 33, 5); return 1;}
Создает Каталину(SkinID 298) в первой команде с оружием: Colt (Кольт 9мм) с 100 патронами Shotgun (Дробовик) с 150 патронами Contry Rifle (Винтовка без прицела) с 5 патронами Заспавнить должно где-то на Pier 69 ID оружия:
ID 0 = Кулак ID 1 = Кастет ID 2 = Клюшка ID 3 = Дубинка копов ID 4 = Нож ID 5 = БитаID 6 = Лопата ID 7 = КийID 8 = Kатана ID 9 = ПилаID 10 = Вибратор розовыйID 11 = Маленький белый вибратор ID 12 = Длинный белый вибратор ID 13 = Серебристый вибратор ID 14 = Цветы ID 15 = ТростьID 16 = ГранатаID 17 = Газовая ID 18 = Коктейль молотова ID 22 = Кольт 9ммID 23 = Тихий 9мм ID 24 = Дигл ID 25 = Шотган ID 26 = СавнОфф ID 27 = Шотган-Повторитель ID 28 = Микро СМГ ID 29 = МП5ID 30 = AK47 ID 31 = M4 ID 32 = Tек9 ID 33 = Винтовка ID 34 = Снайперка ID 35 = РакетницаID 36 = СамонаводительID 37 = ОгнемётID 38 = МиниганID 39 = МинаID 40 = ДетонаторID 41 = БаллончикID 42 = Огнетушитель ID 43 = Кaмера ID 44 = Очки ночного виденияID 45 = Тепловизор ID 46 = Парашют
Егор - Октябрь 2012, специально для LibertyCity.Ru