[Мануал] Система Обьявлений

Описание: Уроки по скриптингу
Модератор: SJplayer

Invi_Sasha M
Автор темы, Мл. сержант
Мл. сержант
Аватара
Invi_Sasha M
Автор темы, Мл. сержант
Мл. сержант
Сообщения: 34
Зарегистрирован: 20 мая 2013
С нами: 10 лет 10 месяцев

#1 Invi_Sasha » 20 мая 2013, 21:42

Доброго времени суток. Сегодня я хочу поделится идеей иной системы объявлений.

Это не команда,а более реалистичная система на 3D текстах. Подобной темы я не находил.

В данном решении Я покажу Вам как сделать новую систему объявлений на примере доски у отеля Джефферсона.


Для начала добавим переменную для текста и переменную которая будет проверять место для объявления,а так же define для диалогового окна:


Код: Выделить всё

#define DIALOG_ADV 800  //800 - ID диалога,если используется,замените на свободный
#define COLOR_GREEN 0x32CD32AA//цвет для текста
new Text3D:AdversiteText[4];
new 
AdversiteCheck[4];
 



Теперь добавим объект (я использую доску,Вы можете поставить что угодно,по желанию) и тексты.
В OnGameModeInit добавим объект и наши 3D texts:

Код: Выделить всё


CreateObject
(3077,2217.19995117,-1172.30004883,24.70000076,0.00000000,0.00000000,0.00000000); // Доска
AdversiteText[1] = Create3DTextLabel("Рекламное место свободно!",COLOR_GREEN ,2217.19995117,-1172.30004883,27.70000076,10.0,0);//Текст наверху доски
AdversiteText[2] = Create3DTextLabel("Рекламное место свободно!",COLOR_GREEN ,2217.19995117,-1172.30004883,26.70000076,10.0,0);//Текст по центру доски
AdversiteText[3] = Create3DTextLabel("Рекламное место свободно!",COLOR_GREEN ,2217.19995117,-1172.30004883,25.70000076,10.0,0);//Текст внизу доски
 

[font=tahoma, geneva, sans-serif]- В данном случае,на 1 доску помещается 3 текста, т.е. можно повесить 3 объявления.


Теперь сделаем взаимодействие. Я покажу действие по кнопке,Вы же можете сделать по команде:
В OnPlayerKeyStateChange пишем:

Код: Выделить всё

if(newkeys == KEY_YES )//кнопка Y
{
  if(
IsPlayerInRangeOfPoint(playerid,1.5,2217.1870,-1171.6388,25.7266))//Если игрок нажал кнопку Y,и он рядом с доской
     
{
       if(
AdversiteCheck[1] == &&ampAdversiteCheck[2] == &&ampAdversiteCheck[3] == 1) return SendClientMessage (playerid,-1,"Все рекламные места заняты!");//проверка,не заняты ли места для объявлений
       
ShowPlayerDialog(playerid,DIALOG_ADV,DIALOG_STYLE_INPUT,"Написать объявление","Напишите свое объявление,и оно появится на доске.","Готово","Отмена");
    }
}


И наконец само объявление.
В [b]OnDialogResponse[/bставим всю основу:
Для начала,в начало паблика ставим переменные:

В [b]OnDialogResponse[/bставим всю основу:

 


Выглядеть это будет вот так:

Изображение


Автор: Неизвестен


  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Уроки»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 4 гостя