Меню
GTA 5 Red Dead Redemption 2 GTA San Andreas GTA Online GTA 6 GTA 4 GTA Vice City GTA 3 GTA CTW GTA VC Stories GTA LC Stories Rockstar Classics Для модмейкерів
Інше
Топ коментар за вчора
Підписуйся!

MoveObject и Create3DTextLabel в SA:MP


MoveObject и Create3DTextLabel в SA:MP    
Учебник по MoveObject и Create3DTextLabel

Чтобы создать движение/лейбл, вам понадобится MC (в прошлом уроке про него писал). Двигать объекты можно не только по позиции Z, но и по позициям X и Y.

Начнём учебник с Create3DTextLabel – самое простое в Pawn (ну естественно после создания и вставки в мод объекта/карты).

Например, вот вам самый простой код:

Create3DTextLabel("Верхняя строка\nНовая строка\nЕщё одна",COLOR_RED,pX, pY, pZ, VD,Int);


В этот код входят:

Create3DTextLabel – команда создания 3Д Лейбла;

("…"…); – внутренняя функция. «;» - всегда нужна в каждом коде.

Описание внутренней функции:

«"» - в кавычках обычно находится текст, выводимый в игру. В данном случае 3D Лейбл будет иметь в себе текст: «Верхняя строка» «Новая строка» «Ещё одна»

Ну, соответственно текст «Верхняя строка» и прочие будут текстом, выводимым в игре.
Код «\n» означает переход на следующую строку. В основном используется в диалоговых окнах.

COLOR_RED – цвет текста. Цвет так же можно настроить функцией {ColorID}. Например {FFFF00} – красный цвет. Цвета в коде выглядят примерно так:

{FFFF00}Верхняя строка\n{FFF000}Новая строка


Чтобы компилировалось без ошибки цвета (неопределённый символ COLOR_RED), в начало мода, ко всем #define добавим:

#define COLOR_RED 0xFF0000AA


Цвета можно узнать вот здесь.

Следующее, это pX – позиция X, например pX=186.82 – наземное движение влево/вправо по отношению севера (N) игры.

pY – позиция Y, например pY=296.25 – наземное движение вперёд/назад по отношению к N игры
pZ – позиция Z, например pZ=12.78 – высота
VD – дистанция просмотра. Я ставлю обычно 50.0, и мне нормально видно текст.
Int – виртуальный мир. По умолчанию ставится «0»

Как обычно, пример:

Create3DTextLabel("{FFFFFF}ID Дома: {F2FF00}1\n{FFFFFF}Владелец: {FF8000}Server\n{FFFFFF}Энтерабельность: {0080FF}По команде",COLOR_RED,2442.4746, -1387.7323, 22.9918,50.0,0);


Этот текст появится где-то недалеко от базы Биг Смоука и автомойки в Лос-Сантосе над Гроув Стрит.


MoveObject

Движение объектов тоже довольно просто освоить. Я пока знаю 2 метода движения объектов, но буду использовать более простой метод – Открытие ворот по таймеру:

Ко всем «new» добавьте:

new obj;
forward objclose();


В public OnGameModeInit() (иногда можно через FS делать, тогда там к public OnFilterScriptInit()) к объектам добавляем:

obj = CreateObject(968, 0, 0, 5, 0.00, 0.00, 0.00);


В public OnPlayerCommandText(playerid, cmdtext[]) добавляем команду:

