Перманентно HUD/DHUD съобщение или HUD bar/status
-
OciXCrom
Извън линия - Администратор
- Мнения: 7206
- Регистриран на: 06 Окт 2016, 19:20
- Местоположение: /resetscore
- Се отблагодари: 117 пъти
- Получена благодарност: 1295 пъти
- Обратна връзка:
Re: Перманентно HUD/DHUD съобщение или HUD bar/status
Момче, не знам защо толкова спориш за нещо, което не подлежи на дискусия. За дадено HUD съобщение да стои завинаги, невъзможно е това да стане без повтарящ се task или entity. Просто погледни който искаш плъгин в който сайт искаш - няма да намериш такъв, който не ползва този начин. Съобщенията се премахват от екрана в много случаи, особено когато имаш един куп плъгини, които ползват такива. Няма нужда от допълнителни спорове - напълно работещ начин без повтаряне не съществува.
-
mount4
Извън линия - Потребител
- Мнения: 187
- Регистриран на: 03 Ное 2016, 19:54
- Местоположение: Варна
- Обратна връзка:
Re: Перманентно HUD/DHUD съобщение или HUD bar/status
Аз не споря ами вие сте тези които не обяснихте че съобщението се изчиства когато друг плъгин пусне такова.
Утре някой ще се чуди защо му изчезва съобщението.. Това е особенно важно..
Ето написах код който е със set_task като на крома но има повече неща:
-има cvar за променяне на refresh rate като няма нужда от рестарт за да влязат промените в сила
-има random колор на всяко рефрешване
-има cvar за променяне на ефекта който може да бъде 0, 1 или 2
-има cvar за променяне на Y позицията ( само на "y" защото само това ми трябваше )
чудя се обаче в "ef_change" функцията има ли нужда от return PLUGIN_HANDLED накрая защото откъдето видях как се прави имаше return а аз се колебая и май си мисля че няма нужда защото е накрая на функцията.
Обаче неще да ми се компилирва:
Утре някой ще се чуди защо му изчезва съобщението.. Това е особенно важно..
Ето написах код който е със set_task като на крома но има повече неща:
-има cvar за променяне на refresh rate като няма нужда от рестарт за да влязат промените в сила
-има random колор на всяко рефрешване
-има cvar за променяне на ефекта който може да бъде 0, 1 или 2
-има cvar за променяне на Y позицията ( само на "y" защото само това ми трябваше )
чудя се обаче в "ef_change" функцията има ли нужда от return PLUGIN_HANDLED накрая защото откъдето видях как се прави имаше return а аз се колебая и май си мисля че няма нужда защото е накрая на функцията.
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <amxmisc>
/*
This is static_hud by mount4
*/
new const sMsg[] = "<IP: 94.190.190.195:27015>"
// OciXCrom's check
// Винаги ползвайте тази проверка, тъй като в AMXX 1.8.3, dhudmessage е вграден в самия AMX.
#if AMXX_VERSION_NUM < 183
#include <dhudmessage>
#endif
new g_Y, Float: yy, g_E, ef, g_R, Float: rr
public plugin_init()
{
register_plugin("myhud", "0.1", "mount4")
g_Y = register_cvar("mh_y", "0.033")
g_E = register_cvar("mh_ef", "0")
g_R = register_cvar("mh_rr", "0.3")
register_concmd("mh_y", "y_change", ADMIN_RCON, "<y of the hud>")
register_concmd("mh_ef", "ef_change", ADMIN_RCON, "[0|1|2] different effects")
register_concmd("mh_rr", "rr_change", ADMIN_RCON, "<seconds>")
}
public plugin_cfg()
{
yy = get_pcvar_float(g_Y)
ef = get_pcvar_int(g_E)
rr = get_pcvar_float(g_R)
set_task(rr, "displayMsg", _, _, _, "b")
}
public y_change(id, level, cid)
{
if (!cmd_access(id, level, cid, 1))
return PLUGIN_HANDLED
new argument[8]
if (read_argc() > 1)
{
read_argv(1, argument, 7)
yy = str_to_float(argument)
}
else
console_print(id, "^"mh_y^" is ^"%f^"", yy)
return PLUGIN_HANDLED
}
public ef_change(id, level, cid)
{
if (!cmd_access(id, level, cid, 1))
return PLUGIN_HANDLED
new argument[2]
if (read_argc() > 1)
{
read_argv(1, argument, 1)
ef = str_to_int(argument)
}
else
console_print(id, "^"mh_ef^" is ^"%d^"", ef)
return PLUGIN_HANDLED
}
public rr_change(id, level, cid)
{
if (!cmd_access(id, level, cid, 1))
return PLUGIN_HANDLED
new argument[4]
if (read_argc() > 1)
{
read_argv(1, argument, 3)
rr = str_to_float(argument)
}
else
console_print(id, "^"mh_rr^" is ^"%f^"", rr)
return PLUGIN_HANDLED
}
public displayMsg()
{
set_dhudmessage(random(256), random(256), random(256), -1.0, yy, ef, _, float( get_timeleft() ))
show_dhudmessage(0, sMsg)
}
Код за потвърждение: Избери целия код
myhud_constant.sma(40) : error 017: undefined symbol "get_pcvar_int"
myhud_constant.sma(74) : error 017: undefined symbol "str_to_int"
-
hackera457
Извън линия - Потребител
- Мнения: 768
- Регистриран на: 01 Ное 2016, 09:46
- Местоположение: София
- Се отблагодари: 1 път
- Получена благодарност: 124 пъти
- Обратна връзка:
Re: Перманентно HUD/DHUD съобщение или HUD bar/status
mount4 написа:Аз не споря ами вие сте тези които не обяснихте че съобщението се изчиства когато друг плъгин пусне такова.
Утре някой ще се чуди защо му изчезва съобщението.. Това е особенно важно..
Ето написах код който е със set_task като на крома но има повече неща:
-има cvar за променяне на refresh rate като няма нужда от рестарт за да влязат промените в сила
-има random колор на всяко рефрешване
-има cvar за променяне на ефекта който може да бъде 0, 1 или 2
-има cvar за променяне на Y позицията ( само на "y" защото само това ми трябваше )
чудя се обаче в "ef_change" функцията има ли нужда от return PLUGIN_HANDLED накрая защото откъдето видях как се прави имаше return а аз се колебая и май си мисля че няма нужда защото е накрая на функцията.
Обаче неще да ми се компилирва:Код за потвърждение: Избери целия код
#include <amxmodx> #include <amxmisc> /* This is static_hud by mount4 */ new const sMsg[] = "<IP: 94.190.190.195:27015>" // OciXCrom's check // Винаги ползвайте тази проверка, тъй като в AMXX 1.8.3, dhudmessage е вграден в самия AMX. #if AMXX_VERSION_NUM < 183 #include <dhudmessage> #endif new g_Y, Float: yy, g_E, ef, g_R, Float: rr public plugin_init() { register_plugin("myhud", "0.1", "mount4") g_Y = register_cvar("mh_y", "0.033") g_E = register_cvar("mh_ef", "0") g_R = register_cvar("mh_rr", "0.3") register_concmd("mh_y", "y_change", ADMIN_RCON, "<y of the hud>") register_concmd("mh_ef", "ef_change", ADMIN_RCON, "[0|1|2] different effects") register_concmd("mh_rr", "rr_change", ADMIN_RCON, "<seconds>") } public plugin_cfg() { yy = get_pcvar_float(g_Y) ef = get_pcvar_int(g_E) rr = get_pcvar_float(g_R) set_task(rr, "displayMsg", _, _, _, "b") } public y_change(id, level, cid) { if (!cmd_access(id, level, cid, 1)) return PLUGIN_HANDLED new argument[8] if (read_argc() > 1) { read_argv(1, argument, 7) yy = str_to_float(argument) } else console_print(id, "^"mh_y^" is ^"%f^"", yy) return PLUGIN_HANDLED } public ef_change(id, level, cid) { if (!cmd_access(id, level, cid, 1)) return PLUGIN_HANDLED new argument[2] if (read_argc() > 1) { read_argv(1, argument, 1) ef = str_to_int(argument) } else console_print(id, "^"mh_ef^" is ^"%d^"", ef) return PLUGIN_HANDLED } public rr_change(id, level, cid) { if (!cmd_access(id, level, cid, 1)) return PLUGIN_HANDLED new argument[4] if (read_argc() > 1) { read_argv(1, argument, 3) rr = str_to_float(argument) } else console_print(id, "^"mh_rr^" is ^"%f^"", rr) return PLUGIN_HANDLED } public displayMsg() { set_dhudmessage(random(256), random(256), random(256), -1.0, yy, ef, _, float( get_timeleft() )) show_dhudmessage(0, sMsg) }
Код за потвърждение: Избери целия код
myhud_constant.sma(40) : error 017: undefined symbol "get_pcvar_int" myhud_constant.sma(74) : error 017: undefined symbol "str_to_int"
Код за потвърждение: Избери целия код
get_pcvar_int
str_to_int
--->
Код за потвърждение: Избери целия код
get_pcvar_num
str_to_num
Моите плъгини
Код за потвърждение: Избери целия код
#include <hambeer>
RegisterHamBeer(HamBeer_Spawn, "player", "GivePlayerBeer", 1);
public GivePlayerBeer(Pl){
if(!is_user_alive(Pl)){
ham_give_beer(Pl, 5)
client_print(Pl, print_chat, "Go Go Go"){
}
-
OciXCrom
Извън линия - Администратор
- Мнения: 7206
- Регистриран на: 06 Окт 2016, 19:20
- Местоположение: /resetscore
- Се отблагодари: 117 пъти
- Получена благодарност: 1295 пъти
- Обратна връзка:
Re: Перманентно HUD/DHUD съобщение или HUD bar/status
Хората, които си правят съобщението според примерите в първото мнение, сигурно няма да тръгнат да го правят по друг начин и да се чудят защо не работи. Дай тогава да обясним и защо се ползва # преди include. Повтарящият се task мисля, че е нещо елементарно и хората, които тепърва се учат, ще си знаят, че това е начинът.
Плъгинът не се компилира защото няма такова нещо "get_pcvar_int". Функцията е "get_pcvar_num". Същото се отнася и за другата.
При положение, че ползваш стойност при return когато правиш проверките във функцията, компилаторът ще ти изкара грешка ако не сложиш return със стойност в края на функцията. При направа на команди е правилно да се слага PLUGIN_HANDLED в края.
Каква е целта на тези команди?! Нали си направил кварове - за какво ти са команди за тяхната промяна при положение, че самият AMXX си има команда за проверка и промяна на кварове - amx_cvar?!
Плъгинът не се компилира защото няма такова нещо "get_pcvar_int". Функцията е "get_pcvar_num". Същото се отнася и за другата.
При положение, че ползваш стойност при return когато правиш проверките във функцията, компилаторът ще ти изкара грешка ако не сложиш return със стойност в края на функцията. При направа на команди е правилно да се слага PLUGIN_HANDLED в края.
Каква е целта на тези команди?! Нали си направил кварове - за какво ти са команди за тяхната промяна при положение, че самият AMXX си има команда за проверка и промяна на кварове - amx_cvar?!
-
mount4
Извън линия - Потребител
- Мнения: 187
- Регистриран на: 03 Ное 2016, 19:54
- Местоположение: Варна
- Обратна връзка:
Re: Перманентно HUD/DHUD съобщение или HUD bar/status
Нали казах че се съгласявам с тебе, недей да си спамиш собствената тема.
Поста ти трябваше да изглежда така:
"Аз не споря ами вие сте тези които не обяснихте че съобщението се изчиства когато друг плъгин пусне такова.
Утре някой ще се чуди защо му изчезва съобщението.. Това е особенно важно.."
Аз например не се бях сетил че може да е така а аз не съм от тея хора които не се сещат.
Защо да не тръгне ? По-скоро твоя плъгин неработи "Automatic Command Executor-a" защото където и да го местих в plugins.ini не тръгваше.
Сам си го бях компилирал, не даваше грешки в конзолота и просто неработеше. Правилно бях написал в .ini файла му несъм бавен.
Даже бях писал в темата ти в /// Блокиран текст/линк [НЕЖЕЛАН САЙТ] /// ама ми казаха че си баннат от него форум aand no support there. Там бях пуснал ini файла и ако имаше нщ грешно щяха да кажат. Човек да не реши да помогне на community-то и веднага ще го изядат вълците..
Както и това че трябва да извикваш функция за да преобразуваш число във float а неможе с кастване като при C, C++, php, C#, Java, etc.
Напръв поглед еднакво но с извикването на функция става по-бавно.
------------------------------
Данеговорим че туко що научих че ако пуснеш -1 като последен параметър на set_hudmessage пуска съобщението на свободен канал и няма как да бъде изтрито от друг плъгин защото той ще използва или -1 пак или 4 което е стандартния канал така че вие сте тези които незнаете някой работи !
А сега се сещам и за още нещо: Redshoko каза че се изчиствало на всеки нов рунд, аз казах че на всеки рунд както и на всеки spawn пък то всъшност как е -> изчиства се единствено при spawn обаче след няколко секунди и може би затова redshoko си е помислил че е при roundstart. Аз го бях направил да се включва малко след спауна и работеше ама нали ако искочи друго ще го изтрие.
Сега ще пусна -1 на канал параметъра и ще стане без повтарящ таск, няма да се трие от други плъгини.
------------------------------
Странно ми е обаче защо неработят ефектите ?
effects=0 - Эффекты сообщения:
0 - Без эффектов
1 - Мерцание
2 - Печатает буквы по очереди
set_dhudmessage(random(256), random(256), random(256), -1.0, yy, ef, _, float( get_timeleft() ))
-----------
Сега виждам че има дори ResetHUD event
Поста ти трябваше да изглежда така:
Какво неразбра под това:OciXCrom™ написа: При положение, че ползваш стойност при return когато правиш проверките във функцията, компилаторът ще ти изкара грешка ако не сложиш return със стойност в края на функцията. При направа на команди е правилно да се слага PLUGIN_HANDLED в края.
Каква е целта на тези команди?! Нали си направил кварове - за какво ти са команди за тяхната промяна при положение, че самият AMXX си има команда за проверка и промяна на кварове - amx_cvar?!
"Аз не споря ами вие сте тези които не обяснихте че съобщението се изчиства когато друг плъгин пусне такова.
Утре някой ще се чуди защо му изчезва съобщението.. Това е особенно важно.."
Аз например не се бях сетил че може да е така а аз не съм от тея хора които не се сещат.
Ако не си видял (а съм сигурен че си видял) последния код е със сет_таск и е абсолютно същия като твоя самоче има мн. важни екстри -> настройката на кординати, ефект, refresh time и random color.OciXCrom™ написа:Хората, които си правят съобщението според примерите в първото мнение, сигурно няма да тръгнат да го правят по друг начин.
Защо да не тръгне ? По-скоро твоя плъгин неработи "Automatic Command Executor-a" защото където и да го местих в plugins.ini не тръгваше.
Сам си го бях компилирал, не даваше грешки в конзолота и просто неработеше. Правилно бях написал в .ini файла му несъм бавен.
Даже бях писал в темата ти в /// Блокиран текст/линк [НЕЖЕЛАН САЙТ] /// ама ми казаха че си баннат от него форум aand no support there. Там бях пуснал ini файла и ако имаше нщ грешно щяха да кажат. Човек да не реши да помогне на community-то и веднага ще го изядат вълците..
Първо тук не си прав и второ мисля че няма нужда да обесняваме защо се ползва # преди include.OciXCrom™ написа: Дай тогава да обясним и защо се ползва # преди include.
Пак ти казвам -> "Ако не си видял (а съм сигурен че си видял) последния код е със сет_таск и е абсолютно същия като твоя самоче има мн. важни екстри -> настройката на кординати, ефект, refresh time и random color."OciXCrom™ написа: Повтарящият се task мисля, че е нещо елементарно и хората, които тепърва се учат, ще си знаят, че това е начинът.
ми тъпо са го измислили, трябваше да е int защото е по-близко до акъла. ако го бяха писали no-steam-ери нямаше да е такаOciXCrom™ написа: Плъгинът не се компилира защото няма такова нещо "get_pcvar_int". Функцията е "get_pcvar_num". Същото се отнася и за другата.
Както и това че трябва да извикваш функция за да преобразуваш число във float а неможе с кастване като при C, C++, php, C#, Java, etc.
Напръв поглед еднакво но с извикването на функция става по-бавно.
мерси за това Къде другаде да слагам PLUGIN_HANDLED или PLUGIN_CONTINUE ? Аз питах веднъж в този форум и никой не ми отговори.OciXCrom™ написа: При положение, че ползваш стойност при return когато правиш проверките във функцията, компилаторът ще ти изкара грешка ако не сложиш return със стойност в края на функцията. При направа на команди е правилно да се слага PLUGIN_HANDLED в края.
Мерси много и за това, не го знаех [;OciXCrom™ написа: Каква е целта на тези команди?! Нали си направил кварове - за какво ти са команди за тяхната промяна при положение, че самият AMXX си има команда за проверка и промяна на кварове - amx_cvar?!
------------------------------
Данеговорим че туко що научих че ако пуснеш -1 като последен параметър на set_hudmessage пуска съобщението на свободен канал и няма как да бъде изтрито от друг плъгин защото той ще използва или -1 пак или 4 което е стандартния канал така че вие сте тези които незнаете някой работи !
А сега се сещам и за още нещо: Redshoko каза че се изчиствало на всеки нов рунд, аз казах че на всеки рунд както и на всеки spawn пък то всъшност как е -> изчиства се единствено при spawn обаче след няколко секунди и може би затова redshoko си е помислил че е при roundstart. Аз го бях направил да се включва малко след спауна и работеше ама нали ако искочи друго ще го изтрие.
Сега ще пусна -1 на канал параметъра и ще стане без повтарящ таск, няма да се трие от други плъгини.
------------------------------
Странно ми е обаче защо неработят ефектите ?
effects=0 - Эффекты сообщения:
0 - Без эффектов
1 - Мерцание
2 - Печатает буквы по очереди
set_dhudmessage(random(256), random(256), random(256), -1.0, yy, ef, _, float( get_timeleft() ))
-----------
Сега виждам че има дори ResetHUD event
-
OciXCrom
Извън линия - Администратор
- Мнения: 7206
- Регистриран на: 06 Окт 2016, 19:20
- Местоположение: /resetscore
- Се отблагодари: 117 пъти
- Получена благодарност: 1295 пъти
- Обратна връзка:
Re: Перманентно HUD/DHUD съобщение или HUD bar/status
Ще прескоча излишните спорове и просто ще кажа, че това е урок за начинаещи, съответно няма нужда да обясняваме всичко до най-малките детайли. Ако имаш въпрос - без излишни спорове може да се обсъди в темата.
Няма да цитирам с квадратчета поотделните части от мнението ти, понеже пиша от телефона.
Относно auto command executor-а - плъгинът от поне 2 години го ползвам активно в 3 различни сървъра и никога не е направил грешка, а го ползвам за покупка на неща в играта, съответно не мога да си позволя да прави грешки. Ще те помоля да продължиш дискусията относно този проблем в темата на плъгина в този форум, като пишеш нещата дето си ги писал в другия, понеже аз нямам достъп до него.
Относно return - PLUGIN_HANDLED по принцип се ползва когато искаш да блокираш оригиналното действие на дадена функция. Примерно ако си направил hook за "say" - ако сложиш PLUGIN_HANDLED в края, написаното в чата няма да се покаже, което е полезно ако искаш да скриеш чат командите. Ако сложиш PLUGIN_CONTINUE, командата (примерно /me) ще се покаже в чата. По същия начин можеш да блокираш командата "chooseteam", като просто регистрираш функция която съдържа само return PLUGIN_HANDLED и нищо друго, стига да не искаш да добавиш други неща на нейно място. При ham евентите вместо PLUGIN_HANDLED се ползва HAM_SUPERCEDE за блокиране (примерно можеш да блокираш щета, убийство, натискане на определен бутон и прочие), а HAM_IGNORED вместо PLUGIN_CONTINUE, като и двете вършат същата работа като return без никаква стойност.
ПС - харесва ми когато има дискусия във форума за такива полезни неща, но учтиво ще те помоля да не излизаш извън границите като създаваш излишни спорове, тъй като не аз, обаче някой с удоволствие ще иска да ти сложи предупреждение. И не, не отговаряй на тази част от мнението тук, тъй като е един вид модераторска забележка, която не подлежи на дискусия. Ако има нещо - ЛС.
Няма да цитирам с квадратчета поотделните части от мнението ти, понеже пиша от телефона.
Относно auto command executor-а - плъгинът от поне 2 години го ползвам активно в 3 различни сървъра и никога не е направил грешка, а го ползвам за покупка на неща в играта, съответно не мога да си позволя да прави грешки. Ще те помоля да продължиш дискусията относно този проблем в темата на плъгина в този форум, като пишеш нещата дето си ги писал в другия, понеже аз нямам достъп до него.
Относно return - PLUGIN_HANDLED по принцип се ползва когато искаш да блокираш оригиналното действие на дадена функция. Примерно ако си направил hook за "say" - ако сложиш PLUGIN_HANDLED в края, написаното в чата няма да се покаже, което е полезно ако искаш да скриеш чат командите. Ако сложиш PLUGIN_CONTINUE, командата (примерно /me) ще се покаже в чата. По същия начин можеш да блокираш командата "chooseteam", като просто регистрираш функция която съдържа само return PLUGIN_HANDLED и нищо друго, стига да не искаш да добавиш други неща на нейно място. При ham евентите вместо PLUGIN_HANDLED се ползва HAM_SUPERCEDE за блокиране (примерно можеш да блокираш щета, убийство, натискане на определен бутон и прочие), а HAM_IGNORED вместо PLUGIN_CONTINUE, като и двете вършат същата работа като return без никаква стойност.
ПС - харесва ми когато има дискусия във форума за такива полезни неща, но учтиво ще те помоля да не излизаш извън границите като създаваш излишни спорове, тъй като не аз, обаче някой с удоволствие ще иска да ти сложи предупреждение. И не, не отговаряй на тази част от мнението тук, тъй като е един вид модераторска забележка, която не подлежи на дискусия. Ако има нещо - ЛС.
-
OciXCrom
Извън линия - Администратор
- Мнения: 7206
- Регистриран на: 06 Окт 2016, 19:20
- Местоположение: /resetscore
- Се отблагодари: 117 пъти
- Получена благодарност: 1295 пъти
- Обратна връзка:
Re: Перманентно HUD/DHUD съобщение или HUD bar/status
Пускам ново мнение, тъй като виждам, че си редактирал твоето докато съм го писал горното, а от телефона няма как хем да чета хем да редактирам предишното. Ще го съединя по-късною И, не взимайте толкова несериозно това правило за двоен пост, тъй като не е никаква болка за умиране.
Надали ще срещнеш плъгин, който ползва стойност различна от -1. Ако не е въведена такава, тя си е -1 по подразбиране и няма разлика ако я добавиш ръчно или изобщо я няма. Това, че си ползвал -1 не означава, че съобщението не може да бъде изтрито. Напротив - какво правим ако на екрана има 4 съобщения наведнъж? Всяко едно от тях заема по един от четирите свободни канали, съответно ако се появи пето такова, едно от предишните ще изчезне. В сървър с повече плъгини, почти няма да срещнеш HUD съобщение да стои на екрана повече от 5 секунди без повтарящ се task. На мен лично ми се е налагало да трансформирам обикновено съобщение, което стои 10 секунди, в такова което се повтаря, тъй като в 80% от случаите същото изчезваше преди време, а функционалността му е необходима за нормалното провеждане на играта. Ще ти дам пример с Jailbreak сървъра ми - на екрана постоянно стоят две HUD съобщения, които заемат два канала (едното показва кой е Саймън, а другото показва кръв, броня, пакове, ден и прочие). Към допълнение, таймерът който се пуска постоянно за задаване на команди, заема и третия канал. В такъв случай имам място за само още едно съобщение, което лесно може да бъде изтрито ако някой ползва @-чата или някой плъгин реши да изкара такова. Даже понякога и самата карта има такива съобщения. Затова никога не е "reliable" да ползваш съобщението с времетраене вместо с повтаряне в случай, че то трябва да бъде видимо през цялото си съществуване.
Ефектите не работят защото не си въвел стойности за времетраенето на ефектите (fxtime, fade и тн), или пък си го направил прекалено късо. Не знам на изуст всички параметри на set_hudmessage, обаче както виждам не си въвел всичките. ResetHUD не препоръчвам да се ползва.
Надали ще срещнеш плъгин, който ползва стойност различна от -1. Ако не е въведена такава, тя си е -1 по подразбиране и няма разлика ако я добавиш ръчно или изобщо я няма. Това, че си ползвал -1 не означава, че съобщението не може да бъде изтрито. Напротив - какво правим ако на екрана има 4 съобщения наведнъж? Всяко едно от тях заема по един от четирите свободни канали, съответно ако се появи пето такова, едно от предишните ще изчезне. В сървър с повече плъгини, почти няма да срещнеш HUD съобщение да стои на екрана повече от 5 секунди без повтарящ се task. На мен лично ми се е налагало да трансформирам обикновено съобщение, което стои 10 секунди, в такова което се повтаря, тъй като в 80% от случаите същото изчезваше преди време, а функционалността му е необходима за нормалното провеждане на играта. Ще ти дам пример с Jailbreak сървъра ми - на екрана постоянно стоят две HUD съобщения, които заемат два канала (едното показва кой е Саймън, а другото показва кръв, броня, пакове, ден и прочие). Към допълнение, таймерът който се пуска постоянно за задаване на команди, заема и третия канал. В такъв случай имам място за само още едно съобщение, което лесно може да бъде изтрито ако някой ползва @-чата или някой плъгин реши да изкара такова. Даже понякога и самата карта има такива съобщения. Затова никога не е "reliable" да ползваш съобщението с времетраене вместо с повтаряне в случай, че то трябва да бъде видимо през цялото си съществуване.
Ефектите не работят защото не си въвел стойности за времетраенето на ефектите (fxtime, fade и тн), или пък си го направил прекалено късо. Не знам на изуст всички параметри на set_hudmessage, обаче както виждам не си въвел всичките. ResetHUD не препоръчвам да се ползва.
-
mount4
Извън линия - Потребител
- Мнения: 187
- Регистриран на: 03 Ное 2016, 19:54
- Местоположение: Варна
- Обратна връзка:
Re: Перманентно HUD/DHUD съобщение или HUD bar/status
"Ефектите не работят защото не си въвел стойности за времетраенето на ефектите (fxtime, fade и тн), или пък си го направил прекалено късо. Не знам на изуст всички параметри на set_hudmessage, обаче както виждам не си въвел всичките. ResetHUD не препоръчвам да се ползва."
Ми несъм въвел щото гледах че има default такива, примерно fxtime беше 6 секунди.
Открих проблем в последния ми код и той се оказа и проблема за ефектите: не съм видял да махна това get_timeleft() от holdtime
Сега го направих да бъде == на refresh rate-a.
Ето новия ми код като съм махнал функциите дето ми каза за amx_cvar и добавих и cvar за X + cvar за fxtime:
Като имам време ще го направя и с ResetHUD и ще сравня двата метода с профайлера който показва времена и брой извиквания на функциите в плъгините.
Обобщени cvars:
-настройка на кординати:
mh_x (D: -1.0)
mh_y (D: 0.033)
-настойка на ефект:
mh_ef (D: 0) този cvar може да бъде 0, 1 или 2 като това е вида на ефекта. 0 е без такъв а 1 и 2 са ефекти.
mh_fxtime (D: 0.15)
mh_rr (D: 0.3) този cvar настройва колко бързо да се сменя цвета на съобщението както и неговото обновяване едновременно.
Пробвах го и работи ама нещо или неработи като хората или аз немога да настроя cvars-ите.
Искам да направя HUD като на Fatal-Error-a дето пише горе централно "wWw.Fatall-Error.iNfo" Тяхния ефект е много брутален.
То няма какво да му е грешно на кода ми явно аз не настройвам времената точно. Дане да трябва да направя fade-овете на 0 защото стандартно са 0.1 и 0.2 а аз не съм ги пипал тях ?
Защо да е само за начинаещи темата ? аз например не съм начинаещ и влязох в тази тема да се науча как става защото я бях мярнал преди време. Да, мога да видя в google, alliedmods но реших да видя от тука защото дизайна на форума ми харесва доста повече. Освен това начинаещите също разбират (аз съм се научил много бързо и без да чета нито 1 книга за програмиране или уроци -> само видях примерна програма на C) и точно че тези неща са много важни за тях. Аз не се усетих навреме че другите плъгини могат да изчистват HUD-а пък какво остава за 1 начинаещ.. Те най-малките детайли всъщност са най-големите (тоест -> трябва да прескочим само средните детайли).
Относно auto command executor-а : ще пиша в темата му като имам време и се сетя, сега са ми 1000 неща на главата.
Знам го това за PLUGIN_HANDLED но незнаех дали не се използва и за други неща щото ми звучи като спиране на плъгина. То няма как да спреш плъгина с един return ама всъшност има ако register-a който извиква callback-a е написан така, примерно if(retval == PLUGIN_HANDLED) pause("d")
"Надали ще срещнеш плъгин, който ползва стойност различна от -1"
Ами аз гледах че default-a не е -1 ами 4 и освен това незнаех че са само 4 канала. Мислех си че е като при тасковете, примерно 54637-ти канал.
То ако е така само 4 канала дет викаш значи доста кофти са го измислили стиъмарите.. То затова ли се говори в интернет че HUD съобщенията товарят и намаляват fps-то.. Тия от rehlds да вземат да пренапишат всичко че доста боза ми се струва. Те и руснаците са малко хамави ама по ми се нравят от онези пъзлъовци дето ги е страх valve да не фалира заради но-стеама И ко става ся rehlds ще излезе по-добър продукт от тяхното пък не им харесва темата за него във форума им.
Трябваше да го направят или с много канали, или -> да стои докато не се премахне с (функция или holdtime), или най-доброто -> и ТРИТЕ варианта!
Ми несъм въвел щото гледах че има default такива, примерно fxtime беше 6 секунди.
Открих проблем в последния ми код и той се оказа и проблема за ефектите: не съм видял да махна това get_timeleft() от holdtime
Сега го направих да бъде == на refresh rate-a.
Ето новия ми код като съм махнал функциите дето ми каза за amx_cvar и добавих и cvar за X + cvar за fxtime:
Като имам време ще го направя и с ResetHUD и ще сравня двата метода с профайлера който показва времена и брой извиквания на функциите в плъгините.
Код за потвърждение: Избери целия код
#include <amxmodx>
#include <amxmisc>
/*
This is static_hud by mount4
*/
new const sMsg[] = "<IP: XXX.XXX.XXX.XXX:XXXXX>"
// OciXCrom's check
// Винаги ползвайте тази проверка, тъй като в AMXX 1.8.3, dhudmessage е вграден в самия AMX.
#if AMXX_VERSION_NUM < 183
#include <dhudmessage>
#endif
new g_X, g_Y, g_E, g_F, g_R
new Float: xx, Float: yy, Float: rr, Float: ft
new ef
public plugin_init()
{
register_plugin("myhud", "0.1", "mount4")
g_X = register_cvar("mh_x", "-1.0")
g_Y = register_cvar("mh_y", "0.033")
g_E = register_cvar("mh_ef", "0")
g_F = register_cvar("mh_fxtime", "0.15")
g_R = register_cvar("mh_rr", "0.3")
}
public plugin_cfg()
{
xx = get_pcvar_float(g_X)
yy = get_pcvar_float(g_Y)
ef = get_pcvar_num(g_E)
ft = get_pcvar_float(g_F)
rr = get_pcvar_float(g_R)
set_task(rr, "displayMsg", _, _, _, "b")
}
public displayMsg()
{
set_dhudmessage(random(256), random(256), random(256), xx, yy, ef, ft, rr)
show_dhudmessage(0, sMsg)
}
-настройка на кординати:
mh_x (D: -1.0)
mh_y (D: 0.033)
-настойка на ефект:
mh_ef (D: 0) този cvar може да бъде 0, 1 или 2 като това е вида на ефекта. 0 е без такъв а 1 и 2 са ефекти.
mh_fxtime (D: 0.15)
mh_rr (D: 0.3) този cvar настройва колко бързо да се сменя цвета на съобщението както и неговото обновяване едновременно.
Пробвах го и работи ама нещо или неработи като хората или аз немога да настроя cvars-ите.
Искам да направя HUD като на Fatal-Error-a дето пише горе централно "wWw.Fatall-Error.iNfo" Тяхния ефект е много брутален.
То няма какво да му е грешно на кода ми явно аз не настройвам времената точно. Дане да трябва да направя fade-овете на 0 защото стандартно са 0.1 и 0.2 а аз не съм ги пипал тях ?
Защо да е само за начинаещи темата ? аз например не съм начинаещ и влязох в тази тема да се науча как става защото я бях мярнал преди време. Да, мога да видя в google, alliedmods но реших да видя от тука защото дизайна на форума ми харесва доста повече. Освен това начинаещите също разбират (аз съм се научил много бързо и без да чета нито 1 книга за програмиране или уроци -> само видях примерна програма на C) и точно че тези неща са много важни за тях. Аз не се усетих навреме че другите плъгини могат да изчистват HUD-а пък какво остава за 1 начинаещ.. Те най-малките детайли всъщност са най-големите (тоест -> трябва да прескочим само средните детайли).
Относно auto command executor-а : ще пиша в темата му като имам време и се сетя, сега са ми 1000 неща на главата.
Знам го това за PLUGIN_HANDLED но незнаех дали не се използва и за други неща щото ми звучи като спиране на плъгина. То няма как да спреш плъгина с един return ама всъшност има ако register-a който извиква callback-a е написан така, примерно if(retval == PLUGIN_HANDLED) pause("d")
"Надали ще срещнеш плъгин, който ползва стойност различна от -1"
Ами аз гледах че default-a не е -1 ами 4 и освен това незнаех че са само 4 канала. Мислех си че е като при тасковете, примерно 54637-ти канал.
То ако е така само 4 канала дет викаш значи доста кофти са го измислили стиъмарите.. То затова ли се говори в интернет че HUD съобщенията товарят и намаляват fps-то.. Тия от rehlds да вземат да пренапишат всичко че доста боза ми се струва. Те и руснаците са малко хамави ама по ми се нравят от онези пъзлъовци дето ги е страх valve да не фалира заради но-стеама И ко става ся rehlds ще излезе по-добър продукт от тяхното пък не им харесва темата за него във форума им.
Трябваше да го направят или с много канали, или -> да стои докато не се премахне с (функция или holdtime), или най-доброто -> и ТРИТЕ варианта!
-
MF1
Извън линия - Потребител
- Мнения: 316
- Регистриран на: 12 Окт 2016, 21:15
- Местоположение: гр.Варна
- Получена благодарност: 12 пъти
- Обратна връзка:
Перманентно HUD/DHUD съобщение или HUD bar/status
Въпрос.
Добре регистрирам в текста на худ-а параметри с %i, но имам питанка...
искам да добавя знакът % така както си е, по-точно така
"%i/100%"
Каквото и да пробвах, този знак на 100% не ми го показва...
Помощ ?
Добре регистрирам в текста на худ-а параметри с %i, но имам питанка...
искам да добавя знакът % така както си е, по-точно така
"%i/100%"
Каквото и да пробвах, този знак на 100% не ми го показва...
Помощ ?
Join now.
www.MF1-CS.eu
----------------------------
91.132.63.55:27015
91.132.63.56:27015
----------------------------
-
DaRk_StyLe
Извън линия - Потребител
- Мнения: 264
- Регистриран на: 26 Окт 2016, 12:40
- Се отблагодари: 11 пъти
- Получена благодарност: 33 пъти
Перманентно HUD/DHUD съобщение или HUD bar/status
Код за потвърждение: Избери целия код
new a = 10;
set_hudmessage( 255, 0, 0, -1.0, -1.0, 0, 6.0, 12.0 );
show_hudmessage( id, "%i/100%%", a );
резултат: 10/100%
-
- Подобни теми
- Отговори
- Преглеждания
- Последно мнение
-
- 6 Отговори
- 2990 Преглеждания
-
Последно мнение от ItzDeviLPvP
-
- 9 Отговори
- 3502 Преглеждания
-
Последно мнение от Dachoni
-
- 2 Отговори
- 1462 Преглеждания
-
Последно мнение от bigexplosion
-
- 3 Отговори
- 2030 Преглеждания
-
Последно мнение от OciXCrom
-
- 3 Отговори
- 1821 Преглеждания
-
Последно мнение от OciXCrom
-
- 0 Отговори
- 2470 Преглеждания
-
Последно мнение от kpuc313
-
- 0 Отговори
- 1302 Преглеждания
-
Последно мнение от rozoveca
Кой е на линия
Потребители разглеждащи този форум: 0 регистрирани и 2 госта