PDA

Просмотр полной версии : [Вопрос] Тексдравы



DmX
04.05.2014, 07:31
GunsText[playerid][0] = CreatePlayerTextDraw(playerid,263.666687, 349.689025, "Next");
PlayerTextDrawLetterSize(playerid,GunsText[playerid][0], 0.362666, 1.454815);
PlayerTextDrawAlignment(playerid,GunsText[playerid][0], 1);
PlayerTextDrawColor(playerid,GunsText[playerid][0], -1);
PlayerTextDrawSetShadow(playerid,GunsText[playerid][0], 0);
PlayerTextDrawSetOutline(playerid,GunsText[playerid][0], 1);
PlayerTextDrawBackgroundColor(playerid,GunsText[playerid][0], 51);
PlayerTextDrawFont(playerid,GunsText[playerid][0], 1);
PlayerTextDrawSetProportional(playerid,GunsText[playerid][0], 1);
PlayerTextDrawSetSelectable(playerid,GunsText[playerid][0], 0);
PlayerTextDrawTextSize(playerid, GunsText[playerid][0], 1.3, 0.0000);

Почему он не нажимается? Добавил функцию PlayerTextDrawTextSize, если эту функцию убрать то выделяются все тексдравы!

DeimoS
04.05.2014, 08:32
GunsText[playerid][0] = CreatePlayerTextDraw(playerid,263.666687, 349.689025, "Next");
PlayerTextDrawLetterSize(playerid,GunsText[playerid][0], 0.362666, 1.454815);
PlayerTextDrawAlignment(playerid,GunsText[playerid][0], 1);
PlayerTextDrawColor(playerid,GunsText[playerid][0], -1);
PlayerTextDrawSetShadow(playerid,GunsText[playerid][0], 0);
PlayerTextDrawSetOutline(playerid,GunsText[playerid][0], 1);
PlayerTextDrawBackgroundColor(playerid,GunsText[playerid][0], 51);
PlayerTextDrawFont(playerid,GunsText[playerid][0], 1);
PlayerTextDrawSetProportional(playerid,GunsText[playerid][0], 1);
PlayerTextDrawSetSelectable(playerid,GunsText[playerid][0], 0);
PlayerTextDrawTextSize(playerid, GunsText[playerid][0], 1.3, 0.0000);

Почему он не нажимается? Добавил функцию PlayerTextDrawTextSize, если эту функцию убрать то выделяются все тексдравы!

Потому что координаты в PlayerTextDrawTextSize настроены неверно.


http://wiki.sa-mp.com/wroot/images2/b/b6/Textdraw_map.png



Если брать за координаты текстдрава из CreatePlayerTextDraw центральную точку, а за сам текстдрав - нижний правый квадрат, координатами для PlayerTextDrawTextSize будет являться правый нижний угол нашего квадрата. Как в гангзонах. Вот и нужно вам подобрать эти координаты, дабы мод знал границы

DmX
04.05.2014, 09:22
то есть мне нужно Y увеличить на половину, а Х уменьшить на половину?

- - - Добавлено - - -


CreatePlayerTextDraw(playerid,263.666687, 349.689025, "Next");
PlayerTextDrawTextSize(playerid, GunsText[playerid][0], 131.366687, 524.9835375);

Все равно не работает)

- - - Добавлено - - -

Он у меня даже зеленым не горит, когда навожу куда угодно

DmX
04.05.2014, 09:28
Покажи пример и я пойму)

DeimoS
04.05.2014, 09:53
Вот у вас координаты первой точки (верхней левой)

263.666687, 349.689025
=> координаты нижней правой должны быть гораздо больше. Сейчас они у вас меньше и кликабельная зона текстдрава не больше пикселя.

Если брать в пример тот квадрат, что дан на изображении выше, первая точка равна "320.0, 240.0", а вторая - "640.0, 480.0". Но это квадрат и поэтому достаточно увеличить координаты вдвое. В вашем же случае всё совершенно иначе. Возьмите какой-нибудь скрипт для создания текстдравов в игре и подберите координаты, которые будут равны координатам текущего текстдрава. И там подберите нужные координаты для PlayerTextDrawTextSize

Andrei_Smile
05.05.2014, 01:19
Покажи пример и я пойму)

Гляди:

Textdraw14 = TextDrawCreate(317.666687, 340.977600, "Click"); - Сам тексдрайв и текст
TextDrawLetterSize(Textdraw14, 0.449999, 1.600000); - Размер бокса Именно он и отвечает за твой клик.
TextDrawTextSize(Textdraw14, 351.333374, 15.762964); - Размер текста
TextDrawAlignment(Textdraw14, 1); - не помню
TextDrawColor(Textdraw14, 255); цвет текста
TextDrawUseBox(Textdraw14, true); включение - отключение бокса(фона) параметром true/false
TextDrawBoxColor(Textdraw14, 255); - цвет бокса (фона) "обычно его удаляю"
TextDrawSetShadow(Textdraw14, 0); - тень текста "обычно его удаляю"
TextDrawSetOutline(Textdraw14, 1); - тоже непомню
TextDrawBackgroundColor(Textdraw14, -1); - обводка текста
TextDrawFont(Textdraw14, 1); - стиль текста
TextDrawSetProportional(Textdraw14, 1); - пропорциональность
TextDrawSetSelectable(Textdraw14, true); - а эта функция отвечает за кликабельный тексдрайв

Вот в принципе и все,а на счет не кликабельности либо при создании активной клавиши подгоняй бокс под текст или создавай новый и тоже ставь под кнопку и пиши координаты.

DmX
05.05.2014, 21:42
Гляди:

Textdraw14 = TextDrawCreate(317.666687, 340.977600, "Click"); - Сам тексдрайв и текст
TextDrawLetterSize(Textdraw14, 0.449999, 1.600000); - Размер бокса Именно он и отвечает за твой клик.
TextDrawTextSize(Textdraw14, 351.333374, 15.762964); - Размер текста
TextDrawAlignment(Textdraw14, 1); - не помню
TextDrawColor(Textdraw14, 255); цвет текста
TextDrawUseBox(Textdraw14, true); включение - отключение бокса(фона) параметром true/false
TextDrawBoxColor(Textdraw14, 255); - цвет бокса (фона) "обычно его удаляю"
TextDrawSetShadow(Textdraw14, 0); - тень текста "обычно его удаляю"
TextDrawSetOutline(Textdraw14, 1); - тоже непомню
TextDrawBackgroundColor(Textdraw14, -1); - обводка текста
TextDrawFont(Textdraw14, 1); - стиль текста
TextDrawSetProportional(Textdraw14, 1); - пропорциональность
TextDrawSetSelectable(Textdraw14, true); - а эта функция отвечает за кликабельный тексдрайв

Вот в принципе и все,а на счет не кликабельности либо при создании активной клавиши подгоняй бокс под текст или создавай новый и тоже ставь под кнопку и пиши координаты.

Уже разобрался, сделал. Спасибо)

Salvacore
05.05.2014, 22:41
CLosed.