- Июн
- 3
- 1
Пользователь
Возможности
- Создание подсказок с указанием клавиши и описанием действия
- Расположение: сверху или снизу относительно предыдущей подсказки
- Выравнивание текста: по левому или правому краю
- Анимация удержания кнопки
- Подсветка фона на заданное время
Скачать
- Github
- Закрепленный файл ниже
Примеры
Код:
CreateControlHint(playerid, 20.0, 150.0, "Inventory", "I", .show = CH_SHOW_HINT, .textAlignment = CH_TEXT_ALIGN_LEFT, .selectable = 0);
CreateControlHintBelow(playerid, 0.0, 5.0, "Phone", "P", .show = CH_SHOW_HINT, .textAlignment = CH_TEXT_ALIGN_LEFT, .selectable = 0);
Пример с анимацией
Код:
new HintInventory[MAX_PLAYERS];
HintInventory[playerid] = CreateControlHint(playerid, 20.0, 150.0, "Inventory", "I", .show = CH_SHOW_HINT, .textAlignment = CH_TEXT_ALIGN_LEFT, .selectable = 0);
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) {
if(newkeys == KEY_WALK) {
StartControlHintAnimation(playerid, HintInventory[playerid], 0xFFFFFFFF, .speed = 15.0);
return 1;
}
if(oldkeys == KEY_WALK) {
if(IsControlHintAnimating(playerid, HintInventory[playerid])) {
StopControlHintAnimation(playerid, HintInventory[playerid]);
}
return 1;
}
return 1;
}
forward OnPlayerControlHintAnimationEnd(playerid, hintid);
public OnPlayerControlHintAnimationEnd(playerid, hintid) {
if(hintid == HintInventory[playerid]) {
SendClientMessage(playerid, 0xFF00FFAA, "Анимация завершилась");
}
return 1;
}
Установка
- Поместите загруженный файл control-hints.inc в папку /pawno/include
- Подключите control-hints.inc как инклуд
Код:
#include <control-hints>
Functions
Создать подсказку
Создать подсказку ниже предыдущей
Создать подсказку выше предыдущей
Удалить подсказку
Удалить все подсказки игрока
Проверить, создана ли подсказка
Показать подсказку
Скрыть подсказку
Проверить, видима ли подсказка
Скрыть все подсказки игрока
Показать все подсказки игрока
Обновить текст подсказки
Использовать позицию X другой подсказки в качестве основы для CreateControlHintAbove/Below
Использовать позицию Y другой подсказки в качестве основы для CreateControlHintAbove/Below
Установить позицию подсказки
Получить позицию подсказки
Запустить анимацию подсказки
Остановить анимацию подсказки
Проверить, анимируется ли подсказка
Подсветить фон подсказки
Код:
CreateControlHint(playerid, Float:x, Float:y, const description[], const control[], show = CH_SHOW_HINT, textAlignment = CH_TEXT_ALIGN_LEFT, selectable = 0)
* Float:x - X-координата
* Float:y - Y-координата
* description[] - Текст описания
* control[] - Текст кнопки управления
* show - Показать подсказку
* textAlignment - Установить выравнивание текста (CH_TEXT_ALIGN_LEFT или CH_TEXT_ALIGN_RIGHT)
* selectable - Можно ли выбрать подсказку курсором
Создать подсказку ниже предыдущей
Код:
CreateControlHintBelow(playerid, Float:xOffset, Float:yOffset, const description[], const control[], show = CH_SHOW_HINT, textAlignment = CH_TEXT_ALIGN_LEFT, selectable = 0)
* Float:xOffset - Смещение X от предыдущей подсказки
* Float:yOffset - Смещение Y от предыдущей подсказки
* description[] - Текст описания
* control[] - Текст кнопки управления
* show - Показать подсказку
* textAlignment - Установить выравнивание текста (CH_TEXT_ALIGN_LEFT или CH_TEXT_ALIGN_RIGHT)
* selectable - Можно ли выбрать подсказку курсором
Создать подсказку выше предыдущей
Код:
CreateControlHintAbove(playerid, Float:xOffset, Float:yOffset, const description[], const control[], show = CH_SHOW_HINT, textAlignment = CH_TEXT_ALIGN_LEFT, selectable = 0)
* Float:xOffset - Смещение X от предыдущей подсказки
* Float:yOffset - Смещение Y от предыдущей подсказки
* description[] - Текст описания
* control[] - Текст кнопки управления
* show - Показать подсказку
* textAlignment - Установить выравнивание текста (CH_TEXT_ALIGN_LEFT или CH_TEXT_ALIGN_RIGHT)
* selectable - Можно ли выбрать подсказку курсором
Удалить подсказку
Код:
DestroyControlHint(playerid, &hintid)
* playerid - ID игрока
* hintid - ID подсказки
* Примечание: У hintid будет установлено значение 0 после удаления
Удалить все подсказки игрока
Код:
DestroyAllControlHints(playerid)
* playerid - ID игрока
Проверить, создана ли подсказка
Код:
IsControlHintValid(playerid, hintid)
* playerid - ID игрока
* hintid - ID подсказки
* Возвращает true, если подсказка создана, иначе false
Показать подсказку
Код:
ShowControlHint(playerid, hintid)
* playerid - ID игрока
* hintid - ID подсказки
Скрыть подсказку
Код:
HideControlHint(playerid, hintid)
* playerid - ID игрока
* hintid - ID подсказки
Проверить, видима ли подсказка
Код:
IsControlHintVisible(playerid, hintid)
* playerid - ID игрока
* hintid - ID подсказки
* Возвращает true, если подсказка видима, иначе false
Скрыть все подсказки игрока
Код:
HideAllControlHints(playerid, bool:remember = false)
* playerid - ID игрока
* remember - Запомнить ли скрытое состояние
* Примечание: remember - отвечает за сохранение скрытого состояния подсказок. Если установлено true, то при вызове ShowAllControlHints будут показаны только те подсказки, которые были скрыты HideAllControlHints
Показать все подсказки игрока
Код:
ShowAllControlHints(playerid)
* playerid - ID игрока
Обновить текст подсказки
Код:
UpdateControlHintText(playerid, hintid, const description[], const control[] = "", show = CH_SHOW_HINT)
* playerid - ID игрока
* hintid - ID подсказки
* description[] - Новый текст описания
* control[] - Новый текст кнопки управления
* show - Показать или скрыть подсказку после обновления
Использовать позицию X другой подсказки в качестве основы для CreateControlHintAbove/Below
Код:
SetControlHintAnchorX(playerid, hintid, Float:offset = 0.0)
* playerid - ID игрока
* hintid - ID подсказки
* offset - Смещение X от точки
Использовать позицию Y другой подсказки в качестве основы для CreateControlHintAbove/Below
Код:
SetControlHintAnchorY(playerid, hintid, Float:offset = 0.0)
* playerid - ID игрока
* hintid - ID подсказки
* offset - Смещение Y от точки
Установить позицию подсказки
Код:
SetControlHintPosition(playerid, hintid, Float:x, Float:y, show = CH_SHOW_HINT)
* playerid - ID игрока
* hintid - ID подсказки
* x - Позиция X
* y - Позиция Y
* show - Показать или скрыть подсказку после установки позиции
Получить позицию подсказки
Код:
GetControlHintPosition(playerid, hintid, &Float:x, &Float:y, Float:xOffset = 0.0, Float:yOffset = 0.0)
* playerid - ID игрока
* hintid - ID подсказки
* x - Позиция X
* y - Позиция Y
* xOffset - Смещение X от точки
* yOffset - Смещение Y от точки
Запустить анимацию подсказки
Код:
StartControlHintAnimation(playerid, hintid, backgroundColor, Float:speed = 15.0)
* playerid - ID игрока
* hintid - ID подсказки
* backgroundColor - Цвет фона анимации
* speed - Скорость анимации
* Вызывает OnPlayerControlHintAnimationEnd когда анимация заканчивается
Остановить анимацию подсказки
Код:
StopControlHintAnimation(playerid, hintid)
* playerid - ID игрока
* hintid - ID подсказки
Проверить, анимируется ли подсказка
Код:
IsControlHintAnimating(playerid, hintid)
* playerid - ID игрока
* hintid - ID подсказки
* Возвращает true, если подсказка анимируется, иначе false
Подсветить фон подсказки
Код:
HighlightControlHintBackground(playerid, hintid, backgroundColor, timeout = 1000)
* playerid - ID игрока
* hintid - ID подсказки
* backgroundColor - Цвет фона для подсветки
* timeout - Длительность подсветки в миллисекундах
Callbacks
Вызывается когда анимация подсказки выполнена
Вызывается когда было нажатие на подсказку курсором
Код:
public OnPlayerControlHintAnimationEnd(playerid, hintid)
* playerid - ID игрока
* hintid - ID подсказки
Вызывается когда было нажатие на подсказку курсором
Код:
public OnPlayerControlHintClicked(playerid, hintid)
* playerid - ID игрока
* hintid - ID подсказки
Definition
Код:
#define CH_MAX_CONTROL_HINTS 32
#define CH_DESCRIPTION_LENGTH 128
#define CH_CONTROL_LENGTH 64
#define CH_LETTER_SIZE_X 0.1598
#define CH_LETTER_SIZE_Y 0.9199
#define CH_BACKGROUND_HEIGHT 11.5
#define CH_HINT_STACK_GAP 1.0
#define CH_BACKGROUND_COLOR 0x1e1e1eFF
#define CH_FOREGROUND_COLOR 0x353535FF
#define CH_TEXT_COLOR 0xFFFFFFFF
#define CH_DESCRIPTION_COLOR 0xFFFFFFFF
#define CH_INVALID_ID 0
#define CH_TEXT_ALIGN_LEFT 1
#define CH_TEXT_ALIGN_RIGHT 3
#define CH_HIDE_HINT 0
#define CH_SHOW_HINT 1
Автор: Bren
