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

[TUT] Работа с HUD и DHUD сообщениями

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

Модератор: Chuvi

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

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

[TUT] Работа с HUD и DHUD сообщениями

Сообщение PRoSToTeM@ » 14 авг 2011, 23:47

Автор: WPMG PRoSToTeM@
Источник: JustServer.Ru

В этой статье мы рассмотрим использование HUD и DHUD сообщений.

Для начала рассмотрим аргументы функции set_hudmessage:
Код: Выделить всё
red - Количество красного цвета;
green - Количество зелёного цвета;
blue - Количество синего цвета;
x - Координата X, идёт слева направо, 0.0 слева, 1.0 справа, -1.0 по центру;
y - Координата Y, идёт сверху вниз, 0.0 сверху, 1.0 снизу, -1.0 по центру;
effects - Эффект сообщения:
   0 - Появление -> Простой -> Пропадание (Затухание),
   1 - (Появление -> Простой -> Пропадание (Затухание)) + Мигание,
   2 - Печатание букв -> Простой -> Пропадание (Затухание);
fxtime - Время отставания блеска от печатания букв во 2-ом эффекте ("Скользящий блеск");
holdtime - Время простоя сообщения;
fadeintime - Время появления сообщения, во 2-ом эффекте скорость печатания (1 буква в % секунд);
fadeouttime - Время пропадания сообщения (Затухание);
channel - канал сообщения, при -1 ищет следующий канал (Существует ограничение в 4 канала, т.е. не может быть больше 4 сообщений одновременно.


Аргументы set_dhudmessage ничем не отличаются от set_hudmessage, кроме последнего аргумента:
Код: Выделить всё
reliable - При false может не дойти до игрока, но не будет вызывать лаги у игрока как при true.


Также у HUD сообщений существует SyncHud это замена каналов, рассмотрим функции SyncHud'a:
Код: Выделить всё
CreateHudSyncObj() - Создаёт SyncHud;
ShowSyncHudMsg(target, syncObj, const fmt[], any:...) - Показывает HUD сообщение (SyncHud) использовать вместо show_hudmessage, аргументы:
   target - Игрок, 0 всем,
   syncObj - ID SyncHud'а,
   fmt - Сообщение, дальше аргументы к сообщению;
ClearSyncHud(target, syncObj) - Удаляет все сообщения вызванные syncObj'ом, аргументы:
   target - Игрок, 0 всем,
   syncObj - ID SyncHud'а;


Теперь мы рассмотрим как побороть накладывание сообщений в DHUD сообщениях.

Для этого нужно отослать 8 пустых сообщений или 7, 6 в зависимости от количества отсылаемых сообщений (9 минус количество отсылаемых)
Код: Выделить всё
for (new iDHUD 0iDHUD 7iDHUD++)
        show_dhudmessage(pId /*Или 0 если всем*/""); 


Чтобы очистить все сообщения посылаем 8 пустых DHUD сообщений
Код: Выделить всё
for (new iDHUD 0iDHUD 8iDHUD++)
        show_dhudmessage(pId /*Или 0 если всем*/""); 


Можно получить такую функцию:
Код: Выделить всё
stock ClearDHUDMessages(pIdiClear 8)
        for (new iDHUD 0iDHUD iCleariDHUD++)
                show_dhudmessage(pId""); 


Примечания:
fxtime не работает в DHUD сообщениях.
Нельзя одновременно показать больше 8 DHUD сообщений.

Примеры использования:
С использованием обычных каналов в HUD сообщениях.
Код: Выделить всё
#include <amxmodx>
 
public plugin_init()
        register_clcmd("say /test""ClCmdTest");
 
public ClCmdTest(pId)
{
        set_hudmessage(02550, -1.0, -1.021.01.00.11.0, -1);
        show_hudmessage(pId"Вы отослали игроку сообщение :D");

С использованием SyncHud.
Код: Выделить всё
#include <amxmodx>
 
new g_syncHudMessage;
 
public plugin_init()
{
        register_clcmd("say /test""ClCmdTest");
        register_clcmd("say /clear""ClCmdClear");
        
        g_syncHudMessage 
CreateHudSyncObj();
}
 
public ClCmdTest(pId)
{
        set_hudmessage(02550, -1.0, -1.021.01.00.11.0, -1);
        ShowSyncHudMsg(pIdg_syncHudMessage"Вы отослали игроку сообщение :D");
}
 
public ClCmdClear(pId)
        ClearSyncHud(pIdg_syncHudMessage); 

С использованием DHUD сообщения.
Код: Выделить всё
#include <amxmodx>
#include <dhudmessage>
 
public plugin_init()
        register_clcmd("say /test""ClCmdTest");
 
public ClCmdTest(pId)
{
        set_dhudmessage(02550, -1.0, -1.021.01.00.11.0false);
        show_dhudmessage(pId"Вы отослали игроку сообщение :D");

C использованием очистки DHUD сообщения и "Анти-накладки".
Код: Выделить всё
#include <amxmodx>
#include <dhudmessage>
 
public plugin_init()
{
        register_clcmd("say /test""ClCmdTest");
        register_clcmd("say /clear""ClCmdClear");
}
 
public ClCmdTest(pId)
{
        ClearDHUDMessages(pId);
        
        set_dhudmessage
(02550, -1.0, -1.021.01.00.11.0false);
        show_dhudmessage(pId"Вы отослали игроку сообщение :D");
}
 
public ClCmdClear(pId)
        ClearDHUDMessages(pId);
 
stock ClearDHUDMessages
(pIdiClear 8)
        for (new iDHUD 0iDHUD iCleariDHUD++)
                show_dhudmessage(pId""); 
Аватара пользователя
PRoSToTeM@
Скриптер
 
Сообщения: 2498
Зарегистрирован: 26 мар 2010, 00:12
Благодарил (а): 438 раз.
Поблагодарили: 1125 раз.

Re: [TUT] Работа с HUD и DHUD сообщениями

Сообщение fl0wer » 14 авг 2011, 23:53

Аватара пользователя
fl0wer
 
Сообщения: 1687
Зарегистрирован: 27 фев 2011, 21:35
Откуда: Россия, Ижевск
Благодарил (а): 240 раз.
Поблагодарили: 508 раз.
Опыт программирования: Больше трех лет
Языки программирования: C++, Java, PAWN

Re: [TUT] Работа с HUD и DHUD сообщениями

Сообщение Sky Cat » 15 авг 2011, 00:00

Лови сасибо)
Аватара пользователя
Sky Cat
 
Сообщения: 99
Зарегистрирован: 03 июн 2011, 22:09
Откуда: Белгород
Благодарил (а): 3 раз.
Поблагодарили: 9 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6

Re: [TUT] Работа с HUD и DHUD сообщениями

Сообщение imba » 15 авг 2011, 01:05

Если использовать
[pawn]
  1. set_dhudmessage(0, 255, 0, -1.0, -1.0, 2, 1.0, 1.0, 0.1, 1.0, false);
[/pawn]
без falce,чем это чревато?
Или без разницы?
Аватара пользователя
imba
 
Сообщения: 165
Зарегистрирован: 13 сен 2009, 00:16
Благодарил (а): 54 раз.
Поблагодарили: 31 раз.
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead

Re: [TUT] Работа с HUD и DHUD сообщениями

Сообщение PRoSToTeM@ » 15 авг 2011, 02:05

Там по умолчанию стоит false.
Аватара пользователя
PRoSToTeM@
Скриптер
 
Сообщения: 2498
Зарегистрирован: 26 мар 2010, 00:12
Благодарил (а): 438 раз.
Поблагодарили: 1125 раз.

Re: [TUT] Работа с HUD и DHUD сообщениями

Сообщение noo00oob » 15 авг 2011, 09:14

Вообще способ не очень, канал пидов пустышками нехило нагружается.
Один фрукт, страдающий недостачей времени, нашел его ради меня любимого и писал(а):
noo00oob, зачем родился на свет вообще? срать на форумах это понятно.. больше изъеба не найти как бэ? а то, что ты недоношенная скотина, сдерживайся, детка.
noo00oob
 
Сообщения: 1061
Зарегистрирован: 09 янв 2010, 21:52
Благодарил (а): 258 раз.
Поблагодарили: 395 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Half-Life

Re: [TUT] Работа с HUD и DHUD сообщениями

Сообщение Ser_UFL » 15 авг 2011, 16:25

Пустые сообщения в DHUD... зачем? :-!

P.S. Про SyncHud не особо понял О_о
Запомните, всегда по жизни вас будут красить вежливость и спокойствие, а не наезды и дешевые понты ;)
Аватара пользователя
Ser_UFL
 
Сообщения: 975
Зарегистрирован: 22 авг 2009, 19:30
Откуда: Hell
Благодарил (а): 276 раз.
Поблагодарили: 380 раз.
Языки программирования: Counter-Strike 1.6:
WebMod-scripts, little Pawn.

Re: [TUT] Работа с HUD и DHUD сообщениями

Сообщение Retro-kolt Lincoln » 16 авг 2011, 00:22

Молодец, всё разжевал и в рот положил :thumbs_up
Предлагаю услуги гаранта. Написание плагинов на заказ.
Статус:
на заслуженном отдыхе
Отзывы: Нажми
Обратиться ко мне: Нажми

- - - - - - - - - - - - - - - -
Если ваше ЛС было проигнорировано мною, знайте, оно мне не интересно.
Аватара пользователя
Retro-kolt Lincoln
 
Сообщения: 1283
Зарегистрирован: 28 авг 2010, 19:16
Благодарил (а): 321 раз.
Поблагодарили: 581 раз.
Опыт программирования: Больше трех лет
Языки программирования: ╚►Counter-Strike 1.6

Re: [TUT] Работа с HUD и DHUD сообщениями

Сообщение Sky Cat » 20 авг 2011, 22:23

Код: Выделить всё
спасибо
Аватара пользователя
Sky Cat
 
Сообщения: 99
Зарегистрирован: 03 июн 2011, 22:09
Откуда: Белгород
Благодарил (а): 3 раз.
Поблагодарили: 9 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6

Re: [TUT] Работа с HUD и DHUD сообщениями

Сообщение nastyawa3 » 22 авг 2011, 17:53

помогите сдлеать
чтобы сообщение висело всего 4 секунды
[pawn]
  1. set_dhudmessage(random_num(0, 255), random_num(0, 255), random_num(0, 255), 0.01, 0.50, 0, 6.0, 4.0, 1.0, 1.5)
[/pawn]
Аватара пользователя
nastyawa3
 
Сообщения: 117
Зарегистрирован: 26 май 2011, 16:47
Благодарил (а): 92 раз.
Поблагодарили: 8 раз.
Опыт программирования: Меньше месяца
Языки программирования: Counter-Strike 1.6

След.

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

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

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