- Регистрация
- 31 Дек 2010
- Сообщения
- 174
- Лучшие ответы
- 0
- Репутация
- 138
Только краткая инструкция о том, как взаимодействовать с textdraws. Вопросы можете в разделе комментариев.
Примечание: Это руководство предполагает, что вы уже знаете, как создать textdraws Начало возможность нажать textdraws вводится в 0.3e RC4. Это означает, что вам нужно SA-MP 0.3e RC4 или выше, чтобы получить эту работу (клиент и сервер). В этом уроке мы будем воссоздать это простое меню телепорта я сделал с
Я не собираюсь рассказывать вам, как создать эти textdraws, это зависит от вас. Начнем с инициализации нашей textdraws и их установки. Это всего лишь вставить копию от редактора TextDraw.
Для того, чтобы сделать textdraws интерактивными, мы должны использовать TextDrawSetSelectAble. Этот код будет идти в нижней части OnGameModeInit:
Я использую FS для этого урока, так что мне нужно, убить textdraws когда я выключу скрипт.
Я использую команду, чтобы принести меню телепорта. Я использую STRCMP. В этой команде мы будем показывать textdraws игроку:
Я надеюсь, вы поняли. Игрок теперь может выбрать textdraws (Или по крайней мере, textdraws мы позволили ему выбрать использование TextDrawSetSelectable). После того как он выбрал и нажал на TextDraw мы должны выбрать его до щелчка. Я отправлю основной код:
"Готово", можно сказать. Однако, есть глюк при использовании CancelSelectTextDraw: Он призывает OnPlayerClickTextDraw. Этот код может привести к бесконечному циклу.
Я надеюсь, вы узнали что-то из этого учебника. Если у вас еще есть вопросы, пожалуйста, напишите их в этой теме.
Автор: взял урок из
Перевод: Den_Wilson, где то есть корявый перевод.
Он работает только на версии Samp 0.3e R4
Примечание: Это руководство предполагает, что вы уже знаете, как создать textdraws Начало возможность нажать textdraws вводится в 0.3e RC4. Это означает, что вам нужно SA-MP 0.3e RC4 или выше, чтобы получить эту работу (клиент и сервер). В этом уроке мы будем воссоздать это простое меню телепорта я сделал с
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
:Я не собираюсь рассказывать вам, как создать эти textdraws, это зависит от вас. Начнем с инициализации нашей textdraws и их установки. Это всего лишь вставить копию от редактора TextDraw.
PHP:
#include <a_samp>
new Text:teleportBox;
new Text:teleportLS;
new Text:teleportSF;
new Text:teleportLV;
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" Textdraw teleporting - tut for showing\n how textdraw selecting works");
print("--------------------------------------\n");
teleportBox = TextDrawCreate(320.000000, 143.000000, "~n~Teleport menu~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~_");
TextDrawAlignment(teleportBox, 2);
TextDrawBackgroundColor(teleportBox, 255);
TextDrawFont(teleportBox, 2);
TextDrawLetterSize(teleportBox, 0.500000, 1.000000);
TextDrawColor(teleportBox, -1);
TextDrawSetOutline(teleportBox, 0);
TextDrawSetProportional(teleportBox, 1);
TextDrawSetShadow(teleportBox, 1);
TextDrawUseBox(teleportBox, 1);
TextDrawBoxColor(teleportBox, 255);
TextDrawTextSize(teleportBox, 45.000000, 115.000000);
teleportLS = TextDrawCreate(320.000000, 180.000000, "Los Santos~n~Airport");
TextDrawAlignment(teleportLS, 2);
TextDrawBackgroundColor(teleportLS, 255);
TextDrawFont(teleportLS, 2);
TextDrawLetterSize(teleportLS, 0.260000, 0.799999);
TextDrawColor(teleportLS, -1);
TextDrawSetOutline(teleportLS, 0);
TextDrawSetProportional(teleportLS, 1);
TextDrawSetShadow(teleportLS, 1);
teleportSF = TextDrawCreate(320.000000, 205.000000, "San Fierro~n~Airport");
TextDrawAlignment(teleportSF, 2);
TextDrawBackgroundColor(teleportSF, 255);
TextDrawFont(teleportSF, 2);
TextDrawLetterSize(teleportSF, 0.260000, 0.799999);
TextDrawColor(teleportSF, -1);
TextDrawSetOutline(teleportSF, 0);
TextDrawSetProportional(teleportSF, 1);
TextDrawSetShadow(teleportSF, 1);
teleportLV = TextDrawCreate(320.000000, 230.000000, "Las Venturas~n~Airport");
TextDrawAlignment(teleportLV, 2);
TextDrawBackgroundColor(teleportLV, 255);
TextDrawFont(teleportLV, 2);
TextDrawLetterSize(teleportLV, 0.260000, 0.799999);
TextDrawColor(teleportLV, -1);
TextDrawSetOutline(teleportLV, 0);
TextDrawSetProportional(teleportLV, 1);
TextDrawSetShadow(teleportLV, 1);
return 1;
}
PHP:
TextDrawSetSelectable ( teleportBox, false) ;
TextDrawSetSelectable ( teleportLS, true) ;
TextDrawSetSelectable ( teleportSF, true) ;
TextDrawSetSelectable ( teleportLV, true) ;
PHP:
public OnFilterScriptExit()
{
TextDrawDestroy(teleportBox);
TextDrawDestroy(teleportLS);
TextDrawDestroy(teleportSF);
TextDrawDestroy(teleportLV);
return 1;
}
PHP:
public OnPlayerCommandText(playerid, cmdtext[])
{
if (!strcmp("/teleport", cmdtext, true))
{
TextDrawShowForPlayer(playerid, teleportBox); // Показать окно
TextDrawShowForPlayer(playerid, teleportLS); // Показать LS вариант
TextDrawShowForPlayer(playerid, teleportSF); // Показать SF вариант
TextDrawShowForPlayer(playerid, teleportLV); // Показать LV вариант
SelectTextDraw(playerid, 0xA3B4C5FF); // / / Разрешить игроку выбрать textdraws
/ / второй параметр . цвет которой TextDraw оказывается при наведении мыши на него
/ / Вы можете использовать COLOR_RED также, что это ваш выбор.
return 1;
}
return 0;
}
PHP:
public OnPlayerClickTextDraw(playerid, Text:clickedid)
{
if(clickedid == teleportLS) // если игрок нажал на teleportLS TextDraw, телепортировать для LS.
{
SetPlayerPos(playerid, 1630.2030,-2328.9673,13.5469);
SetPlayerFacingAngle(playerid, 0.9392);
}
else if(clickedid == teleportSF) // если игрок нажал на teleportLS TextDraw, телепортировать для SF.
{
SetPlayerPos(playerid, -1424.6083, -290.9622, 14.1484);
SetPlayerFacingAngle(playerid, 134.9570);
}
else if(clickedid == teleportLV) // если игрок нажал на teleportLS TextDraw, телепортировать для LV.
{
SetPlayerPos(playerid, 1688.7990, 1447.7753, 10.7675);
SetPlayerFacingAngle(playerid, 267.3902);
}
// Скрыть textdraws после того, как игрок телепортироволся.
TextDrawHideForPlayer(playerid, teleportBox);
TextDrawHideForPlayer(playerid, teleportLS);
TextDrawHideForPlayer(playerid, teleportSF);
TextDrawHideForPlayer(playerid, teleportLV);
CancelSelectTextDraw(playerid); // Все разработанные отлично, теперь остановить игрок сможет выбрать shizzle
return 1;
}
Я надеюсь, вы узнали что-то из этого учебника. Если у вас еще есть вопросы, пожалуйста, напишите их в этой теме.
Автор: взял урок из
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Перевод: Den_Wilson, где то есть корявый перевод.
Он работает только на версии Samp 0.3e R4