Odpowiadam:Ja wiem i właśnie się za to zabieram
Wstęp:Mam limit czasu 15 minut i Galileo do zarządzania zmianami map, co lubię, bo pozwala na nominację map, wymuszenie głosowania przez graczy, czy natychmiastowe wymuszenie przez Administrację (mam to w AMXMODMENU); które pozwala na dokończenie rundy. Mam też BF2mod,
stąd funkcja
award_check() przyznaje medale dla najlepszych na koniec mapy.
Rozwiązanie:Ustawiam
- register_logevent("LogEvent_Round_Start", 2, "0=World triggered", "1=Round_Start"); //freezetime end code
- register_logevent("LogEvent_Round_End", 2, "1=Round_End");
- register_logevent("zerujRundy", 2, "1=Game_Commencing");
- register_event("TextMsg", "zerujRundy", "a", "2&Game_will_restart_in");
public LogEvent_Round_End(){
set_task(0.2, "badge_check_loop");
if(get_cvar_float("amx_timeleft")==0 && rundy > 5 && get_cvar_float("mp_timelimit")==0){
set_task(0.2, "award_check");
}
}
public LogEvent_Round_Start(){
freezetime = false;
for(new i = 1; i <= gMaxPlayers; ++i) {
set_task(0.1, "set_speed", i);
}
++rundy;
}
public zerujRundy(){
rundy=0;
}
gdzie rundy=0 na początku i jest to zmienna, licząca, którą rundę się właśnie gra.
- get_cvar_float("amx_timeleft")==0 pokazuje, że jest to ostatnia runda, co ustawił Galileo
- get_cvar_float("mp_timelimit")==0 pokazuje, że nie jest to rozgrzewka, co ustawia WarmUpPro
- rundy > 5 nie pozwala na przyznanie medali za niepełną grę, co byłoby nie fair, gdy sie np. zmienia mapkę po 1-2 rundach przez np. Admina
Do
award_check() dodam chyba wyskakujące okienko (
http://amxx.pl/topic...post__p__290823) z
data:text/html;,Wygral:<ktos_tam>,<br>Przegral: <ktos_tam><br>itd.jako adres strony.
BTW:W Twoim przypadku sprawdziłbym, czy rundy>Twoj_limit_rund (bodajże mp_maxrounds, ale nie jestem pewien), a reszta zależy od Twojej konfiguracji serwera, a ja wróżką nie jestem.
Np. w
set_task(0.2, "award_check") możliwe, że u Ciebie będzie potrzeba zmniejszyć bądź zwiększyć ten czas, tak samo wpływ ma
freezetime i wiele innych czynników.
OT:
Rozwiązanie masz podane jak na tacy, jeśli jeszcze czegoś nie kapujesz, to wybacz. Dałem Ci mapę i kompas, ale nie zaprowadzę na miejsce, to Twoja podróż. Szerokiej drogi!