{
if (strcmp (cmdtext, "/ololo", true) == 0)
        {
        MoveObject (obj, 0, 0, 15, 3);
        SetTimer ("objclose", 5000, 0);
        return 1;
        }


Дальше после движения создаём новый паблик:

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 секунд» написать «несколько секунд».

На этом мой небольшой урок закончен. Простите, что нет скриншотов, но думаю, тут они не нужны.

Удачи в создании движения объектов и 3Д текстовых лейблов.

By Duke Thealter (Егор) специально для LC
Сподобалась стаття?
, · Написати статтю


Проголосувати за статтю "MoveObject и Create3DTextLabel в SA:MP"
Голосів
 ПоганоЗадовільноОпосередкованоДобреВідмінно 
Рейтинг
656%

Патч 1.0.3.0 (EN)

21 березня 2009 GTA 4
Патч 1.0.3.0 для англійської версії GTA 4 виправляє безліч різних проблем, включаючи проблеми з графікою, мультиплеер і системою управління. Крім того, збільшена продуктивність гри. Повний список змін: GRAPHICS: Interior Lights for ATI 1...

GTA San Andreas - Camera Hack v1.2 для windows 7

13 травня 2010 GTA San Andreas
GTA San Andreas - Camera Hack v1.2 для windows 7 Напевно багато хто зіткнувся з проблемою що, дуже хороша програма GTA San Andreas - Camera Hack , Не працює під windows 7. Проблема в тому що з 7-ки навіщо то, по видаляли необхідні бібліоте...

Phone Service

5 жовтня 2010 GTA San Andreas
З цим модом ваш телефон більше не буде припадати пилом у вас в кишені, а стане для вас самим незамінним предметом в ігровому процесі !!! Цей мод дає можливість використовувати різні телефонні сервіси! Сам скрипт складається з двох частин - це телефон...

San Andreas HRT Pack (v1.3 SF)

29 листопада 2010 GTA San Andreas
San Andreas HRT Pack - глобальна модифікація для GTA: San Andreas, яка суттєво покращує якість графіки, замінюючи більшу частину старих текстур високоякісними аналогами у високій роздільній здатності. Тисячі текстур місцевості були перероб...

Autumn Mod 2.0 HRT

2 грудня 2010 GTA San Andreas
Autumn Mod - осіння модифікація для GTA: San Andreas, яку можна встановлювати як поверх оригінальної гри, так і поверх глобального мода HRT Pack (В такому випадку буде більше нововведень). Autumn Mod змінює спрайт трави, тек...

вторгнення прибульців

5 грудня 2010 GTA San Andreas
До Сан-Андреасу рухаються величезні інопланетні кораблі! ФОТО. Три гігантських непізнаних літаючих об'єкта, довжина яких становить десятки кілометрів, рухаються у напрямку до штату Сан-Андреас, повідомив журналістам хтось Істина (The Trut...

GreenEffects Mod (v1.0)

8 грудня 2010 GTA San Andreas
Green Effects Mod (v.1) глобальними модифікація яка включає: Повністю перероблений файл grass (Трава в GTA). Вбудовану бібліотеку ENBSeries завдяки їй в грі з'являться реалістичні відображення на автомобілях, стане більш реальною...


Інформація
Щоб залишати коментарі, необхідно зареєструватися на сайті.

3
коментар написаний, 17 жовтня 2012, 13:05
#
Viktor Mor
VIP-користувач
Модмейкер
Статус:
Коментарів:4562
Друзів:264
Репутація: 353
Гроші: 22$
Нагороди:: 13
GForums: VikMor

Karma: 6360
#
0
Цитата: Mishacool
Что это делает?

Лейблы для САМПа. laughing Тебе не понять...
Коментар переведений автоматично Показати переклад

--------------------


--------------------

2
коментар написаний, 9 жовтня 2012, 00:15
#
TheDuke
Пользователь
Статус:
Коментарів:92
Друзів:7
Репутація: 1
Гроші: 0$
Нагороди:: 1
#
0
Двигает объекты на сервере, и создаёт 3д лейбл, например здание сделал, и чтобы игроки знали, что оно твоё - поставил там лейбл
Коментар переведений автоматично Показати переклад

--------------------


--------------------

1
коментар написаний, 8 жовтня 2012, 20:37
#
Mishacool
Пользователь
Статус:
Коментарів:442
Друзів:67
Репутація: 16
Гроші: 0$
Нагороди:: 2
#
0
Что это делает?
Коментар переведений автоматично Показати переклад

--------------------

Ad
Опитування
Играете ли вы в GTA Online?
Играю
Не играю совсем

Підрахунок GTAшників

Рейтинг@Mail.ru





Change language


Допоможіть нам перекласти LibertyCity на іншу мову!


Ad