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

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

Сообщение PRoSToTeM@ » 22 авг 2011, 17:57

[pawn]
  1. set_dhudmessage(random_num(0, 255), random_num(0, 255), random_num(0, 255), 0.01, 0.50, 0, 0.0, 1.5, 1.0, 1.5)
[/pawn]
Аватара пользователя
PRoSToTeM@
Скриптер
 
Сообщения: 2498
Зарегистрирован: 26 мар 2010, 00:12
Благодарил (а): 438 раз.
Поблагодарили: 1125 раз.

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

Сообщение fl0wer » 22 авг 2011, 18:02

nastyawa3 писал(а):помогите сдлеать
чтобы сообщение висело всего 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]
Я же тебе объяснил, что 8 аргумент с плавающей точкой. :friends:
Аватара пользователя
fl0wer
 
Сообщения: 1687
Зарегистрирован: 27 фев 2011, 21:35
Откуда: Россия, Ижевск
Благодарил (а): 240 раз.
Поблагодарили: 508 раз.
Опыт программирования: Больше трех лет
Языки программирования: C++, Java, PAWN

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

Сообщение bsp123 » 04 фев 2012, 09:36

ааа у меня не комплемит пишет нужен стороний inc помогите пожалуйста
Аватара пользователя
bsp123
 
Сообщения: 46
Зарегистрирован: 16 янв 2012, 17:31
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.

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

Сообщение Shmelev » 05 фев 2012, 20:42

[pawn][/pawn]
Аватара пользователя
Shmelev
 
Сообщения: 40
Зарегистрирован: 20 янв 2012, 21:11
Благодарил (а): 34 раз.
Поблагодарили: 0 раз.
Опыт программирования: Меньше недели
Языки программирования: Counter-Strike 1.6

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

Сообщение ReBzOOn1k » 08 фев 2012, 19:46

Спасибо всем большое )
Аватара пользователя
ReBzOOn1k
 
Сообщения: 183
Зарегистрирован: 14 янв 2012, 20:57
Забанен
Благодарил (а): 11 раз.
Поблагодарили: 81 раз.
Опыт программирования: Около 6 месяцев
Языки программирования: Counter Strike 1.6
Counter Strike 1.6 Source

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

Сообщение Opo4uMapy » 20 фев 2012, 20:54

Пацаны зделайте прикол в чате пишеш /ip и в верху екрана синем пишет ип и порт сервера и определяет ип и порт сервера автоматичиски!
Аватара пользователя
Opo4uMapy
 
Сообщения: 3
Зарегистрирован: 19 фев 2012, 19:24
Забанен
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Опыт программирования: Меньше месяца
Языки программирования: Counter-Strike 1.6

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

Сообщение aWes0mE. <3 » 20 фев 2012, 22:01

bsp123 » 04 фев 2012, 08:36
ааа у меня не комплемит пишет нужен стороний inc помогите пожалуйста



А зачем тебе помогать?
Ты ведь как я не посмотрю,ты там плагины на заказ пишеш.
Аватара пользователя
aWes0mE. <3
 
Сообщения: 19
Зарегистрирован: 19 фев 2012, 20:33
Забанен
Благодарил (а): 50 раз.
Поблагодарили: 1 раз.

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

Сообщение -WisE- » 25 фев 2012, 12:18

bsp123 писал(а):ааа у меня не комплемит пишет нужен стороний inc помогите пожалуйста
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Если моя информация была вам полезна ,то будьте так добры поставить "Спасибку".
Аватара пользователя
-WisE-
 
Сообщения: 294
Зарегистрирован: 17 фев 2012, 14:18
Благодарил (а): 34 раз.
Поблагодарили: 22 раз.
Опыт программирования: Около 3 месяцев
Языки программирования: •••••••••••••••••••••
Counter Strike 1.6
•••••••••••••••••••••

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

Сообщение Opo4uMapy » 26 фев 2012, 14:58

Пацаны Зделатье чтопи в чате писало /ip и писалло вверху дхудом ип сервера и порт авто определение плизз
Аватара пользователя
Opo4uMapy
 
Сообщения: 3
Зарегистрирован: 19 фев 2012, 19:24
Забанен
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Опыт программирования: Меньше месяца
Языки программирования: Counter-Strike 1.6

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

Сообщение Opo4uMapy » 27 фев 2012, 21:11

как зделать чтобы в чате пишеш /ip и вверху красным дхудом ип и порт сервера чтобы автоматичиски определял?
Аватара пользователя
Opo4uMapy
 
Сообщения: 3
Зарегистрирован: 19 фев 2012, 19:24
Забанен
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Опыт программирования: Меньше месяца
Языки программирования: Counter-Strike 1.6

Пред.След.

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

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

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