Главная » Статьи » Скриптинг/ Статьи/ Мануалы |
Динамические HUD сообщения
Перевод: DJ_WEST Источник: amx-x.ru С помощью данного расширения можно использовать динамические HUD надписи в своих плагинах с различными эффектами. Чтобы использовать все эти возможности необходимо установить на сервере плагин, указанный в данной статье. Создание нового объекта: Code DHUD_create(dhud = -1) Данная функция позволяет сделать копию другого объекта. Для создания нового объекта используйте dhud=-1 (по умолчанию). Каждый фрейм имеет позицию, цвет и длительность показа (iLen): Code DHUD_setFrame(dhud, frame, iColor[3]={0,0,0}, Float:x=0.0, Float:y=0.0, iLen = 1) Quote dhud - это результат от DHUD_create frame - это номер фрейма, начинается с 0 Например, новый dhud объект и установка 4 фреймов создаст: 0, 1, 2, 3, 4 фреймы iLen - время показа HUD, фрейм с жизнью iLen = 2 будет отображаться на экране в два раза дольше, чем с iLen = 1 Фильтры - легкий способ установки нескольких фреймов с указанной схемой: Code DHUD_applyFilter(dhud, const szFilter[], startFrame, endFrame, Float:dx=D_LONG, Float:dy=D_ZERO, any:...) Quote dhud - это результат от DHUD_create szFilter[] - название фильтра, используйте команду 'dhud info' для просмотра списка startFrame - endFrame - интервал фреймов для которых работает фильтр. endFrame не может быть больше, чем число фреймов, поэтому прежде чем использовать функцию, убедитесь, что dhud имеет достаточно фреймов dx, dy - используется, когда вы хотите изменить путь отображения. Позволяет вам увеличить или уменьшить координаты Основные фильтры SetPosition (Float:x, Float:y) и SetColor(r, g, b): Code DHUD_setFrame(dhud, 50) DHUD_applyFilter(dhud, "SetPosition", 0, 50, D_ZERO, D_ZERO, 0.5, 0.5) DHUD_applyFilter(dhud, "SetColor", 0, 50, D_ZERO, D_ZERO, 255, 255, 255) Для отображения динамических HUD используется: Code DHUD_display(id, dhud, Float:fInterval = 0.1, channel = 4, const szMessage[], any:...) Quote id - id игрока или 0, если для всех dhud - dhud объект fInterval - время отображения для фреймов с iLen = 1 channel - HUD канал от 1 до 4 szMessage[], ... - сообщение для отображения Пример плагина: Code #include <amxmodx> #include <amxmisc> #include <dHUD> #define PLUGIN "dHUD Test" #define VERSION "1.0" #define AUTHOR "R3X" new dhud, dhud2, dhud3 new i=0 public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) // Создаем объект dhud = DHUD_create() // Устанавливаем данные для фреймов DHUD_setFrame(dhud, 0, {255, 255, 255}, 0.3, 0.31) DHUD_setFrame(dhud, 1, {255, 255, 230}, 0.3, 0.32) DHUD_setFrame(dhud, 2, {255, 255, 205}, 0.3, 0.33) DHUD_setFrame(dhud, 3, {255, 255, 180}, 0.3, 0.34) DHUD_setFrame(dhud, 4, {255, 255, 155}, 0.3, 0.35) DHUD_setFrame(dhud, 5, {255, 255, 130}, 0.3, 0.36) DHUD_setFrame(dhud, 6, {255, 255, 105}, 0.3, 0.37) DHUD_setFrame(dhud, 7, {255, 255, 80}, 0.3, 0.38) DHUD_setFrame(dhud, 8, {255, 255, 55}, 0.3, 0.39) DHUD_setFrame(dhud, 9, {255, 255, 0}, 0.3, 0.4) // Создаем новый объект, копируя dhud dhud2 = DHUD_create(dhud); DHUD_setFrame(dhud2, 0, {255, 255, 255}, 1.0, 0.0) DHUD_applyFilter(dhud2, "MoveStraight", 1, 9, -D_LONG, D_ZERO, -1.0, 1.0) // Регистрация фильтра синусоидной функции DHUD_registerFilter("Sinus", "filterSinus", "Sinusoida") dhud3 = DHUD_create() DHUD_setFrame(dhud3, 90, {255, 255, 255}, 0.0, 0.0) DHUD_applyFilter(dhud3, "TransColor", 0, 45, D_ZERO, D_ZERO, {255, 0, 0}, {0, 255, 255}) DHUD_applyFilter(dhud3, "TransColor", 45, 90, D_ZERO, D_ZERO, {0, 255, 255}, {0, 0, 0}) DHUD_applyFilter(dhud3, "Sinus", 0, 90, D_SHORT) register_clcmd("dhud", "cmdDHUD") register_clcmd("dhud2", "cmdDHUD2") register_clcmd("dhud3", "cmdDHUD3") } public filterSinus(dhud, frame, startFrame, endFrame, Float:x, Float:y) { new iColor[3], Float:oldx, Float:oldy, iLen DHUD_getFrame(dhud, frame, iColor, oldx, oldy, iLen) DHUD_setFrame(dhud, frame, iColor, x, floatsin(x*10-30)/5+0.4, iLen) } public cmdDHUD(id) { DHUD_clear(id, dhud3) DHUD_display(id, dhud, _, 1, "Test #%d", i++) return PLUGIN_HANDLED } public cmdDHUD2(id) { DHUD_display(id, dhud2, _, 2, "Test #%d", i++) return PLUGIN_HANDLED } public cmdDHUD3(id) { DHUD_display(id, dhud3, _, 3, "Test #%d", i++) return PLUGIN_HANDLED } public fwStopAnimation(id, dhud, bool:finished) { client_print(id, print_chat, "%s %d",finished?"Finished":"Interrupted", dhud) } Вот Дополнительные Инклуды: | |
Просмотров: 720 | Рейтинг: 0.0/0 |
Всего комментариев: 0 | |