Zamień na:
public Ukryj(id) ToggleHUD = (ToggleHUD ? false : true)
Jeszcze mógł by autor tematu się wypowiedzieć na temat tego co ma być w wiadomości
Sorki poprawka na to:
public Ukryj(id) ToggleHUD[id] = (ToggleHUD[id] ? false : true)
niektórzy mają przez to spadki fps
Ludzie mają spadki fps nie przez to że mają dużo napisów na ekranie tylko przez to że cały czas przychodzą do nich informacje o napisach.
Może to bardziej wytłumacze i od razu pokaże różnice między task+hud a hud+obiekt
Weźmy sobie taki przykład:
Mamy jakiś tam serwer i co drugą rundę na ekranie pisze nam: parzysta runda (oczywiście pisze to przez całą rundę)
Teraz zróbmy to za pomoca taska:
new NumerRundy // Zmienna globalna przechowuje numer rundy
// w plugin_init()
//
set_task(1.0,"Pokaz_Hud",_,_,_,"b")
register_event("HLTV", "RoundStart", "a", "1=0", "2=0");
//
//
//
public RoundStart() NumerRundy++
public Pokaz_Hud()
{
if(NumerRundy%2==0)
{
set_hudmessage(0,0,0,0.0,0.0,0,0.0,1.0,0,0,-1)
show_hudmessage(0,"Parzysta Runda")
}
}
A teraz jak to w praktyce działa:
Gdy zacznie sie runda która jest parzysta co 1.0 sek będzie do clienta wysyłana wiadomość o tym by pokazać nową wiadomość hud. Załóżmy iż runda trwa 3 min tzn. w ciągu rundy parzystej do clienta dojdzie 180 wiadomości iż ma pokazac na ekranie wiadomość hud.
A teraz sposób dużo optymalniejszy:
new NumerRundy,Hud // Zmienna globalna przechowuje numer rundy + Uchwyt do hud'a
// w plugin_init()
//
Hud = CreateHudSyncObj()
register_event("HLTV", "RoundStart", "a", "1=0", "2=0");
//
//
//
public RoundStart()
{
NumerRundy++
if(NumerRundy%2==0)
{
set_hudmessage(0,0,0,0.0,0.0,0,0.0,1.0,0,0,-1)
ShowSyncHudMsg(0, Hud, "Parzysta Runda")
}
else ClearSyncHud(0, Hud)
}
Teraz jak to działa:
W momęcie rozpoczęcia nowej rundy (parzystej) zostanie wysłana wiadomośc do klienta aby pokazać mu na ekranie wiadomość hud (bodajże na czas nie określony nie sprawdzałem)
To wszystko
Różnica jaka jest? Hmm podczas rundy parzystej używając taska wyślemy 180 razy tą samą wiadomość a używając hud_obiekt'u tylko raz na początku (ale każdej rundy)
Czyli 180 - 2 = 178 Czyli 178 niepotrzebnych wiadomości wysyłamy za pomocą taska.
Dodam jeszcze że jak ustawiamy task na 1.0 a hud na 6.0 (jak w temacie) to wiadomości nakładają się na siebie i zabierają 6 kanałów hud'a a że są tylko 4 to całkowicie go kradną