Перейти к содержанию
Авторизация  
Илья_Марков

Кликабельный TexDraw.

Рекомендуемые сообщения

Илья_Марков

Здравствуйте, сделал TexDraw и привязал к нему, если нажал ты выходишь из реконна.

 

TexDraw:

    MenuSpec[playerid][0] = CreatePlayerTextDraw(playerid, 212.952377, 415.146575, "STOP");
	PlayerTextDrawLetterSize(playerid,MenuSpec[playerid][0], 0.449238, 1.463467);
	PlayerTextDrawTextSize(playerid,MenuSpec[playerid][0], 404.952209, -92.586647);
	PlayerTextDrawAlignment(playerid,MenuSpec[playerid][0], 2);
	PlayerTextDrawColor(playerid,MenuSpec[playerid][0], -1);
	PlayerTextDrawUseBox(playerid,MenuSpec[playerid][0], true);
	PlayerTextDrawBoxColor(playerid,MenuSpec[playerid][0], -16777114);
	PlayerTextDrawSetShadow(playerid,MenuSpec[playerid][0], 0);
	PlayerTextDrawSetOutline(playerid,MenuSpec[playerid][0], 1);
	PlayerTextDrawBackgroundColor(playerid,MenuSpec[playerid][0], 51);
	PlayerTextDrawFont(playerid,MenuSpec[playerid][0], 2);
	PlayerTextDrawSetProportional(playerid,MenuSpec[playerid][0], 1);
	PlayerTextDrawSetSelectable(playerid,MenuSpec[playerid][0], 1);

Сама кликабельность:

	if(playertextid == MenuSpec[playerid][0])
	{
			ShowPlayerDialog(playerid, D_SPEC+1, DIALOG_STYLE_MSGBOX, "{99CC00}Выход со спека", "{FFFFFF}Вы действительно хотите выйти из спека?", "Принять", "Отмена");
	}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Vegas

@Илья_Марков,и в чём тут проблема?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Илья_Марков

@Vegas, когда нажимаю на TexDraw нету реакции

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
hteppl

Попробуй заменить 

PlayerTextDrawSetSelectable(playerid,MenuSpec[playerid][0], 1);

на 

PlayerTextDrawSetSelectable(playerid,MenuSpec[playerid][0], true);

В каком паблике находится данный код?

if(playertextid == MenuSpec[playerid][0])
    {
            ShowPlayerDialog(playerid, D_SPEC+1, DIALOG_STYLE_MSGBOX, "{99CC00}Выход со спека", "{FFFFFF}Вы действительно хотите выйти из спека?", "Принять", "Отмена");
    }

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Илья_Марков

, в паблике 

public OnPlayerClickPlayerTextDraw(playerid, PlayerText:playertextid)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Lefist

Извините, но чего тут думать? Сразу видно, что проблема в:

PlayerTextDrawTextSize(playerid,MenuSpec[playerid][0], 404.952209, -92.586647);
  • 404.952209 - Слишком много, будет выделятся до самого низа;
  • -92.586647 - Вообще отрицательное значение;

Исходя из этого, можно понять, что у вас TextDraw даже не выделяется, что вы должны были заметить. Слегка подкорректировав код можно получить:

PlayerTextDrawTextSize(playerid,TD_Menu, 20.952209, 81.586647);

Тем самым у вас будет выделять TextDraw и будет работать обработка события нажатия на него.

 

Посоветую вам для начала разобраться в функциях, которые вы пишете.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Илья_Марков

@Lefist, я делал через плеомакс он выдал именно такой код 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
noname_idk

@Илья_Марков, в данном скрипте и нужно выставлять зону кликабильности. Это можно сделать при создании самого TD, а можно уже и потом путем наложения на него бокса (коробки). Посмотрите в интернете видеоуроки по ipleomax, там этому уделяется время. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Илья_Марков
, у меня стоит кликабельность PlayerTextDrawSetSelectable(playerid,MenuSpec[playerid][0], 1);

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
noname_idk

@Илья_Марков, для каждого TextDraw'a должна быть выставлена правильная зона кликабильности. Если ее не выставлять при создании TD, потом будете мучиться (хотя и уже мучиетесь). Смотри уроки по созданию TextDraw'ов и пытайся понять что и зачем делает он.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Илья_Марков

, сдел по видео и получилось так, но ничего не работает.

    MenuSpec[playerid][0] = CreatePlayerTextDraw(playerid, 212.952377, 415.146575, "STOP");
	PlayerTextDrawLetterSize(playerid,MenuSpec[playerid][0], 0.449238, 1.463467);
	PlayerTextDrawTextSize(playerid,MenuSpec[playerid][0], -8.761905, 86.613265);
	PlayerTextDrawAlignment(playerid,MenuSpec[playerid][0], 2);
	PlayerTextDrawColor(playerid,MenuSpec[playerid][0], -1);
	PlayerTextDrawUseBox(playerid,MenuSpec[playerid][0], true);
	PlayerTextDrawBoxColor(playerid,MenuSpec[playerid][0], -16777114);
	PlayerTextDrawSetShadow(playerid,MenuSpec[playerid][0], 0);
	PlayerTextDrawSetOutline(playerid,MenuSpec[playerid][0], 1);
	PlayerTextDrawBackgroundColor(playerid,MenuSpec[playerid][0], 51);
	PlayerTextDrawFont(playerid,MenuSpec[playerid][0], 2);
	PlayerTextDrawSetProportional(playerid,MenuSpec[playerid][0], 1);
	PlayerTextDrawSetSelectable(playerid,MenuSpec[playerid][0], 1);

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Lefist

Когда вы уже поймете, что нужно изменить:

PlayerTextDrawTextSize(playerid,MenuSpec[playerid][0], -8.761905, 86.613265);

на:

PlayerTextDrawTextSize(playerid,MenuSpec[playerid][0], 20.761905, 86.613265);

Я же нормальным языком сказал, что в

PlayerTextDrawTextSize

не может быть отрицательных значений, если вы хотите, что область выделялась и нажималась!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.