Русское сообщество по скриптингу

Динамические HUD сообщения

Статьи или фрагменты кода для новичков и уже опытных скриптеров по AMXX.

Модератор: Chuvi

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только обучающему материалу по AMX Mod X.

Динамические HUD сообщения

Сообщение DJ_WEST » 13 сен 2010, 09:25

Автор: Scherzo
Перевод: DJ_WEST

С помощью данного расширения можно использовать динамические HUD надписи в своих плагинах с различными эффектами. Чтобы использовать все эти возможности необходимо установить на сервере плагин, указанный в данной статье.

[align=center]
[/align]


Создание нового объекта:
[pawn]DHUD_create(dhud = -1) [/pawn]
Данная функция позволяет сделать копию другого объекта. Для создания нового объекта используйте dhud=-1 (по умолчанию).

Каждый фрейм имеет позицию, цвет и длительность показа (iLen):
[pawn]DHUD_setFrame(dhud, frame, iColor[3]={0,0,0}, Float:x=0.0, Float:y=0.0, iLen = 1) [/pawn]
dhud - это результат от DHUD_create
frame - это номер фрейма, начинается с 0
Например, новый dhud объект и установка 4 фреймов создаст: 0, 1, 2, 3, 4 фреймы
iLen - время показа HUD, фрейм с жизнью iLen = 2 будет отображаться на экране в два раза дольше, чем с iLen = 1


Фильтры - легкий способ установки нескольких фреймов с указанной схемой:
[pawn]DHUD_applyFilter(dhud, const szFilter[], startFrame, endFrame, Float:dx=D_LONG, Float:dy=D_ZERO, any:...) [/pawn]
dhud - это результат от DHUD_create
szFilter[] - название фильтра, используйте команду 'dhud info' для просмотра списка
startFrame - endFrame - интервал фреймов для которых работает фильтр. endFrame не может быть больше, чем число фреймов, поэтому прежде чем использовать функцию, убедитесь, что dhud имеет достаточно фреймов
dx, dy - используется, когда вы хотите изменить путь отображения. Позволяет вам увеличить или уменьшить координаты


Основные фильтры SetPosition (Float:x, Float:y) и SetColor(r, g, b):
[pawn]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) [/pawn]

Для отображения динамических HUD используется:
[pawn]DHUD_display(id, dhud, Float:fInterval = 0.1, channel = 4, const szMessage[], any:...) [/pawn]
id - id игрока или 0, если для всех
dhud - dhud объект
fInterval - время отображения для фреймов с iLen = 1
channel - HUD канал от 1 до 4
szMessage[], ... - сообщение для отображения


Пример плагина:
[pawn]
#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)
}
 [/pawn]
Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.
Аватара пользователя
DJ_WEST
Администратор
 
Сообщения: 3641
Зарегистрирован: 22 авг 2009, 00:38
Благодарил (а): 48 раз.
Поблагодарили: 2209 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Left 4 Dead
Left 4 Dead 2

Re: Динамические HUD сообщения

Сообщение ILZM » 27 фев 2011, 18:42

Не понял??? Спрайты можно скачивать, может имели ввиду HUD.txt??? Его вроде можно с согласия клиента ему закачать. И все.
Аватара пользователя
ILZM
 
Сообщения: 270
Зарегистрирован: 04 фев 2011, 15:21
Благодарил (а): 55 раз.
Поблагодарили: 43 раз.
Опыт программирования: Меньше месяца
Языки программирования: Counter-Strike 1.6

Re: Динамические HUD сообщения

Сообщение DJ_WEST » 02 мар 2011, 17:12

Это и имелось в виду.
Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.
Аватара пользователя
DJ_WEST
Администратор
 
Сообщения: 3641
Зарегистрирован: 22 авг 2009, 00:38
Благодарил (а): 48 раз.
Поблагодарили: 2209 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Left 4 Dead
Left 4 Dead 2

Re: Динамические HUD сообщения

Сообщение Rhyme » 20 апр 2011, 21:49

Классно!!
Аватара пользователя
Rhyme
 
Сообщения: 119
Зарегистрирован: 30 мар 2011, 17:57
Забанен
Благодарил (а): 16 раз.
Поблагодарили: 30 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Counter-Strike 1.6

Re: Динамические HUD сообщения

Сообщение cs-portal » 31 июл 2011, 21:00

компилиться но не рабоатет

plugin uses unknown function DHUD_display


а все нашел Use library dHUD.sma and one of example .sma both
то бишь для работы нужно включать еще пару плагинов *(
Аватара пользователя
cs-portal
 
Сообщения: 228
Зарегистрирован: 08 июн 2010, 23:56
Благодарил (а): 12 раз.
Поблагодарили: 9 раз.
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead

Re: Динамические HUD сообщения

Сообщение DJ_WEST » 01 авг 2011, 14:50

то бишь для работы нужно включать еще пару плагинов *(

Читаем внимательней первый пост :)
Не пишите мне в ЛС: если вам нужна помощь на бесплатной основе. Любые вопросы на форум.
Аватара пользователя
DJ_WEST
Администратор
 
Сообщения: 3641
Зарегистрирован: 22 авг 2009, 00:38
Благодарил (а): 48 раз.
Поблагодарили: 2209 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Left 4 Dead
Left 4 Dead 2

Re: Динамические HUD сообщения

Сообщение Hunter » 26 фев 2012, 01:34

А есть возможность подключения #include <dhudmessage> и вывод сообщений большим текстом?
Аватара пользователя
Hunter
 
Сообщения: 72
Зарегистрирован: 07 июн 2010, 12:03
Благодарил (а): 5 раз.
Поблагодарили: 1 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6

Re: Динамические HUD сообщения

Сообщение mazdan » 26 фев 2012, 18:28

надо тетрис сделать :D
я не пишу плагины на заказ!
Аватара пользователя
mazdan
 
Сообщения: 739
Зарегистрирован: 12 окт 2010, 14:44
Благодарил (а): 121 раз.
Поблагодарили: 211 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6

Re: Динамические HUD сообщения

Сообщение Fedcomp » 26 фев 2012, 18:58

Не помогаю в ЛС - есть форум.
Плагины тоже не пишу, на форуме достаточно хороших скриптеров.


"я ставлю зависимости потому что мне приятно" - subb98 @ 2017
Аватара пользователя
Fedcomp
Администратор
 
Сообщения: 4936
Зарегистрирован: 28 авг 2009, 20:47
Благодарил (а): 813 раз.
Поблагодарили: 1317 раз.
Языки программирования: =>
pawn / php / python / ruby
javascript / rust

Re: Динамические HUD сообщения

Сообщение mazdan » 26 фев 2012, 19:31

клааас :D и заставлять всех играть главное :D
я не пишу плагины на заказ!
Аватара пользователя
mazdan
 
Сообщения: 739
Зарегистрирован: 12 окт 2010, 14:44
Благодарил (а): 121 раз.
Поблагодарили: 211 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6

Re: Динамические HUD сообщения

Сообщение almazik2015 » 27 июн 2012, 06:42

#include <dHUD>

Неработает
Аватара пользователя
almazik2015
 
Сообщения: 3
Зарегистрирован: 05 мар 2012, 11:15
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: Counter-Strike 1.6

Пред.След.

Вернуться в Статьи / фрагменты кода

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9