TUT Работа с HUD и DHUD съобщения - българска AMXX скриптова общност

Модератор: Чуви

  • Списък на форума AMX Mod X Статии / кодови фрагменти

В този раздел на форума е разрешено да се създават теми, свързани само с учебния материал на AMX Mod X.

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

[имейл защитен] » 14 август 2011 г., 23:47 ч

Автор: WPMG [имейл защитен] Източник: JustServer.Ru

В тази статия ще разгледаме използването на HUD и DHUD съобщения.

Първо вземете под внимание аргументите на функцията set_hudmessage: Код: Изберете всичко червено - количество червен цвят; зелено - количество зелен цвят; синьо - количество син цвят; x - X-координата, върви отляво надясно, 0.0 наляво, 1.0 надясно, -1.0 център; y - Y-координата, върви отгоре надолу, 0.0 отгоре, 1 .0 отдолу, -1.0 център; ефекти - Ефект на съобщение: 0 - Външен вид -> Обикновено -> Изчезване (Изчезване), 1 - (Изчезване -> Неактивност -> Изчезване (Изчезване)) + Мигане, 2 - Въвеждане на букви -> Обикновено -> Fadeout; fxtime - Време на забавяне на блясъка от въвеждането на букви във втория ефект ("Плъзгащ блясък"); holdtime - Време на неактивност на съобщението; fadeintime - Време на появяване на съобщението, във втория ефект скорост на въвеждане (1 буква в % от секунди); fadeouttime - Време на изчезване на съобщението (Fadeout); Има ограничение от 4 канала, т.е. не може да има повече от 4 съобщения едновременно.

Аргументите set_dhudmessage не се различават от set_hudmessage, с изключение на последния аргумент: Код: Изберете всички надеждни - Ако е невярно, може да не достигне до играча, но няма да накара играча да изостава, както при true.

Освен това HUD съобщенията имат SyncHud, това е замяна на канал, нека да разгледаме функциите на SyncHud: Код:Избор на всички CreateHudSyncObj() - Създава SyncHud; ShowSyncHudMsg(target, syncObj, const fmt[], any. ) - Показва HUD съобщение (SyncHud), използвано вместо show_hudmessage, аргументи: target - Играч, 0 към всички, syncObj - ИД на SyncHud, fmt - Съобщение, допълнителен аргумент s към съобщението ; ClearSyncHud(target, syncObj) - Изтрива всички съобщения, извикани от syncObj, аргументи: target - Играч, 0 всички, syncObj - ID на SyncHud;

Сега ще разгледаме как да преодолеем припокриването на съобщения в DHUD съобщения.

За да направите това, трябва да изпратите 8 празни съобщения или 7, 6 в зависимост от броя на изпратените съобщения (9 минус броя на изпратените съобщения) Код: Изберете всички за (ново iDHUD = 0 ; iDHUD

За да изчистите всички съобщения, изпратете 8 празни DHUD съобщения Код: Изберете всички за (нов iDHUD = 0; iDHUD

Можете да получите тази функция: Код: Изберете всички налични ClearDHUD съобщения (pId, iClear = 8) за (нов iDHUD = 0; iDHUD

Бележки: fxtime не работи с DHUD съобщения. Не можете да показвате повече от 8 DHUD съобщения едновременно.

Примери за използване: Използване на нормални канали в HUD съобщения. Код: Изберете всички #include

public plugin_init() register_clcmd( "кажи /тест" , "ClCmdTest");

публичен ClCmdTest (pId) set_hudmessage (0, 255, 0, - 1.0, - 1.0, 2, 1.0, 1.0, 0.1, 1.0, - 1); show_hudmessage ( pId, "Изпратихте съобщение на играча :D"); > Използване на SyncHud. Код: Изберете всички #include

public plugin_init () register_clcmd ("say /test" , "ClCmdTest" ); register_clcmd ("кажете /изчистете" , "ClCmdClear");

публичен ClCmdTest (pId) set_hudmessage (0, 255, 0, - 1.0, - 1.0, 2, 1.0, 1.0, 0.1, 1.0, - 1); ShowSyncHudMsg ( pId, g_syncHudMessage, "Изпратихте съобщение на играча :D"); >

публичен ClCmdClear (pId) ClearSyncHud (pId, g_syncHudMessage); Използване на DHUD съобщение. Код: Изберете всички #include #include

public plugin_init() register_clcmd( "кажи /тест" , "ClCmdTest");

публичен ClCmdTest (pId) set_dhudmessage (0, 255, 0, - 1.0, - 1.0, 2, 1.0, 1.0, 0.1, 1.0, невярно); show_dhudmessage ( pId, "Изпратихте съобщение на играча :D"); > Използване на почистване на DHUD съобщения и Anti-Cover. Код: Изберете всички #include #include

public plugin_init () register_clcmd ("say /test" , "ClCmdTest" ); register_clcmd ("say /clear" , "ClCmdClear"); >

публичен ClCmdTest ( pId ) ClearDHUDMessages ( pId );

set_dhudmessage (0, 255, 0, - 1.0, - 1.0, 2, 1.0, 1.0, 0.1, 1.0, невярно); show_dhudmessage ( pId, "Изпратихте съобщение на играча :D"); >

публичен ClCmdClear ( pId ) ClearDHUDMessages ( pId );

запас ClearDHUDMessages ( pId , iClear = 8 ) за (нов iDHUD = 0; iDHUD