Доступ к готовым решениям

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Урок Кликабельные TD в iPleomax

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] и так далее...
тоесть место нашего
Код:
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:p-I[MAX_PLAYERS][2]; //2 это количество наших TD
после чего в конце мода создаём 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);// функция добавляющая кликабельность
	}
и осталось только добавить функцию которая будет срабатывать при нажатии на наши TD
ищем 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 закроются а мышка не пропадёт
    }
ну вот и всё , осталось только скомпилировать, после чего запускаем мод , заходим на сервер и нажимаем клавишу 'Y' выбираем любой из тд и радуемся , всё работает 100% , по моему уроку вы можете делать /mm на тд и прочие плюшки :)

Всем спасибо за внимание
Автор урока: AHTOIIIKA (я)
Если помог , не ленись нажми "Спасибо"
Скачать ITD можно тут:
Пароль: ITD by AHTOIIIKA
Пишите смело если что-то забыл или напутал.​
 
Последнее редактирование модератором:
Сверху Снизу