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

[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 сообщениями

Сообщение Otstrel » 18 авг 2013, 14:00

Bos93 писал(а):
Otstrel писал(а):Как сделать чтобы Дхуд появился только в начале раунда и все?

Крутой вопрос. Вам бы основы подучить. Логически,отловить начало раунда и показать дхуд. В чем сложность?

Понятно,спасибо
Аватара пользователя
Otstrel
 
Сообщения: 138
Зарегистрирован: 25 июн 2013, 15:00
Благодарил (а): 31 раз.
Поблагодарили: 3 раз.
Языки программирования: Counter-Strike 1.6

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

Сообщение Fomka » 16 сен 2013, 20:02

Парни и Девушки помогите у меня стоит мод JailBreak поставил dhud чтобы писало большыми буквами кто Саймон но у меня такая проблема, надпись появилась и через 2-3секунды изщезает потом через 2-3секунды опять появляеться потом опять изщезает.
Аватара пользователя
Fomka
 
Сообщения: 14
Зарегистрирован: 15 сен 2013, 21:15
Забанен
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.
Языки программирования: Counter-Strike 1.6

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

Сообщение Bos93 » 17 сен 2013, 13:49

Парни и Девушки помогите у
меня стоит
и тут мне стало страшно.
Всем добра, любви и осознанности.

Nosce animum tuum.

А осознание и есть, что понял и осмыслил..
А коль не думал ты о том, то кто о том замыслил..?
Аватара пользователя
Bos93
 
Сообщения: 1425
Зарегистрирован: 03 апр 2010, 13:44
Благодарил (а): 149 раз.
Поблагодарили: 514 раз.

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

Сообщение Leonidddd » 17 сен 2013, 13:51

Bos93, :ROFL:
Аватара пользователя
Leonidddd
Модератор
 
Сообщения: 2557
Зарегистрирован: 08 апр 2012, 18:13
Откуда: г. Запорожье
Благодарил (а): 192 раз.
Поблагодарили: 718 раз.

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

Сообщение partymaker » 16 ноя 2013, 12:55

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

Как тогда сделать не пустыми сообщениями, чтобы убрать накладку дхуд? Чтоб собщения не накладывалмсь друг на друга?
Пытаюсь сделать змод с минимальными ф-ями (конечно же, не без вашей помощи).
Начало сделано...
Аватара пользователя
partymaker
 
Сообщения: 623
Зарегистрирован: 21 авг 2013, 21:00
Благодарил (а): 78 раз.
Поблагодарили: 83 раз.
Языки программирования: Counter Strike

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

Сообщение danko42 » 03 фев 2014, 09:10

А как player_hudmessage перевести в set_hudmessage или в set_dhudmessage?
Аватара пользователя
danko42
 
Сообщения: 132
Зарегистрирован: 03 ноя 2013, 18:48
Откуда: Россия
Благодарил (а): 19 раз.
Поблагодарили: 0 раз.
Языки программирования: Counter-Strike 1.6

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

Сообщение Schibeki » 21 апр 2014, 01:50

Код: Выделить всё
set_hudmessage(255,0,0,-1.0,0.75,0,0.0,5.0,4.0,0.0,-1)
будет 4 сек. показывать?
Какая разница,что говорят у тебя за спиной,когда в лицо сказать не могут...
Аватара пользователя
Schibeki
 
Сообщения: 127
Зарегистрирован: 12 мар 2014, 10:43
Откуда: Беларусь, Витебск
Благодарил (а): 13 раз.
Поблагодарили: 12 раз.
Опыт программирования: Около года
Языки программирования: PAWN, C#, Java

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

Сообщение Safety1st » 21 апр 2014, 02:16

Проверь сам, что будет.
GoldSrc Gaming Community
Аватара пользователя
Safety1st
 
Сообщения: 1958
Зарегистрирован: 08 окт 2011, 05:41
Откуда: Moscow
Благодарил (а): 1690 раз.
Поблагодарили: 933 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Half-Life

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

Сообщение DumoH4uk » 11 дек 2014, 12:52

[spoiler]Вы должны зарегистрироваться, чтобы видеть ссылки.[/spoiler]

А можно как-нибудь выравнить сообщение по левому или правому краю? :dntknw:
Аватара пользователя
DumoH4uk
 
Сообщения: 104
Зарегистрирован: 20 окт 2010, 22:49
Откуда: Москва
Благодарил (а): 41 раз.
Поблагодарили: 7 раз.

Пред.

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

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

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