Доброго времени суток. Сегодня я хочу поделится идеей иной системы объявлений.
Это не команда,а более реалистичная система на 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] == 1 && AdversiteCheck[2] == 1 && AdversiteCheck[3] == 1) return SendClientMessage (playerid,-1,"Все рекламные места заняты!");//проверка,не заняты ли места для объявлений
ShowPlayerDialog(playerid,DIALOG_ADV,DIALOG_STYLE_INPUT,"Написать объявление","Напишите свое объявление,и оно появится на доске.","Готово","Отмена");
}
}
И наконец само объявление.
В [b]OnDialogResponse[/b] ставим всю основу:
Для начала,в начало паблика ставим переменные:
В [b]OnDialogResponse[/b] ставим всю основу:
Выглядеть это будет вот так:
Автор: Неизвестен