[ROZWIĄZANE] Jak przedłużyć Message Screen...
Najlepsza odpowiedź K!113r 16.05.2013 21:33
wszystko można zrobić taskiem i usuwaniem taska (dodatkowo wiadomością o efekcie zerowym, czyli usuwającą w tym wypadku screenshake)
Przejdź do postu
Niide
16.05.2013
Cześć. Mam takie nietypowe pytanko. Jak przedłużyć message Screen Shake?
public pijany(id) { if(is_user_alive(id)) { new gmsgShake = get_user_msgid("ScreenShake"); message_begin(MSG_ONE, gmsgShake, {0,0,0}, id); write_short(255 << 14); write_short(10 << 14); write_short(255 << 14); message_end(); set_task(10.0, "pijany", id+66, _, _, "b"); } }
Zrobiłem coś takiego ale po jednym razie się wyłącza i nie działa już następnym...
Czy dałoby się to także zrobić tak, że będzie nam się ekran trząsł aż do wyłączenia tego poprzez menu czy też innym sposobem? I czy dało by się to przerobić na takie bardziej kołysanie ekranem jak gdyby by się było pijanym?
Użytkownik Niide edytował ten post 16.05.2013 20:57
Najlepsza odpowiedź
K!113r
16.05.2013
wszystko można zrobić taskiem i usuwaniem taska (dodatkowo wiadomością o efekcie zerowym, czyli usuwającą w tym wypadku screenshake)
sebul
16.05.2013
#define bitfloatvalue(%1) floatround((%1)*(1<<12))
public TrzesEkranem(id, Float:ampli, Float:dur, Float:freq) {
if(is_user_alive(id)) {
static gmsgShake;
if(!gmsgShake) gmsgShake = get_user_msgid("ScreenShake");
message_begin(MSG_ONE_UNRELIABLE, gmsgShake, _, id);
write_short(bitfloatvalue(ampli));
write_short(bitfloatvalue(dur));
write_short(bitfloatvalue(freq));
message_end();
}
}
I kombinuj z różnymi wartościami, szczególnie z tymi poniżej 1.
Niide
16.05.2013
Dzięki wam Sebul, Twojego rozwiązania nie próbowałem, bo rozwiązanie Killera działa poprawnie. O coś takiego mi nawet chodziło. Obaj otrzymujecie plusiki
Jeżeli kogoś ciekawi jak to zrobiłem to tak:
public pijany(id) { if(is_user_alive(id)) { set_task(4.0, "pijany_off", id); new gmsgShake = get_user_msgid("ScreenShake"); message_begin(MSG_ONE, gmsgShake, {0,0,0}, id); write_short(255 << 14); write_short(10 << 14); write_short(255 << 14); message_end(); } } public pijany_off(id) { new gmsgShake = get_user_msgid("ScreenShake"); message_begin(MSG_ONE, gmsgShake, {0,0,0}, id); write_short(0); write_short(0); write_short(0); message_end(); pijany(id); }
Może się komuś przyda moje rozwiązanie.