Losowanie VIP'a/SVIP'a w X rundzie w zależności od liczby graczy na serwerze
Jako, że święta już trwają, doszedłem do wniosku, że dam się ponieść Magii Świąt i udostępnię jeden z pluginów, który zrobiłem kiedyś.
Polega on na tym, że w X rundzie ( wybranej przez nas ) odbywa się losowanie na vipa w zależności od liczby graczy. Może to być VIP lub SVIP.
Ja na swoim serwerze przykładowo miałem vipa od 15 osób, zaś svipa od 28 i losowanie w 3 rundzie ( takie też są wartości podstawowe ).
Vip przyznawany jest na okres jednej mapy ( aktualnej ), 30s przed jej końcem jest zabierany.
Jeżeli zostanie wylosowana osoba z vipem, wtedy losowanie przepada na tą mapę.
Oczywiście podane są informacje, kto wylosował vipa w hud i say poprzez moduł colorchat.
Co 120 sekund jest informacja o tym, że taki plugin istnieje i będzie losowany vip co mapę.
Domyślnie VIP - ADMIN_LEVEL_H ( flaga t )
Domyślnie SVIP - ADMIN_LEVEL_G ( flaga s )
Ważne - przyznawana jest flaga od vipa/svipa a nie svip/vip!
Dodałem drugą wersję, losowanie tylko na jedną flagę ( nie na dwie ) - załącznik losowanievip
Jedyne co musisz zrobić to wrzucić plugin na serwer, no i w zależności od vipa jakiego używasz ( a zakładam, że vipa z vipgeneratora, będzie trzeba w nim dokonać trochę zmian, gdyż ten z generatora przyznaję vipa tylko raz, no a skoro w moim pluginie vip jest przyznawany w 3 rundzie to mamy problem ) - bo co ważne, przyznawana jest sama flaga, na którą zwykle są vipy.
Niedługo dodam post, w którym wytłumaczę co trzeba zrobić.
#define LOSOWANIE_VIP_OD 15 #define LOSOWANIE_VIP_DO_SVIP_OD 28 #define LOSOWANIE_W_KTOREJ_RUNDZIE 3 #define FLAGA_VIP ADMIN_LEVEL_H #define FLAGA_SVIP ADMIN_LEVEL_G
Mamy 5 takich "definicje" na górze pluginu, które jasno opisują, która za co odpowiada ( zmieniamy tylko liczbę )!
Przy flaga_vip podajemy naszą flagę vipowska (domyślnie T)
Przy flaga_Svip podajemy naszą flagę svipowską ( domyślnie S)
Kompatybilność z vipem z generatora
Przypadek nr 1. Nie mamy w vipie żadnego dodatku dla gracza uruchamiającego się w X rundzie
1. Dodajemy jedną zmienną, która będzie się nazywała przykładowo: gRunda;
2. Dodajemy do plugins_init() ten oto kod
register_logevent("Poczatek_Rundy", 2, "1=Round_Start")
3. Na samym dole kodu dajemy taką o to funkcję
public Poczatek_Rundy(){ if(++gRunda == 3){ for(new i=1; i<=32; i++){ if(is_user_connected(i) && !g_Vip[i] && get_user_flags(i) & ADMIN_LEVEL_H) g_Vip[i] = true; } } }
Przypadek nr 2. Mamy w vipie dodatek, który uruchamia się dla gracza od X rundy.
Zamieniamy w funkcji public event_new_round()
Podmieniamy ++gRound na taki oto kod:
if(++gRound == 4){ // dajmy flage po rundzie, w ktorej zostal rozlosowany vip, czyli jezeli masz losowanie w 3, tutaj daj 4. for(new i=1; i<=32; i++){ if(is_user_connected(i) && !g_Vip[i] && get_user_flags(i) & ADMIN_LEVEL_H) // tutaj wlasna flaga dowolna dla vipa ( ADMIN_LEVEL_H) g_Vip[i] = true; } } }
Wesołych Świąt!