Дата: Четверг, 12.05.2016, 20:10 | Сообщение # 1
|
TextDrawCreate Создает TextDraw. TextDraw является, как заметно из названия, текстом (в основном - там могут быть блоки, спрайты и привью модели (скинов/машин/оружия/прочих предметов)) отображаемым на экране игрока.
Параметры: (Float:x, Float:y, text[])
x — Координата X (влево/вправо) для созданного TextDraw. y — Координата Y (вверх/вниз) для созданного TextDraw. text[] — Текст, который будет отображаться в TextDraw. Нулевые (пустые) строки приведет к крашу, поэтому следует использовать пробел или нижнее подчёркивание, если TextDraw является не текстом.
Возвращаемые Значения:
Цитата Возвращает ID созданного TextDraw. Идентификаторы TextDraw начинаются с 0. Пример использования:
Код // Эта переменная используется для хранения идентификатора TextDraw // так что мы можем использовать её в любом месте скрипта new Text:welcomeText;
public OnGameModeInit() { // Примечание: этот textdraw создан без какого-либа форматирования. welcomeText = TextDrawCreate(240.0, 580.0, "Welcome to my SA-MP server"); return 1; }
public OnPlayerConnect(playerid) { //Показываем игроку TextDraw при подключении TextDrawShowForPlayer(playerid, welcomeText); } Вариант для показа TextDraw определённым игрокам, например всем, кто имеет админку:
Код // Эта переменная используется для хранения идентификатора TextDraw // так что мы можем использовать её в любом месте скрипта new Text:adminText[MAX_PLAYERS];
public OnPlayerConnect(playerid) { // Сканируем игроков for(new i, j = GetPlayerPoolSize(); i <= j; i++) { // Выделяем Админов if(IsPlayerAdmin(i)) { // Примечание: этот textdraw создан без какого-либа форматирования. adminText [i]= TextDrawCreate(240.0, 580.0, "Hi, Admin!"); //Показываем Админам TextDraw при подключении. TextDrawShowForPlayer(i, adminText[i]); } } }
public OnPlayerDisconnect(playerid, reason) { // Сканируем игроков for(new i, j = GetPlayerPoolSize(); i <= j; i++) { // Выделяем Админов if(IsPlayerAdmin(i)) { // Удаляем TextDraw, созданный для игрока TextDrawDestroy(adminText[i]); } } return 1; } Важное примечание: Если вы выбираете значения для Y меньше 1, то текст строки будет невидимым за исключением его тени. text[] не должен быть пустым, иначе будет краш! Если вам нужен TextDraw, который ничего не показывает, то используйте " " (пробел) или _ (нижнее подчеркивание). Если последний символ в тексте - это пробел (" "), то текст будет пустым. Если часть текста будет находиться за пределами экрана, то цвет текста не будет отображаться, только его тень (если установлена). Максимальная длина TextDraw - это 800 символов. Более длинный текст будет крашить клиент в старых версиях SA-MP. Если вы используете цветовые коды (например, ~R~ ~G~) за пределами 255 символа, то клиент будет крашить при попытке отображения TextDraw.
CreatePlayerTextDraw
Цитата Эта функция была добавлена в SA-MP 0.3e и не будет работать в более ранних версиях! Создает TextDraw для одного игрока. Может быть использована в качестве обхода глобального лимитов обычных TextDraw.
Параметры: (playerid, Float:x, Float:y, text[])
playerid — ID игрока, для которого необходимо создать TextDraw x — Координата X y — Координата Y text[] — Текст, который будет отображаться в TextDraw
Возвращаемые Значения:
Цитата ID созданного TextDraw Пример использования:
Код // Эта переменная используется для хранения идентификатора TextDraw // так что мы можем использовать её в любом месте скрипта new PlayerText:welcomeText[MAX_PLAYERS];
public OnPlayerConnect(playerid) { // Во-первых, создаём TextDraw welcomeText [playerid]= CreatePlayerTextDraw(playerid, 320.0, 240.0, "Welcome to my SA-MP server");
// Теперь показываем его PlayerTextDrawShow(playerid, welcomeText[playerid]); } Советую использовать данную функцию для вывода личной информации, например скорости транспорта/вывод денег/уровня и прочего, т.к. она показывает TextDraw только одному игроку.
Примечание: TextDraw автоматически уничтожается, когда игрок отключается. Эта функция просто создает TextDraw, используйте PlayerTextDrawShow, чтобы показать его игроку.
Советы: Попробуйте использовать целое число при указании позиций координат X, Y, это обеспечит лучшую совместимость на разных разрешениях экрана. Шрифты выглядят лучше с X до Y в соотношении 1 к 4 (например, если х = 0.5, тогда Y должно быть 2).
Лимиты: Максимум TextDrawCreate для 1 игрока — 2048 Максимум CreatePlayerTextDraw для 1 игрока — 256 Максимум спрайтов, отображаемых для 1 игрока — 100
Автор: Неизвестен
|
| |