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

29 жовтня 2012
TheDuke

В цьому уроці ми вивчимо: 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 створює транспортний засіб, який можна видалити і затримати перед респавном.

Вид:

CreateVehicle(vehid, pX, pY, pZ, rZ, c1, c2, res);

Опис:

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, але видалити це ТЗ не можна.

Вид:

AddStaticVehicleEx(vehid, pX, pY, pZ, rZ, c1, c2);

Опис:

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. При вході на сервер (якщо це не РП режим) гравець може собі вибрати персонажа, яким буде грати. Щоб гравець вибрав персонажа, потрібно його додати в мод.

Вид:

AddPlayerClass(SkinID, pX, pY, pZ, rZ, w1, wa1, w2, wa2, w3, wa3);

Опис:

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. При вході на сервер (якщо це не РП режим) гравець може собі вибрати персонажа і команду (банду), якою буде грати. Щоб гравець вибрав персонажа, його потрібно додати в мод.

Вид:

AddPlayerClass(BD, SkinID, pX, pY, pZ, rZ, w1, wa1, w2, wa2, w3, wa3);

Опис:

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 = Катана
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

Рекомендуемые файлы