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

Description: Уроки по скриптингу
Moderator: SJplayer

Invi_Sasha M
Topic author, Мл. сержант
Мл. сержант
Avatar
Invi_Sasha M
Topic author, Мл. сержант
Мл. сержант
Posts: 34
Joined: 20 May 2013
With us: 11 years 4 months

#1by Invi_Sasha » 20 May 2013, 21:42

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

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

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


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


Code: Select all

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



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

Code: Select all


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 пишем:

Code: Select all

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ставим всю основу:

 


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

Image


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


  • Similar Topics
    Replies
    Views
    Last post

Return to “Уроки”

Who is online (over the past 5 minutes)

Users browsing this forum: 1 guest