("…"…); – внутрішня функція. «;» - завжди потрібна в кожному коді.
Опис внутрішньої функції:
«"» - в лапках зазвичай знаходиться текст, що виводиться у гру. У даному випадку 3D Лейбл буде мати в собі текст: «Верхній рядок» «Нова строка» «Ще один»
Ну, відповідно текст «Верхній рядок» та інші будуть текстом, що виводиться у грі. Код «\\n» означає перехід на наступний рядок. В основному використовується в діалогових вікнах.
COLOR_RED – колір тексту. Колір також можна налаштувати функцією {ColorID}. Наприклад {FFFF00} – червоний колір. Кольори в коді виглядають приблизно так:
{FFFF00}Верхній рядок\\n{FFF000}Нова строка
Щоб компілювалося без помилки кольорів (невизначений символ COLOR_RED), на початку мода, до всіх #define додамо:
Наступне, це pX – позиція X, наприклад pX=186.82 – наземний рух вліво/вправо відносно півночі (N) гри.
pY – позиція Y, наприклад pY=296.25 – наземний рух вперед/назад відносно N гри pZ – позиція Z, наприклад pZ=12.78 – висота VD – дистанція перегляду. Я зазвичай ставлю 50.0, і мені нормально видно текст. Int – віртуальний світ. За замовчуванням ставиться «0»
Цей текст з'явиться десь неподалік від бази Біг Смоука та автомийки в Лос-Сантосі над Гроув Стріт.
MoveObject
Рух об'єктів також досить просто освоїти. Я поки знаю 2 методи руху об'єктів, але буду використовувати більш простий метод – Відкриття воріт за таймером:
До всіх «new» додайте:
new obj; forward objclose();
В public OnGameModeInit() (іноді можна через FS робити, тоді там до public OnFilterScriptInit()) до об'єктів додаємо:
public objclose() { MoveObject (obj, 0, 0, 5, 3); }
Поясню: new obj; - додаємо до всіх new – це функція додавання чогось нового, в даному випадку новим буде об'єкт (obj можете змінити на своє) forward objclose(); - додаємо до всіх forward – це функція створення нового пабліка (наскільки я знаю) (objclose можете змінити на своє) obj = CreateObject(968, 0, 0, 5, 0.00, 0.00, 0.00); - створення нового об'єкта (назва залежить від того, який текст записаний в new) if (strcmp (cmdtext, "/ololo", true) == 0) – команда, для введення (ololo можна змінити текст на свій (наприклад /open)) MoveObject (obj, 0, 0, 15, 3); - рух об'єкта (obj залежить від new). Остання цифра в цьому коді (3) означає швидкість руху об'єкта. SetTimer ("objclose", 5000, 0); - установка таймера (5000 = 5 секунд, вимірювання йде в мілісекундах) В MoveObject(obj, 0, 0, 15, 3); мається на увазі, що ви вже вмієте користуватися координатами (але якщо хтось не знає, то перший 0 – pX, другий 0 – pY, 15 (в закритому варіанті 5) – це pZ, а наступне – 3 - я писав вище, це швидкість руху).
Також ви можете залишити перед таймером (SetTimer) рядок, і написати щось на кшталт SendClientMessage:
SendClientMessage(playerid,COLOR_RED,"Текст");
Замість слова «Текст» ви можете вставити що завгодно, але я, наприклад, вставлю «Ви підняли фігурину. Через 5 секунд вона закриється». Вийшло ось так:
SendClientMessage(playerid,COLOR_RED," Ви підняли шлагбаум. Через 5 секунд вона закриється ");
Не слід забувати про таймер. Якщо ви не знаєте, на скільки часу поставили таймер, то можете замість «5 секунд» написати «кілька секунд».
На цьому мій невеликий урок закінчено. Вибачте, що немає скріншотів, але думаю, тут вони не потрібні.
Удачі в створенні руху об'єктів та 3D текстових лейблів.