Створення та видалення об'єктів у SA:MP

В цьому уроці ми вивчимо: 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 об'єктів.
Вид:
Функції:
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 – дистанція виду, можна її в коді не використовувати
Використання:
{
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. Ця команда створює пікап, який вміє обертатися. Його можна підібрати.
Вид:
Опис:
objid – ID моделі для пікапа (може бути будь-яка модель)
type – тип пікапа:
Оскільки я знаю не всі типи пікапів, я процитую їх з википедії:
1 - Не береться, існує весь час.
2 - Береться, через деякий час знову з'являється.
3 - Береться, з'являється знову після смерті
4 - Зникає через деякий час після створення (використовується для випадкового зброї?)
5 - Зникає через деякий час після створення (використовується для випадкового зброї?)
8 - Береться, але не виробляє ефекту. Зникає автоматично.
11 - Вибухає через кілька секунд після створення (бомби?)
12 - Вибухає через кілька секунд після створення.
13 - Повільно опускається до землі.
14 - Береться, але тільки в машині. Падає крізь об'єкти, створені за допомогою CreateObject, і т.п.
15 - Береться, з'являється знову після смерті.
19 - Береться, але не виробляє ефекту (іконки інформації?)
22 - Береться, з'являється знову після смерті.
23 - Береться, але не зникає.
pX – позиція X
pY – позиція Y
pZ – висота
VW – номер віртуального світу (-1 – об'єкт відображається у всіх 12 світах)
Використання:
new PU;
Далі:
в public OnGameModeInit() записую:
{
pickup = CreatePickup(1248, 2, 15.7, 125.105, 11.13, -1);
return 1;
}
Тут був створений пікап «не зрозуміло де» зі значком «GTA 3» (id 1248)
Слідом за CreatePickup піде команда DestroyPickup, яка видаляє створений пікап.
Вид:
На основі створеного пікапа з назвою PU, ми отримуємо:
Опис:
PU – назва створеного пікапа (записано в new і в CreatePickup)
Використання:
в public OnPlayerPickUpPickup(playerid, pickupid) записую:
{
if (pickupid == PU) DestroyPickup(PU);
}
Команда CreateExplosion створює будь-який існуючий вибух у певному місці на карті.
Вид:
Опис:
pX – позиція X
pY – позиція Y
pZ - висота
type – тип
Типи:
R – Радіус вибуху в метрах
Використання:
{
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):
Використання:
{
CreateVehicle(555, 128.6, 642.1, 54.4, 90, 3, 0, 60);
return 1;
}
Тут створено Виндзор (vehid 555), на невизначеній позиції, повернутий на 90 градусів з зовнішнім кольором – червоним, і внутрішнім – чорним, який зареспавниться через 60 секунд (aka 1 хвилина).
Наступна команда – AddStaticVehicle — додає на карту ТЗ, яке не можна видалити і не можна затримати перед респавном.
Вид:
Опис:
vehid – ID транспортного засобу (ТЗ)
pX – позиція X
pY – позиція Y
pZ - висота
rZ – поворот ТЗ
c1 – колір 1
c2 – колір 2
Використання:
{
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
Використання:
{
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
Використання
{
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
Використання:
{
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 1 = Кастет
ID 2 = Клюшка
ID 3 = Дубинка копів
ID 4 = Ніж
ID 5 = Бита
ID 6 = Лопата
ID 7 = Кий
ID 8 = Катана
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 = МП5
ID 30 = AK47
ID 31 = M4
ID 32 = Тек9
ID 33 = Вінтовка
ID 34 = Снайперка
ID 35 = Ракетниця
ID 36 = Самонаводчик
ID 37 = Вогнемет
ID 38 = Мінімашина
ID 39 = Міна
ID 40 = Детонатор
ID 41 = Балончик
ID 42 = Вогнегасник
ID 43 = Камера
ID 44 = Окуляри нічного бачення
ID 45 = Тепловізор
ID 46 = Парашут
Єгор - Жовтень 2012, спеціально для LibertyCity.Ru