[ROZWIĄZANE] ScreenFade - jak dokładnie us...
venom1324
30.05.2013
Witam, mam pytanie. Jak dokładnie ustawić czas trwania ScreenFade? Chcę tak, aby Hold time trwał 80 sekund, a na operacjach bitowych mi to nie wychodzi, proszę o pomoc.
message_begin( MSG_ONE, g_msg_screenfade,{0,0,0},id )
write_short( 1<<15) // Duration of fadeout
write_short( 1<<13) // Hold time of color - Tutaj ma być 80 s, ale nie wiem jak to zrobić ;/
write_short( 1<<12 ) // Fade type
write_byte ( random_num(0,255 )) // Red
write_byte ( random_num(0,255 )) // Green
write_byte ( random_num(0,255 )) // Blue
write_byte ( 255 ) // Alpha
message_end()
}
Edited by venom1324, 30.05.2013 01:07.
radim
30.05.2013
1<<12 == 1 sekunda
2 sekundy to 2*(1<<12) = 1<<13
3 sekundy to 3*(1<<12)
4 sekundy to 4*(1<<12) = 1<<14
Lub zajrzyj tu: http://darkgl.amxx.p...-ekranu-gracza/ ; ))
sebul
30.05.2013
#define bitfloatvalue(%1) floatround((%1)*(1<<12))
a potem używamy tego tak
bitfloatvalue(1.0) // 1 sekunda
bitfloatvalue(0.5) // pół sekundy
// itd.
Gość_21977_* 30.05.2013
write_short( 1<<13) // Hold time of color - Tutaj ma być 80 s, ale nie wiem jak to zrobić ;/
Dobrze myślisz. Jednakże, HoldTime to short int, a więc przyjmuje maksymalną wartość 32767.
- ScreenFade event
Innymi słowy, jesteś w stanie za pomocą jednej wiadomości zakryć ekran na maksymalnie 32767/1!12 = ~5 sekund.
Aby osiągnąć dłuższy efekt, musisz wysłać wiadomość kilkukrotnie, tutaj aż kładnia się funkcja set_task z flagą "a".
Problem, pamiętam, był już kiedyś poruszany na AMXX.pl, musisz dobrze poszukać albo pobawić się z funkcjami czasowymi.
GwynBleidD
30.05.2013
Wystarczy użyć dwukrotnie Screenfade można ustawić na nigdy nie wygasający, a następnie po 80 sekundach rozpocząć fadeout drugim screenfade.
venom1324
30.05.2013
write_short( 1<<13) // Hold time of color - Tutaj ma być 80 s, ale nie wiem jak to zrobić ;/
Dobrze myślisz. Jednakże, HoldTime to short int, a więc przyjmuje maksymalną wartość 32767.
- ScreenFade event
Innymi słowy, jesteś w stanie za pomocą jednej wiadomości zakryć ekran na maksymalnie 32767/1!12 = ~5 sekund.
Aby osiągnąć dłuższy efekt, musisz wysłać wiadomość kilkukrotnie, tutaj aż kładnia się funkcja set_task z flagą "a".
Problem, pamiętam, był już kiedyś poruszany na AMXX.pl, musisz dobrze poszukać albo pobawić się z funkcjami czasowymi.
Ok, dzięki, zrobiłem z set_taskiem. Do zamknięcia.
sebul
30.05.2013
Ten temat został zamknięty przez moderatora.
Powód: Pomoc udzielona
Jeśli się z tym nie zgadzasz, raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.
Z pozdrowieniami,
Zespół AMXX.PL