#include <amxmodx> 
#include <fun>   
#include <colorchat>

#define LOSOWANIE_VIP_OD 10
#define LOSOWANIE_VIP_DO_SVIP_OD 18
#define LOSOWANIE_W_KTOREJ_RUNDZIE 3
#define FLAGA_VIP ADMIN_LEVEL_A
#define FLAGA_SVIP ADMIN_LEVEL_B

new iPlayer
new runda, tmp;

public plugin_init(){
	register_plugin("Losowanie vipa", "1.0", "Wielkie Jooool");
	register_logevent("Poczatek_Rundy", 2, "1=Round_Start")  
	set_task(30.0, "UsunVipa", .flags="d")
	set_task(120.0, "advert", _, _, _, "b")
}

public advert()
	ColorChat(0, GREEN, "[FREE VIP]^x01 Zawsze w %d rundzie bedzie losowany^x03 VIP.^x01 Na serwerze musi byc conajmniej %d graczy, by losowanie sie odbylo!", LOSOWANIE_W_KTOREJ_RUNDZIE, LOSOWANIE_VIP_OD);

public Poczatek_Rundy(){   
	runda++
	if(runda == LOSOWANIE_W_KTOREJ_RUNDZIE){
		ColorChat(0, GREEN, "[DARMOWY VIP]^x01 Uwaga! za moment zostanie rozlosowany^x03 darmowy vip^x01 na ta mape!");
		if(LOSOWANIE_VIP_DO_SVIP_OD > get_playersnum()>= LOSOWANIE_VIP_OD){
			Losuj_Vipa(FLAGA_VIP)
			tmp = FLAGA_VIP
			return PLUGIN_HANDLED
		}
		if(get_playersnum()>=LOSOWANIE_VIP_DO_SVIP_OD){
			Losuj_Vipa(FLAGA_SVIP)
			tmp = FLAGA_SVIP;
			return PLUGIN_HANDLED
		}
		for(new i=1; i<=32; i++){
			if(is_user_connected(i))
				ColorChat(i, GREEN, "[DARMOWY VIP]^x01 Niestety, na serwerze nie bylo %d osob! Losowanie nie odbedzie sie", LOSOWANIE_VIP_OD);
		}
	}
	return PLUGIN_CONTINUE
}

public client_disconnect(id){
	if(id == iPlayer){
		remove_user_flags(iPlayer, tmp)
	}
}
public Losuj_Vipa(FLAGA) 
{         
	new players[32], count;    
	get_players(players, count, "ch");    
	
	if(count)              
	{
		iPlayer = players[random(count)];
		
		if(get_user_flags(iPlayer) & FLAGA_VIP || get_user_flags(iPlayer) & FLAGA_SVIP){
			ColorChat(0, RED, "[FREE VIP]^x01 Zostala wylosowana osoba, ktora jest VIPEM! Losowanie przepada.^x04 Do nastepnej mapy!");
			return PLUGIN_HANDLED
		}
		new Name[32];
		get_user_name(iPlayer, Name, charsmax(Name))
		remove_user_flags(iPlayer, ADMIN_USER);
		set_user_flags(iPlayer, get_user_flags(iPlayer) | FLAGA);
		ColorChat(0, TEAM_COLOR, "^x04[DARMOWY VIP]^x01 Gratulacje dla gracza ^x03 %s, ktory uzyskal w wyniku losowania darmowego %s na tej mapie!", Name, FLAGA == FLAGA_VIP ? "VIPA":"S-VIPA");
		set_hudmessage(255, 125, 0, -1.0, 0.40)
		show_hudmessage(0, "Gratulacje dla gracza %s, ktory uzyskal w wyniku losowania darmowego %s na tej mapie!", Name, FLAGA == FLAGA_VIP ? "VIPA":"S-VIPA")
		
		
	}
	return PLUGIN_CONTINUE;
}  

public UsunVipa(){
	ColorChat(0, TEAM_COLOR, "[KONIEC] Dziekujemy za udzial w zabawie. Vip zostal usuniety. Nastepne losowanie na nastepnej mapie w zaleznosci od ilosci graczy");
	remove_user_flags(iPlayer, tmp);
}
