shape1
shape2
shape3
shape4
shape7
shape8

кликабельность TextDraw


Alekc_Grahc

Освоившийся
Пользователь
26.07.2015
178
27
0
Добрый день многие не знают как сделать на TextDraw действие.

И так приступим.

Делаем для начало сам TextDraw

Далее вставляем в мод только в public OnGameModeInit()

Далее создаем stock

stock Show(playerid)//Открывает
{
TextDrawShowForPlayer(playerid, тут название переменной пишем);//Пишем все переменные созданного TextDraw

return 1;
}
stock Close(playerid)//закрывает ТД
{
TextDrawHideForPlayer(playerid, тут название переменной пишем);

return 1;
}

Далее добавляем public OnPlayerClickTextDraw(playerid,Text:clickedid) если нету

public OnPlayerClickTextDraw(playerid,Text:clickedid)
{
if(clickedid == тут название переменной)//
{
ShowPlayerDialog(playerid, 7779, DIALOG_STYLE_INPUT, "Kick", "Введите причину", "Ок", "Назад");//пример
CancelSelectTextDraw(playerid);//эта функция убирает возможность клика мышкой (тупо исчезает стрелка но ТД не закрывается)
}
if(clickedid == тут название переменной)//
{
//Теперь сделаем кнопку для того чтоб закрывался ТД
Close(playerid);//после нажатия кнопки допустим Exit закрываются те Тд которые в этом стоке.
CancelSelectTextDraw(playerid);
}
return 1;
}


Далее сделаем команду переходим

public OnPlayerCommandText(playerid, cmdtext[])

if(strcmp(cmd, "/свое название кмд", true) == 0)
if (PlayerInfo[playerid][pAdmin] >=4)
{
Show(playerid);
SelectTextDraw(playerid, 0xFFFFFFFF);

}

Теперь сделаю пример как сделать на кнопку переходим public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if (newkeys == KEY_YES)//KEY_YES ид кнопки в нашем случае кнопка Y
{
Show(playerid);
SelectTextDraw(playerid, 0xFFFFFFFF);
}
return 1;
}


Вроде бы все 

Автор Alexey_Zapekin(То есть я)
 
Последнее редактирование модератором:

JoKeR2020

Гуру
Пользователь
26.11.2014
1 800
4
321
0
@Alekc_Grahc, з-з-зачем стоки? Зачем?! КАРЛ! Если хочешь сократить название функций - дефайны к твоим услугам. А вообще, не рекомендую так делать, портит понятность. Я же не знаю за что Show отвечает, а TextDrawShowForPlayer, я понимаю, что она показывает текстдрав + там же и название переменной, т.е. я пойму, какой текстдрав она показывает. А про табуляцию вообще не слышали? Миксер мне в глаза.

Не читай это так, как будто я ору на тебя, считай это как критика.
 
Последнее редактирование модератором:

Alekc_Grahc

Освоившийся
Пользователь
26.07.2015
178
27
0
@JoKeR2020,Я совсем недавно начал делать Тд с функционалом и пока что я мне так легче, + я предложил свою версию а оптимизацию уже пусть делают сами.   

 

JoKeR2020

Гуру
Пользователь
26.11.2014
1 800
4
321
0
@Alekc_Grahc, это тебе так легче, но на этом форуме такие начинающие скриптеры, которые даже не понимают, что копируют бред.

 

Alekc_Grahc

Освоившийся
Пользователь
26.07.2015
178
27
0
@JoKeR2020,Ну это не мои проблемы так то, меня попросили вк я им написал и решил сюда, Я написал как я делал

 

Forumschik

Новичок
Пользователь
12.01.2016
120
0
0
public OnPlayerClickTextDraw(playerid,Text:clickedid) { if(clickedid == тут название переменной)// {         ShowPlayerDialog(playerid, 7779, DIALOG_STYLE_INPUT, "Kick", "Введите причину", "Ок", "Назад");//пример         CancelSelectTextDraw(playerid);//эта функция убирает возможность клика мышкой (тупо исчезает стрелка но ТД не закрывается) } if(clickedid == тут название переменной)// {         //Теперь сделаем кнопку для того чтоб закрывался ТД         Close(playerid);//после нажатия кнопки допустим Exit закрываются те Тд которые в этом стоке.         CancelSelectTextDraw(playerid); } return 1; }
По конкретней можно что к чему тут?,думал да не понял 
 

Alekc_Grahc

Освоившийся
Пользователь
26.07.2015
178
27
0
public OnPlayerClickTextDraw(playerid,Text:clickedid) { if(clickedid == тут название переменной)// {  
Код:
public OnPlayerClickTextDraw(playerid,Text:clickedid) { if(clickedid == тут название переменной)// {  тут пишешь допустим то диалог который ты хочешь чтоб при клике на ТД выходил.
(это к примеру)
можно сразу сделать допустим статистику пишешь ShowStats(playerid);
return 1;
}