koks228322
Ученик
Всем привет , решил запилить урок по TextDraw
делать я вас научу кликабельные TD
и так начнём , нам понадобиться: редактора TD iPLEOMAX
(скачать вы его сможете на просторах интернета)
и ровные руки.
После установки iPLEOMAX`a и ровных рук запускаем сервер с установленым на него скриптом
и вводим команду /itd после чего нам выводится вот такое меню:
Нажимаем на NEW и вводим название проекта
После этого заходим в Manage для создания TD
я буду делать простой текст (для примера, потом наверно запишу урок как рисовать TD вроде инвентаря и т.д.)
После этого я покажу вам главную функцию это кликабильность , нажимаем на кнопку Selectable и после ее на Use Box
у вас появится такой чёрный бокс:
нажимаем Size и мышкой редактируем размер , подгоняем размер бокса по размер текста , должно пулучится примерно вот так:
если вы не хотите чтоб у вас был этот чёрный бокс (я его всегда убираю) заходим в Color Box выбираем там первый пункт и вводим туда 0xffffff00 и чёрный бокс исчезнет
у вас должо получится вот так:
делаем всё тоже самое и с другими тд к которым мы хотим добавить кликабельность, после чего нажимаем кнопочку Export для сохранения нашей работы
далее заходим в папку с сервером и там в папку scriptfiles там мы увидим фаил с названием TD_P-I (место P-I будет то что вы указали при создании нового проекта) заходим в его и там мы видим код наших TD и переменные для их , теперь нам нужно подредактировать код и вставить его в мод для дальнейшей работы
теперь в нашем коде заминяем все Textdraw0 на допустим P-I[playerid][0] а все Textdraw1 на P-I[playerid][1] и так далее...
тоесть место нашего
должен получится
ну теперь всё готово , идём в наш игровой мод и первым делом создаём глобальную переменную new PlayerText
-I[MAX_PLAYERS][2]; //2 это количество наших TD
после чего в конце мода создаём stock
ну и по сути основная часть работы выполнена , теперь идём в OnPlayerKeyStateChange для создания открытия наших ТД
вставляем туда
и осталось только добавить функцию которая будет срабатывать при нажатии на наши TD
ищем OnPlayerClickPlayerTextDraw
и добавляем туда:
ну вот и всё , осталось только скомпилировать, после чего запускаем мод , заходим на сервер и нажимаем клавишу 'Y' выбираем любой из тд и радуемся , всё работает 100% , по моему уроку вы можете делать /mm на тд и прочие плюшки 
Всем спасибо за внимание
Автор урока: AHTOIIIKA (я)
Если помог , не ленись нажми "Спасибо"
Скачать ITD можно тут:
Пароль: ITD by AHTOIIIKA
Пишите смело если что-то забыл или напутал.
делать я вас научу кликабельные TD
и так начнём , нам понадобиться: редактора TD iPLEOMAX
(скачать вы его сможете на просторах интернета)
и ровные руки.
После установки iPLEOMAX`a и ровных рук запускаем сервер с установленым на него скриптом
и вводим команду /itd после чего нам выводится вот такое меню:
Нажимаем на NEW и вводим название проекта
После этого заходим в Manage для создания TD
я буду делать простой текст (для примера, потом наверно запишу урок как рисовать TD вроде инвентаря и т.д.)
После этого я покажу вам главную функцию это кликабильность , нажимаем на кнопку Selectable и после ее на Use Box
у вас появится такой чёрный бокс:
нажимаем Size и мышкой редактируем размер , подгоняем размер бокса по размер текста , должно пулучится примерно вот так:
если вы не хотите чтоб у вас был этот чёрный бокс (я его всегда убираю) заходим в Color Box выбираем там первый пункт и вводим туда 0xffffff00 и чёрный бокс исчезнет
у вас должо получится вот так:
делаем всё тоже самое и с другими тд к которым мы хотим добавить кликабельность, после чего нажимаем кнопочку Export для сохранения нашей работы
далее заходим в папку с сервером и там в папку scriptfiles там мы увидим фаил с названием TD_P-I (место P-I будет то что вы указали при создании нового проекта) заходим в его и там мы видим код наших TD и переменные для их , теперь нам нужно подредактировать код и вставить его в мод для дальнейшей работы
теперь в нашем коде заминяем все Textdraw0 на допустим P-I[playerid][0] а все Textdraw1 на P-I[playerid][1] и так далее...
тоесть место нашего
Код:
Textdraw0[playerid] = CreatePlayerTextDraw(playerid, 268.000000, 245.000000, "Pawno-Info.Ru");
PlayerTextDrawLetterSize(playerid, Textdraw0[playerid], 0.449999, 1.600000);
PlayerTextDrawTextSize(playerid, Textdraw0[playerid], 374.000000, -0.875000);
PlayerTextDrawAlignment(playerid, Textdraw0[playerid], 1);
PlayerTextDrawColor(playerid, Textdraw0[playerid], -1);
PlayerTextDrawUseBox(playerid, Textdraw0[playerid], true);
PlayerTextDrawBoxColor(playerid, Textdraw0[playerid], 572661504);
PlayerTextDrawSetShadow(playerid, Textdraw0[playerid], 0);
PlayerTextDrawSetOutline(playerid, Textdraw0[playerid], 1);
PlayerTextDrawBackgroundColor(playerid, Textdraw0[playerid], 51);
PlayerTextDrawFont(playerid, Textdraw0[playerid], 1);
PlayerTextDrawSetProportional(playerid, Textdraw0[playerid], 1);
PlayerTextDrawSetSelectable(playerid, Textdraw0[playerid], true);
Textdraw1[playerid] = CreatePlayerTextDraw(playerid, 274.500000, 261.750000, "By AHTOIIIKA");
PlayerTextDrawLetterSize(playerid, Textdraw1[playerid], 0.449999, 1.600000);
PlayerTextDrawTextSize(playerid, Textdraw1[playerid], 349.000000, -76.125000);
PlayerTextDrawAlignment(playerid, Textdraw1[playerid], 1);
PlayerTextDrawColor(playerid, Textdraw1[playerid], -1);
PlayerTextDrawUseBox(playerid, Textdraw1[playerid], true);
PlayerTextDrawBoxColor(playerid, Textdraw1[playerid], 572661504);
PlayerTextDrawSetShadow(playerid, Textdraw1[playerid], 0);
PlayerTextDrawSetOutline(playerid, Textdraw1[playerid], 1);
PlayerTextDrawBackgroundColor(playerid, Textdraw1[playerid], 51);
PlayerTextDrawFont(playerid, Textdraw1[playerid], 1);
PlayerTextDrawSetProportional(playerid, Textdraw1[playerid], 1);
PlayerTextDrawSetSelectable(playerid, Textdraw1[playerid], true);
должен получится
Код:
P-I[playerid][0][playerid] = CreatePlayerTextDraw(playerid, 268.000000, 245.000000, "Pawno-Info.Ru");
PlayerTextDrawLetterSize(playerid, P-I[playerid][0], 0.449999, 1.600000);
PlayerTextDrawTextSize(playerid, P-I[playerid][0], 374.000000, -0.875000);
PlayerTextDrawAlignment(playerid, P-I[playerid][0], 1);
PlayerTextDrawColor(playerid, P-I[playerid][0], -1);
PlayerTextDrawUseBox(playerid, P-I[playerid][0], true);
PlayerTextDrawBoxColor(playerid, P-I[playerid][0], 572661504);
PlayerTextDrawSetShadow(playerid, P-I[playerid][0], 0);
PlayerTextDrawSetOutline(playerid, P-I[playerid][0], 1);
PlayerTextDrawBackgroundColor(playerid, P-I[playerid][0], 51);
PlayerTextDrawFont(playerid, P-I[playerid][0][playerid], 1);
PlayerTextDrawSetProportional(playerid, P-I[playerid][0], 1);
PlayerTextDrawSetSelectable(playerid, P-I[playerid][0], true);
P-I[playerid][1][playerid] = CreatePlayerTextDraw(playerid, 274.500000, 261.750000, "By AHTOIIIKA");
PlayerTextDrawLetterSize(playerid, P-I[playerid][1], 0.449999, 1.600000);
PlayerTextDrawTextSize(playerid, P-I[playerid][1], 349.000000, -76.125000);
PlayerTextDrawAlignment(playerid, P-I[playerid][1], 1);
PlayerTextDrawColor(playerid, P-I[playerid][1], -1);
PlayerTextDrawUseBox(playerid, P-I[playerid][1], true);
PlayerTextDrawBoxColor(playerid, P-I[playerid][1], 572661504);
PlayerTextDrawSetShadow(playerid, P-I[playerid][1], 0);
PlayerTextDrawSetOutline(playerid, P-I[playerid][1], 1);
PlayerTextDrawBackgroundColor(playerid, P-I[playerid][1], 51);
PlayerTextDrawFont(playerid, P-I[playerid][1], 1);
PlayerTextDrawSetProportional(playerid, P-I[playerid][1], 1);
PlayerTextDrawSetSelectable(playerid, P-I[playerid][1], true);
ну теперь всё готово , идём в наш игровой мод и первым делом создаём глобальную переменную new PlayerText
после чего в конце мода создаём stock
Код:
stock CreateP-I(playerid)
{
P-I[playerid][0] = CreatePlayerTextDraw(playerid, 268.000000, 245.000000, "Pawno-Info.Ru");
PlayerTextDrawLetterSize(playerid, P-I[playerid][0], 0.449999, 1.600000);
PlayerTextDrawTextSize(playerid, P-I[playerid][0], 374.000000, -0.875000);
PlayerTextDrawAlignment(playerid, P-I[playerid][0], 1);
PlayerTextDrawColor(playerid, P-I[playerid][0], -1);
PlayerTextDrawUseBox(playerid, P-I[playerid][0], true);
PlayerTextDrawBoxColor(playerid, P-I[playerid][0], 572661504);
PlayerTextDrawSetShadow(playerid, P-I[playerid][0], 0);
PlayerTextDrawSetOutline(playerid, P-I[playerid][0], 1);
PlayerTextDrawBackgroundColor(playerid, P-I[playerid][0], 51);
PlayerTextDrawFont(playerid, P-I[playerid][0][playerid], 1);
PlayerTextDrawSetProportional(playerid, P-I[playerid][0], 1);
PlayerTextDrawSetSelectable(playerid, P-I[playerid][0], true);
P-I[playerid][1][playerid] = CreatePlayerTextDraw(playerid, 274.500000, 261.750000, "By AHTOIIIKA");
PlayerTextDrawLetterSize(playerid, P-I[playerid][1], 0.449999, 1.600000);
PlayerTextDrawTextSize(playerid, P-I[playerid][1], 349.000000, -76.125000);
PlayerTextDrawAlignment(playerid, P-I[playerid][1], 1);
PlayerTextDrawColor(playerid, P-I[playerid][1], -1);
PlayerTextDrawUseBox(playerid, P-I[playerid][1], true);
PlayerTextDrawBoxColor(playerid, P-I[playerid][1], 572661504);
PlayerTextDrawSetShadow(playerid, P-I[playerid][1], 0);
PlayerTextDrawSetOutline(playerid, P-I[playerid][1], 1);
PlayerTextDrawBackgroundColor(playerid, P-I[playerid][1], 51);
PlayerTextDrawFont(playerid, P-I[playerid][1], 1);
PlayerTextDrawSetProportional(playerid, P-I[playerid][1], 1);
PlayerTextDrawSetSelectable(playerid, P-I[playerid][1], true)
return true;
}
ну и по сути основная часть работы выполнена , теперь идём в OnPlayerKeyStateChange для создания открытия наших ТД
вставляем туда
Код:
if (newkeys & KEY_YES && IsPlayerSpawned(playerid))//KEY_YES это клавиша 'Y'
{
for(new i = 0; i < 2; i++) PlayerTextDrawShow(playerid, P-I[playerid][i]);// это цикл открытия наших TD
SelectTextDraw(playerid, 0xffffff10);// функция добавляющая кликабельность
}
ищем OnPlayerClickPlayerTextDraw
и добавляем туда:
Код:
if(playertextid == P-I[playerid][0])// название TD и его id
{
SendClientMessage(playerid,COLOR_WHITE, "Ты нажал на TD 0 , всё работает");//функция выдачи сообщения в чат игроку который нажмёт на TD
for(new i = 0; i < 2; i++) PlayerTextDrawHide(playerid, P-I[playerid][i]);//цикл который закрывает наши ТД после выдочи сообщения в чат
CancelSelectTextDraw(playerid);//функция отключающая кликабельность тоесть если ее не ставить то TD закроются а мышка не пропадёт
}
if(playertextid == P-I[playerid][1])// название TD и его id
{
SendClientMessage(playerid,COLOR_WHITE, "Ты нажал на TD 1 , всё работает");//функция выдачи сообщения в чат игроку который нажмёт на TD
for(new i = 0; i < 2; i++) PlayerTextDrawHide(playerid, P-I[playerid][i]);//цикл который закрывает наши ТД после выдочи сообщения в чат
CancelSelectTextDraw(playerid);//функция отключающая кликабельность тоесть если ее не ставить то TD закроются а мышка не пропадёт
}
Всем спасибо за внимание
Автор урока: AHTOIIIKA (я)
Если помог , не ленись нажми "Спасибо"
Скачать ITD можно тут:
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Пароль: ITD by AHTOIIIKA
Пишите смело если что-то забыл или напутал.
Последнее редактирование модератором:
